基于GPT-4o-mini,使用LangChain打造AI搜索智能体
本文介绍如何利用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 os
from uuid import uuid4
unique_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 getpass
import os
## 设置API密钥的环境变量
os.environ["OPENAI_API_KEY"] = getpass.getpass()
os.environ["TAVILY_API_KEY"] = getpass.getpass()
## 初始化OpenAI LLM
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
## 导入必要的LangChain组件
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from 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的优势分析:
- 本地控制优势:开源的语义语言模型(SLM)允许用户在本地部署模型,实现对推理过程的完全掌控,这一点与OpenAI提供的商业API模型不同,后者为托管服务。
- OpenAI的核心优势:OpenAI专注于提升模型的速度、降低成本,并增强处理能力,同时顺应了模型轻量化的行业趋势。
- 市场竞争地位:面对Orca-2、Phi3和TinyLlama等开源文本SLM的强大竞争对手,GPT-4o-mini需要展现出其独到之处。
- 差异化特点:GPT-4o-mini在成本效益、处理速度、功能能力和支持的模态上具有明显优势,这些特点使其在竞争中脱颖而出。
GPT-4o-mini的优势亮点:
- 多模态输入支持:GPT-4o-mini能够处理文本和视觉数据,无论是通过API调用还是在我们的测试环境中,均能提供稳定的支持。
- 功能扩展预期:我们计划为GPT-4o-mini增加更多功能,未来将支持文本、图像、视频和音频的全面输入输出处理。
- 宽广的上下文理解:模型配备了高达128K tokens的上下文窗口,确保了对长篇幅内容的深入理解和知识的最新性,更新至2023年10月。
- 多语言兼容:GPT-4o-mini具备多语言处理能力,能够跨越语言障碍,服务于更广泛的用户群体。
- 推理速度提升:经过优化的推理速度让GPT-4o-mini能够快速响应各种应用场景的需求。
- 经济效益显著:在保证处理速度的同时,GPT-4o-mini的性价比极高,尤其适合需要大量并行处理的智能体应用。其成本效益体现在每百万输入token仅需15美分,每百万输出token为60美分。
- 定制化微调:GPT-4o-mini的微调功能即将推出,届时用户可以根据自己的特定需求对模型进行定制化调整。
本文转载自 AI科技论谈,作者: AI科技论谈