This commit is contained in:
kandrusyak
2026-07-25 15:39:03 +03:00
parent 0163208484
commit 3f63d0305c
6 changed files with 148 additions and 37 deletions

View File

@@ -18,6 +18,30 @@ def describe_yandex_error(exc: Exception) -> str:
return str(exc)
def prepare_chat_messages(
messages: list[dict[str, str]],
) -> list[dict[str, str]]:
"""Convert messages to the format accepted by Yandex prompt templates."""
system_parts: list[str] = []
chat_messages: list[dict[str, str]] = []
for message in messages:
role = message.get("role", "user")
content = message.get("content", "")
if role == "system":
system_parts.append(content)
else:
chat_messages.append({"role": role, "content": content})
if system_parts:
chat_messages.insert(
0,
{"role": "system", "content": "\n\n".join(system_parts)},
)
return chat_messages
def create_async_sdk(folder_id: str) -> Any:
try:
from yandex_ai_studio_sdk import AsyncAIStudio
@@ -83,13 +107,7 @@ class YandexAIClient:
messages: list[dict[str, str]],
json_mode: bool = False,
) -> str:
sdk_messages = [
{
"role": message.get("role", "user"),
"content": message.get("content", ""),
}
for message in messages
]
sdk_messages = prepare_chat_messages(messages)
try:
completion = self._sdk.chat.completions(self.normalize_model(model))