LangChain 对多个LLM进行了外部封装,使用统一的接口进行llm的调用,工具的调用,参数的解析,以及agent的实现。LangChain中提供了跟上述用OpenAI的api一样的功能,用bind_tools实现,支持多个LLM,例如gpt4,Qwen。 方法是首先创建一个LLM例如llm = ChatOpenAI(xxx),然后用llm.bind_tools()就可以了。这个封装的好处虽然说...
bind_tools([multiply], tool_choice="multiply") model_with_tools.kwargs["tools"] 输出: [{'type': 'function', 'function': {'name': 'multiply', 'description': 'multiply(first_num: float, second_num: float) -> float - 两个数相乘', 'parameters': {'type': 'object', 'properties': ...
from langchain_core.tools import tool @tool def multiply(first_int: int, second_int: int) -> int: """Multiply two integers together.""" return first_int * second_int llm = ChatTongyi(model="qwen-turbo") llm_with_tools = llm.bind_tools([multiply]) msg = llm_with_tools.invoke("5...
from langchain_core.tools import tool @tool def multiply(first_int: int, second_int: int) -> int: """Multiply two integers together.""" return first_int * second_int llm = ChatTongyi(model="qwen-turbo") llm_with_tools = llm.bind_tools([multiply]) msg = llm_with_tools.invoke("5...
tools = [generate_and_run_sql_query, data_analyzer] model = ChatOpenAI(model="gpt-4o", temperature=0).bind_tools(tools) def create_agent_graph(): workflow = StateGraph(MessagesState) tool_node = ToolNode(tools) workflow.add_node("agent", call_model) ...
tools = [generate_and_run_sql_query, data_analyzer] model = ChatOpenAI(model="gpt-4o", temperature=0).bind_tools(tools) def create_agent_graph(): workflow = StateGraph(MessagesState) tool_node = ToolNode(tools) workflow.add_node("agent", call_model) ...
llm_with_tools = llm.bind_tools([multiply]) msg = llm_with_tools.invoke("5乘以32的结果是多少?").tool_callsprint(msg) 输出结果 得到了入参 [{'name':'multiply','args': {'first_int':5,'second_int':32},'id':'','type':'tool_call'}] ...
绑定工具:该 bind_tools 方法获取工具列表并将它们绑定到 llm 实例。这将创建一个新的语言模型实例, llm_with_tools 该实例集成了我们的自定义工具。这种增强的语言模型现在可以解释与绑定工具提供的功能相关的命令,从而实现自然语言处理和任务执行之间的无缝交互。这种将工具绑定到语言模型的过程对于创建交互式和功能...
llm_with_tools = llm.bind_tools([multiply]) # 我们用bind_tools将工具的定义作为对模型每次调用的一部分传入,以便模型可以在适当的时候调用改工具 模块调用 然后,我们可以使用模型来解析用户输入并调用工具: # 使用模型来解析用户输入并调用工具msg = llm_with_tools.invoke("The first number is 5 and the...
llm_with_tools = llm.bind_tools([multiply]) msg = llm_with_tools.invoke("5乘以32的结果是多少?").tool_callsprint(msg) 输出结果 得到了入参 [{'name':'multiply','args': {'first_int':5,'second_int':32},'id':'','type':'tool_call'}] ...