Files
ekzamen-samokorrektiruyusch…/SOLUTION.md
T

3.1 KiB
Raw Blame History

Что реализовано

  • Добавлены недостающие зависимости 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.