当前位置: 首页> 财经> 股票 > 厦门建设局叶文语简历_搭建大数据平台费用_万能引流软件_seo关键词外包

厦门建设局叶文语简历_搭建大数据平台费用_万能引流软件_seo关键词外包

时间:2025/7/9 23:57:47来源:https://blog.csdn.net/qq_52241167/article/details/147314759 浏览次数:1次
厦门建设局叶文语简历_搭建大数据平台费用_万能引流软件_seo关键词外包

语言模型只能输出文本,无法执行 操作。Agent是使用LLM作为推理引擎来确定要执行的操作以及这些操作的输入应该是什么。然后根据结果,Agent进行执行。

创建Agent的API

pip install langgraph

初始化

import osfrom langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langgraph.prebuilt import chat_agent_executor
from langserve import add_routesos.environ['http_proxy'] = '127.0.0.1:7890'
os.environ['https_proxy'] = '127.0.0.1:7890'os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_PROJECT"] = "LangchainDemo"
os.environ["LANGCHAIN_API_KEY"] = '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'
os.environ["TAVILY_API_KEY"] = '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'# 聊天机器人案例
# 创建模型
model = ChatOpenAI(model='gpt-4-turbo')# 没有任何代理的情况下
# result = model.invoke([HumanMessage(content='北京天气怎么样?')])
#无代理情况

Tavily搜索引擎

#from langchain_community.tools.tavily_search import TavilySearchResults

TavilySearchResults:Langchain的内置搜索引擎工具

其内部包含多个元数据,包含大量常用公共网站,而后逐个搜索。

返回也是个Runnable对象(即可以调用invoke)。需要 API_Key初始化os.environ["TAVILY_API_KEY"] 。

# LangChain内置了一个工具,可以轻松地使用Tavily搜索引擎作为工具。
#  max_results: 只返回两个结果
search = TavilySearchResults(max_results=2)  
# print(search.invoke('北京的天气怎么样?'))

search.invoke('北京的天气怎么样?')返回:

{网站1url,content},{网站2url,content}....

模型绑定工具

上面的,只是创建了个search对象,并没有和Model进绑定。但创建代理,不需要绑定操作

model.bind_tools( [工具对象] ) :模型绑定工具。

绑定后,模型自动推理,是否需要调用工具。

# 让模型绑定工具
tools = [search]
model_with_tools = model.bind_tools(tools)# 模型可以自动推理:是否需要调用工具去完成用户的答案
resp = model_with_tools.invoke([HumanMessage(content='中国的首都是哪个城市?')])
#
print(f'Model_Result_Content: {resp.content}')
print(f'Tools_Result_Content: {resp.tool_calls}')
#
resp2 = model_with_tools.invoke([HumanMessage(content='北京天气怎么样?')])print(f'Model_Result_Content: {resp2.content}')
print(f'Tools_Result_Content: {resp2.tool_calls}')

Q1不需要调用 search工具。因此tool_calls为空.

Q2 模型回答不了,因此 Model的content为空。

创建代理

 chat_agent_executor.create_tool_calling_executor( 模型 , [工具]):创建工具调用器。返回 代理执行器(Runnable)

#  创建代理agent_executor = chat_agent_executor.create_tool_calling_executor(model, tools)resp = agent_executor.invoke({'messages': [HumanMessage(content='中国的首都是哪个城市?')]})
print(resp['messages'])resp2 = agent_executor.invoke({'messages': [HumanMessage(content='北京天气怎么样?')]})
print(resp2['messages'])

Q1:模型能回答,因此就返回AIMessage

Q2:模型无法回答,因此AIMessage是空的,但ToolMessage是有的。

关键字:厦门建设局叶文语简历_搭建大数据平台费用_万能引流软件_seo关键词外包

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: