基于GPT-4o-mini,使用LangChain打造AI搜索智能体

发布于 2024-8-22 13:23
浏览
0收藏

本文介绍如何利用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"的项目。在这个项目中,可以查看到总共五次的运行记录。如果选择查看首次运行的详情,系统会展示出该运行过程中的每一个步骤,包括每一步的操作细节、所需费用、以及完成操作的时间长短。

基于GPT-4o-mini,使用LangChain打造AI搜索智能体-AI.x社区

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科技论谈

收藏
回复
举报
回复
相关推荐