INNER CODE UNIT · Python
build_graph
mfmezger/conversational-agent-langchain · src/agent/backend/graph.py:61
def build_graph(self) -> StateGraph:
"""Build the graph for the agent."""
workflow = StateGraph(state_schema=AgentState)
# define nodes
workflow.add_node("retriever", functools.partial(retrieve_documents, cfg=self.cfg))
workflow.add_node("retriever_with_chat_history", functools.partial(retrieve_documents_with_chat_history, cfg=self.cfg, llm=self.llm))
workflow.add_node("reranker", functools.partial(rerank_documents, reranker=self.reranker))
workflow.add_node("rewrite_query", functools.partial(rewrite_query, llm=self.llm))
workflow.add_node("response_synthesizer", functools.partial(generate_response_default, llm=self.llm))
workflow.add_node("response_synthesizer_cohere", functools.partial(generate_response_cohere, llm=self.llm, cohere_llm=self.cohere_llm))
# set entry point to retrievers
workflow.set_conditional_entry_point(path=self.route_to_retriever)
# connect retrievers to reranker
workflow.add_edge("retriever", "reranker")
workflow.add_edge("retriever_with_chat_history", "reranker")