diff --git a/src/bot/modules/solaris/client.py b/src/bot/modules/solaris/client.py index abcf773..10fb732 100644 --- a/src/bot/modules/solaris/client.py +++ b/src/bot/modules/solaris/client.py @@ -1,6 +1,8 @@ +import json from google import genai from google.genai.types import GenerateContentConfig, ThinkingConfig - +from .structures import InputMessage, OutputMessage +from typing import List class SolarisClient: def __init__(self, api_key: str) -> None: @@ -12,3 +14,15 @@ class SolarisClient: thinking_config=ThinkingConfig(thinking_budget=0), ), ) + async def send_messages(self, messages: List[InputMessage]): + data = json.dumps( + [asdict(msg) for msg in messages], + ensure_ascii=True + ) + resp = await self.chat.send_message(data) + print(resp.text) + output_messages = [ + OutputMessage.fromdict(msg) + for msg in json.loads(resp.text) + ] + return output_messages \ No newline at end of file diff --git a/src/bot/modules/solaris/structures/__init__.py b/src/bot/modules/solaris/structures/__init__.py new file mode 100644 index 0000000..807c037 --- /dev/null +++ b/src/bot/modules/solaris/structures/__init__.py @@ -0,0 +1,2 @@ +from .input_message import InputMessage +from .output_message import OutputMessage \ No newline at end of file diff --git a/src/bot/modules/solaris/structures/output_message.py b/src/bot/modules/solaris/structures/output_message.py new file mode 100644 index 0000000..2563fbe --- /dev/null +++ b/src/bot/modules/solaris/structures/output_message.py @@ -0,0 +1,16 @@ +from pydantic import BaseModel +from typing import Optional + +class OutputMessage(BaseModel): + priority: int # удалишь там есличе + text: Optional[str] + reaction: Optional[str] + reply_to: Optional[int] + @classmethod + def fromdict(cls, data: dict): + return cls( + priority = data.get('priority'), + text = data.get('text'), + reaction = data.get('reaction'), + reply_to = data.get('reply_to') + ) \ No newline at end of file