基于GPT-4o-mini,使用LangChain打造AI搜索智能體
本文介紹如何利用GPT-4o-mini模型和LangChain框架,構(gòu)建一款能夠迅速響應(yīng)用戶查詢的AI搜索智能體。文章以一個(gè)具體問(wèn)題為例,展示智能體的高效性能和成本效益。
1 智能體性能實(shí)例
以查詢What year was IBM founded and in what year was Apple founded?問(wèn)題為例,智能體不僅能夠快速給出答案,而且在成本效益上也極具優(yōu)勢(shì):僅消耗165個(gè)token,花費(fèi)0.0000594美元,同時(shí)響應(yīng)速度極快,首個(gè)token的響應(yīng)時(shí)間僅為1,389毫秒。
這里智能體配備了工具——Tavily API,專門用于網(wǎng)絡(luò)數(shù)據(jù)檢索。
具體配置:tools = [TavilySearchResults(max_results=1)]
2 基本設(shè)置
接下來(lái)展示如何在Python代碼中設(shè)置LangSmith集成。首先,需要從LangSmith控制臺(tái)獲取LangChain的API密鑰。至于項(xiàng)目名稱,可以根據(jù)個(gè)人喜好自由命名。
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 網(wǎng)絡(luò)搜索 API 密鑰。
os.environ["OPENAI_API_KEY"] = getpass.getpass()
os.environ["TAVILY_API_KEY"] = getpass.getpass()
模型設(shè)置為:
llm = ChatOpenAI(model="gpt-4o-mini")
3 LangSmith
在LangSmith平臺(tái)上,可以訪問(wèn)名為"OpenAI_SM_Agent_1"的項(xiàng)目。在這個(gè)項(xiàng)目中,可以查看到總共五次的運(yùn)行記錄。如果選擇查看首次運(yùn)行的詳情,系統(tǒng)會(huì)展示出該運(yùn)行過(guò)程中的每一個(gè)步驟,包括每一步的操作細(xì)節(jié)、所需費(fèi)用、以及完成操作的時(shí)間長(zhǎng)短。
LangSmith平臺(tái)不僅支持創(chuàng)建數(shù)據(jù)集,還支持對(duì)輸出結(jié)果進(jìn)行注釋,標(biāo)記為正確或錯(cuò)誤。此外,它還能自動(dòng)進(jìn)行評(píng)估,以驗(yàn)證結(jié)果的準(zhǔn)確性。
4 智能體執(zhí)行
智能體會(huì)將用戶提出的復(fù)雜問(wèn)題拆解為若干個(gè)子問(wèn)題,逐一給出解答。
這段代碼示范了如何配置并應(yīng)用OpenAI的語(yǔ)言模型(LLM),特別是通過(guò)LangChain框架的輔助,并整合了Tavily搜索工具來(lái)提升信息檢索的效率。
網(wǎng)絡(luò)搜索LangChain智能體:
## 安裝必要的包
pip install -qU langchain-openai langchain langchain_community
## 導(dǎo)入所需的模塊
import getpass
import os
## 設(shè)置API密鑰的環(huán)境變量
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")
## 導(dǎo)入必要的LangChain組件
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.prompts import ChatPromptTemplate
## 設(shè)置Tavily搜索工具
tools = [TavilySearchResults(max_results=1)]
## 創(chuàng)建聊天提示模板
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}"),
])
## 構(gòu)建智能體
agent = create_tool_calling_agent(llm, tools, prompt)
## 創(chuàng)建智能體執(zhí)行器,并傳入智能體和工具
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
## 調(diào)用智能體執(zhí)行器
agent_executor.invoke({"input": "What year was IBM founded and in what year was Apple founded?"})
智能體的輸出結(jié)果會(huì)清晰展示兩個(gè)查詢:“year IBM founded”和“year Apple founded”。最終,這些查詢的答案與網(wǎng)絡(luò)上的參考信息進(jìn)行了整合。
總之,代碼使用LangChain框架設(shè)置了一個(gè)基于LLM的代理,集成了一個(gè)自定義搜索工具,并用其來(lái)回答特定的查詢。
5 技術(shù)優(yōu)勢(shì)總結(jié)
GPT-4o-mini的優(yōu)勢(shì)分析:
- 本地控制優(yōu)勢(shì):開(kāi)源的語(yǔ)義語(yǔ)言模型(SLM)允許用戶在本地部署模型,實(shí)現(xiàn)對(duì)推理過(guò)程的完全掌控,這一點(diǎn)與OpenAI提供的商業(yè)API模型不同,后者為托管服務(wù)。
- OpenAI的核心優(yōu)勢(shì):OpenAI專注于提升模型的速度、降低成本,并增強(qiáng)處理能力,同時(shí)順應(yīng)了模型輕量化的行業(yè)趨勢(shì)。
- 市場(chǎng)競(jìng)爭(zhēng)地位:面對(duì)Orca-2、Phi3和TinyLlama等開(kāi)源文本SLM的強(qiáng)大競(jìng)爭(zhēng)對(duì)手,GPT-4o-mini需要展現(xiàn)出其獨(dú)到之處。
- 差異化特點(diǎn):GPT-4o-mini在成本效益、處理速度、功能能力和支持的模態(tài)上具有明顯優(yōu)勢(shì),這些特點(diǎn)使其在競(jìng)爭(zhēng)中脫穎而出。
GPT-4o-mini的優(yōu)勢(shì)亮點(diǎn):
- 多模態(tài)輸入支持:GPT-4o-mini能夠處理文本和視覺(jué)數(shù)據(jù),無(wú)論是通過(guò)API調(diào)用還是在我們的測(cè)試環(huán)境中,均能提供穩(wěn)定的支持。
- 功能擴(kuò)展預(yù)期:我們計(jì)劃為GPT-4o-mini增加更多功能,未來(lái)將支持文本、圖像、視頻和音頻的全面輸入輸出處理。
- 寬廣的上下文理解:模型配備了高達(dá)128K tokens的上下文窗口,確保了對(duì)長(zhǎng)篇幅內(nèi)容的深入理解和知識(shí)的最新性,更新至2023年10月。
- 多語(yǔ)言兼容:GPT-4o-mini具備多語(yǔ)言處理能力,能夠跨越語(yǔ)言障礙,服務(wù)于更廣泛的用戶群體。
- 推理速度提升:經(jīng)過(guò)優(yōu)化的推理速度讓GPT-4o-mini能夠快速響應(yīng)各種應(yīng)用場(chǎng)景的需求。
- 經(jīng)濟(jì)效益顯著:在保證處理速度的同時(shí),GPT-4o-mini的性價(jià)比極高,尤其適合需要大量并行處理的智能體應(yīng)用。其成本效益體現(xiàn)在每百萬(wàn)輸入token僅需15美分,每百萬(wàn)輸出token為60美分。
- 定制化微調(diào):GPT-4o-mini的微調(diào)功能即將推出,屆時(shí)用戶可以根據(jù)自己的特定需求對(duì)模型進(jìn)行定制化調(diào)整。
本文轉(zhuǎn)載自 ??AI科技論談??,作者: AI科技論談
