llm-agent-backend/app/models.py
dimitrievgs d27156d152 init
2025-09-12 00:26:19 +03:00

40 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Определения моделей данных (pydantic) для представления состояния агента LangGraph.
Включают схему для отслеживания хода выполнения диалога и визуализации графа.
"""
from typing import Dict, Any, List, Optional
from langchain_core.pydantic_v1 import BaseModel, Field
# Определяем состояние нашего агента (LangGraph)
class AgentState(BaseModel):
"""Состояние графа агента."""
input: str = Field(description="Исходный запрос пользователя.")
command: Optional[str] = Field(None,
description="Распознанная слеш-команда.")
command_args: List[str] = Field([], description="Аргументы команды.")
chat_history: List[Dict[str, str]] = Field(
[],
description=
"Полная история сообщений в текущей ветке диалога. Формат: [{'role': 'user/assistant', 'content': 'message'}]"
)
llm_response: Optional[str] = Field(None, description="Ответ от LLM.")
image_urls: List[str] = Field(
[], description="URL сгенерированных изображений.")
analysis_result: Optional[str] = Field(
None, description="Результат анализа изображения.")
subtitles: Optional[str] = Field(None, description="Полученные субтитры.")
summarized_history_text: Optional[str] = Field(
None, description="Суммированная история.")
error: Optional[str] = Field(None, description="Сообщение об ошибке.")
# Для визуализации графа (имитация узлов и ребер)
graph_nodes: List[Dict[str, Any]] = Field(
[], description="Узлы для визуализации графа.")
graph_edges: List[Dict[str, Any]] = Field(
[], description="Ребра для визуализации графа.")
current_node_id: str = Field(
"start", description="ID текущего узла графа для фронтенда.")
parent_node_id: Optional[str] = Field(None,
description="ID родительского узла.")