Spaces:
Sleeping
Sleeping
File size: 1,210 Bytes
758f7c7 e39e70f 758f7c7 e39e70f 758f7c7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import os
from langchain_google_genai import ChatGoogleGenerativeAI
from langgraph.graph import START, StateGraph, MessagesState
from langgraph.prebuilt import tools_condition
from langgraph.prebuilt import ToolNode
from langchain_core.messages import SystemMessage, HumanMessage
from tools import *
tools = [add, substract, multiply, divide, web_search]
class AgentState(TypedDict):
question: str
def assistant(state: AgentState):
return {
"answer": [chat_with_tools.invoke(state["question"])],
}
def build_agent():
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash", temperature=0)
llm.bind_tools(tools)
## The graph
builder = StateGraph(AgentState)
# Define nodes: these do the work
builder.add_node("assistant", assistant)
builder.add_node("tools", ToolNode(tools))
# Define edges: these determine how the control flow moves
builder.add_edge(START, "assistant")
builder.add_conditional_edges(
"assistant",
# If the latest message requires a tool, route to tools
# Otherwise, provide a direct response
tools_condition,
)
builder.add_edge("tools", "assistant")
return builder.compile() |