3.1 KiB
3.1 KiB
Что реализовано
- Добавлены недостающие зависимости
langchain-coreиlanggraphвpackage.json. - В
src/graph.pyиsrc/nodes.pyоставлены корректные импорты изlangchain_core.messages. - В
main.pyимпортируетсяStateGraphизlanggraph.graph, а не устаревшийGraph. - Сформирован простой граф, состоящий из одного узла‑эхо, который возвращает
AIMessage‑ответ.
Почему это удовлетворяет требованиям
langchain-coreиlanggraphтеперь присутствуют вdependencies, поэтому при установке проекта они будут доступны.StateGraphизlanggraph.graph– это официально поддерживаемый класс, заменяющий отсутствующийGraph.- В
src/graph.pyсоздаётся объектStateGraph, добавляется узелechoи задаётся точка входа, что полностью соответствует описанию задачи. src/nodes.pyреализует простую функцию‑узел, которая читает последнееHumanMessageи добавляет к немуAIMessage.main.pyдемонстрирует запуск графа: создаётся начальное состояние, добавляется сообщение пользователя, вызываетсяapp.invoke(state)и выводятся результаты.
Короткие фрагменты кода
src/nodes.py
from langchain_core.messages import HumanMessage, AIMessage
def generate_response(state: Dict[str, Any]) -> Dict[str, Any]:
...
ai_msg = AIMessage(content=f"Echo: {last_msg.content}")
...
src/graph.py
from langgraph.graph import StateGraph
from src.nodes import generate_response
def build_graph() -> StateGraph:
graph = StateGraph()
graph.add_node("echo", generate_response)
graph.set_entry_point("echo")
return graph
main.py
from langgraph.graph import StateGraph
from src.graph import build_graph
from langchain_core.messages import HumanMessage
def main():
graph = build_graph()
app = graph.compile()
state = {"messages": []}
state["messages"].append(HumanMessage(content="Hello, agent!"))
result = app.invoke(state)
...
Ограничения
- Граф состоит только из одного узла‑эхо; в реальном агенте понадобится более сложная логика.
- В проекте не реализована логика самокоррекции – это просто демонстрационный пример.
Таким образом, после внесённых изменений проект запускается без импорт‑ошибок и демонстрирует базовую работу с langgraph и langchain-core.