基于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科技論談
