From 80de1eb5f3aa4693eb248814ef24eb0ca7ae7014 Mon Sep 17 00:00:00 2001 From: shinrei Date: Tue, 1 Jul 2025 16:00:15 +0000 Subject: [PATCH] out msg --- src/bot/modules/solaris/client.py | 16 +++++++++++++++- src/bot/modules/solaris/structures/__init__.py | 2 ++ .../modules/solaris/structures/output_message.py | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/bot/modules/solaris/structures/__init__.py create mode 100644 src/bot/modules/solaris/structures/output_message.py 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