fix
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user