| 
							- from __future__ import annotations
 - 
 - import random
 - from datetime import datetime
 - from enum import Enum
 - 
 - from eloquent import DatabaseManager, Model
 - 
 - from config import CONFIG
 - from models import Answer, Query, User
 - from talk import Talk
 - 
 - 
 - def main (
 - ) -> None:
 -     db = DatabaseManager (CONFIG)
 -     Model.set_connection_resolver (db)
 -     queries: list[Query] = Query.where ('answered', False).get ()
 -     query: Query = random.choice (queries)
 -     message: str | list[dict[str, str | dict[str, str]]]
 -     if query.image_url is None:
 -         message = query.content
 -     else:
 -         message = [{ 'type': 'text', 'text': query.content },
 -                    { 'type': 'image_url', 'image_url': query.image_url }]
 -     user: User | None = query.user
 -     user_name: str | None = None
 -     if user is not None:
 -         user_name = user.name
 -     histories: list[dict[str, str]] = []
 -     for history in query.answer_histories:
 -         if history.query is not None:
 -             histories.append ({ 'role': 'user', 'content': history.query.content })
 -         histories.append ({ 'role': 'assistant', 'content': history.content })
 -     if query.target_character & Character.DEERJIKA.value:
 -         answer = Answer ()
 -         answer.query_id = query.id
 -         answer.character = Character.DEERJIKA.value
 -         answer.content = Talk.main (query.content, user_name, histories)
 -         answer.answer_type = query.query_type
 -         answer.sent_at = datetime.now ()
 -         answer.save ()
 -     if query.target_character & Character.GOATOH.value:
 -         answer = Answer ()
 -         answer.query_id = query.id
 -         answer.character = Character.GOATOH.value
 -         answer.content = Talk.main (query.content, user_name, histories, True)
 -         answer.answer_type = query.query_type
 -         answer.sent_at = datetime.now ()
 -         answer.save ()
 - 
 - 
 - class Character (Enum):
 -     DEERJIKA    = 1
 -     GOATOH      = 2
 - 
 - 
 - if __name__ == '__main__':
 -     main ()
 
 
  |