本文介绍如何利用GPT-4o-mini模型和LangChain框架,构建一款能够迅速响应用户查询的AI搜索智能体。文章以一个具体问题为例,展示智能体的高效性能和成本效益。
1 智能体性能实例
以查询What year was IBM founded and in what year was Apple founded?问题为例,智能体不仅能够快速给出答案,而且在成本效益上也极具优势:仅消耗165个token,花费0.0000594美元,同时响应速度极快,首个token的响应时间仅为1,389毫秒。
这里智能体配备了工具——Tavily API,专门用于网络数据检索。
具体配置:tools = [TavilySearchResults(max_results=1)]
2 基本设置
接下来展示如何在Python代码中设置LangSmith集成。首先,需要从LangSmith控制台获取LangChain的API密钥。至于项目名称,可以根据个人喜好自由命名。
import osfrom uuid import uuid4unique_id = uuid4().hex[0:8]os.environ["LANGCHAIN_TRACING_V2"] = "true"os.environ["LANGCHAIN_PROJECT"] = "OpenAI_SM_Agent_1"os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"os.environ["LANGCHAIN_API_KEY"] = "<LangSmith API Key Goes Here>"
需要添加 OpenAI 和 Tavily 网络搜索 API 密钥。
os.environ["OPENAI_API_KEY"] = getpass.getpass()os.environ["TAVILY_API_KEY"] = getpass.getpass()
模型设置为:
llm = ChatOpenAI(model="gpt-4o-mini")
3 LangSmith
在LangSmith平台上,可以访问名为"OpenAI_SM_Agent_1"的项目。在这个项目中,可以查看到总共五次的运行记录。如果选择查看首次运行的详情,系统会展示出该运行过程中的每一个步骤,包括每一步的操作细节、所需费用、以及完成操作的时间长短。
LangSmith平台不仅支持创建数据集,还支持对输出结果进行注释,标记为正确或错误。此外,它还能自动进行评估,以验证结果的准确性。
4 智能体执行
智能体会将用户提出的复杂问题拆解为若干个子问题,逐一给出解答。
这段代码示范了如何配置并应用OpenAI的语言模型(LLM),特别是通过LangChain框架的辅助,并整合了Tavily搜索工具来提升信息检索的效率。
网络搜索LangChain智能体:
## 安装必要的包pip install -qU langchain-openai langchain langchain_community## 导入所需的模块import getpassimport os## 设置API密钥的环境变量os.environ["OPENAI_API_KEY"] = getpass.getpass()os.environ["TAVILY_API_KEY"] = getpass.getpass()## 初始化OpenAI LLMfrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")## 导入必要的LangChain组件from langchain.agents import AgentExecutor, create_tool_calling_agentfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain_core.prompts import ChatPromptTemplate## 设置Tavily搜索工具tools = [TavilySearchResults(max_results=1)]## 创建聊天提示模板prompt = ChatPromptTemplate.from_messages([("system","You are a helpful assistant. Make sure to use the tavily_search_results_json tool for information.",),("placeholder", "{chat_history}"),("human", "{input}"),("placeholder", "{agent_scratchpad}"),])## 构建智能体agent = create_tool_calling_agent(llm, tools, prompt)## 创建智能体执行器,并传入智能体和工具agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)## 调用智能体执行器agent_executor.invoke({"input": "What year was IBM founded and in what year was Apple founded?"})
智能体的输出结果会清晰展示两个查询:“year IBM founded”和“year Apple founded”。最终,这些查询的答案与网络上的参考信息进行了整合。
总之,代码使用LangChain框架设置了一个基于LLM的代理,集成了一个自定义搜索工具,并用其来回答特定的查询。
5 技术优势总结
GPT-4o-mini的优势分析:
GPT-4o-mini的优势亮点:
本文转载自,作者: