added structured output
This commit is contained in:
@@ -2,7 +2,6 @@ import json
|
|||||||
from google import genai
|
from google import genai
|
||||||
from google.genai.types import GenerateContentConfig, ThinkingConfig
|
from google.genai.types import GenerateContentConfig, ThinkingConfig
|
||||||
from .structures import InputMessage, OutputMessage
|
from .structures import InputMessage, OutputMessage
|
||||||
from typing import List
|
|
||||||
from dataclasses import asdict
|
from dataclasses import asdict
|
||||||
|
|
||||||
class SolarisClient:
|
class SolarisClient:
|
||||||
@@ -15,12 +14,18 @@ class SolarisClient:
|
|||||||
thinking_config=ThinkingConfig(thinking_budget=0),
|
thinking_config=ThinkingConfig(thinking_budget=0),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
async def send_messages(self, messages: List[InputMessage]):
|
async def send_messages(self, messages: list[InputMessage]) -> list[OutputMessage]:
|
||||||
data = json.dumps(
|
data = json.dumps(
|
||||||
[asdict(msg) for msg in messages], # хм а asdict с датаклассов ваще можно юзать с НЕ датакласами но чем-то датаклассоподобным
|
[asdict(msg) for msg in messages], # хм а asdict с датаклассов ваще можно юзать с НЕ датакласами но чем-то датаклассоподобным
|
||||||
ensure_ascii=True
|
ensure_ascii=True
|
||||||
)
|
)
|
||||||
resp = await self.chat.send_message(data)
|
resp = await self.chat.send_message(
|
||||||
|
data,
|
||||||
|
config = {
|
||||||
|
"response_mime_type": "application/json",
|
||||||
|
"response_schema": list[OutputMessage],
|
||||||
|
}
|
||||||
|
)
|
||||||
output_messages = [
|
output_messages = [
|
||||||
OutputMessage.fromdict(msg)
|
OutputMessage.fromdict(msg)
|
||||||
for msg in json.loads(resp.text)
|
for msg in json.loads(resp.text)
|
||||||
|
|||||||
Reference in New Issue
Block a user