Отображение сообщений в чате с агентом
Диалоговый интерфейс GigaLab умеет отображать сложные элементы (карточки, ход рассуждений модели, подсказки) на основе их описания, которое передается в соответствующем сообщении.
Для этого в сообщение нужно добавить дополнительные поля additional_kwargs с описанием элементов.
В этом разделе вы найдете примеры структур различных сообщений и элементов, и того, как они отображаются в чате с агентом.
Функциональность работает в чате с агентом, после публикации в любом окружении: DEV, IFT или ПРОМ.
Поддерживается отображение сообщений заданных типов:
- пользователя — тип
human; - агента — тип
ai; - сообщение, сгенерированное в процессе работы функции GigaChat — тип
tool.
Также возможно отображение собственных типов, например, для отображения логов.
Диалоговый интерфейс агента можно также менять с помощью специальных функций SDK.
Сообщения пользователя
Сообщение пользователя передается с типом human.
Пример сообщения в чате с агентом:
Пример кода для формирования сообщения:
import uuid
from langchain_core.messages import HumanMessage
def make_human_message(content: str) -> HumanMessage:
return HumanMessage(
id=str(uuid.uuid4()),
content=content,
additional_kwargs={},
)
JSON-схема данных, которые поступают на фронтенд:
{
"id": "<UUIDv4>",
"type": "human",
"content": "Вопрос пользователя"
}
Приложенные файлы
Если агент может работать с файлами, которые п ередал пользователь, они также будут отображаться в чате. Пример отображения сообщения пользователя с приложенными файлами:
Пример кода для формирования сообщения:
import uuid
from langchain_core.messages import HumanMessage
def make_human_with_files(content: str, files: list[dict]) -> HumanMessage:
# files: [{"id": "...", "filename": "...", "url": "..."}]
return HumanMessage(
id=str(uuid.uuid4()),
content=content,
additional_kwargs={"attached_files": files},
)
JSON-схема данных, которые поступают на фронтенд:
{
"id": "<UUIDv4>",
"type": "human",
"content": "Вопрос пользователя",
"additional_kwargs": {
"attached_files": [
{
"id": "<UUIDv4>",
"filename": "example.md",
"url": "<fileUploadUrl>"
}
]
}
}
Сообщения агента
GigaLab автоматически отрисовывает MDX-контент сгенерированный агентом и переданный в сообщении с типом ai.
Поддерживаются таблицы, картинки, ссылки, математические формулы и другое форматирование.
Пример кода для формирования сообщения:
from langchain_core.messages import AIMessage
def make_ai_message(content: str) -> AIMessage:
return AIMessage(content=content)
JSON-схема данных, которые поступают на фронтенд:
{
"id": "<UUIDv4>",
"type": "ai",
"content": "MDX контент"
}
Вы также можете отображать дополнительные элементы, например, процесс размышления агента или подсказки.
Отображение размышлений
Если агент поддерживает размышления (thinking), то вы сможете отобразить шаги его рассуждений.
Для этого в сообщении с типом ai нужно передать специальный тег <thinking>.
В интерфейсе это будет выглядеть так: