僅需15行代碼,即可使??模型進(jìn)?問答并進(jìn)??歌聯(lián)?搜索!
讓我們的OpenAI api 聯(lián)網(wǎng)搜索,以便于獲取更加準(zhǔn)確和實(shí)時(shí)性的答案,這可能是我們經(jīng)常會(huì)遇到的?個(gè)需求。
為了實(shí)現(xiàn)這??標(biāo),我們需要借助Serpapi提供的Google搜索API接?。
準(zhǔn)備
1:OpenAI apikey
2:Serpapi(需要去Serpapi官網(wǎng)進(jìn)行申請(qǐng))
?先,我們需要在Serpapi官網(wǎng)上注冊?個(gè)賬戶,并獲取apikey。
然后像設(shè)置OpenAIAPIkey?樣,將SerpapiAPIkey設(shè)置到環(huán)境變量?。
代碼
import os
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
from langchain.agents import AgentType
os.environ["OPENAI_API_KEY"] = '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'
os.environ["SERPAPI_API_KEY"] = 'd329aa9848c97a69d8ad344dddf28af5dd8ab50e7ea1aa6271cb8c1ee94f4417'
# 加載 OpenAI 模型
llm = OpenAI(temperature=0,max_tokens=2048)
# 加載 serpapi ?具
tools = load_tools(["serpapi"])
# ?具加載后都需要初始化,verbose 參數(shù)為 True,會(huì)打印全部的執(zhí)?詳情
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
# 運(yùn)? agent
agent.run("What's the date today? What great events have taken place today in history?")
運(yùn)行以上代碼,我們可以看到,他正確的返回了日期(有時(shí)差),并且返回了歷史上的今天。
直接把上面的兩個(gè)API的KEY換成我們提前準(zhǔn)備好的即可。
(前提是你的電腦需要有python環(huán)境,并且安裝了相應(yīng)的依賴)
值得注意的是,chain和agent對(duì)象上都有?個(gè)?常有?的參數(shù),那就是verbose參數(shù)。開啟他后我們可以看到完整的chain執(zhí)行過程,他將我們的問題拆分成了幾個(gè)步驟,然后?步?步得到最終的答案。
總結(jié)
使用AI技術(shù)能極?地提?我們的工作效率,無論是處理?量的信息,還是解決復(fù)雜的問題,AI都能為我們提供很大的幫助。
但是同時(shí),我們也需要注意,AI技術(shù)并不是萬能的,它依然需要我們不斷地學(xué)習(xí)和掌握,才能真正地發(fā)揮其價(jià)值。
LangChain提供的功能還有很多,比如你還可以根據(jù)需求進(jìn)行自定義配置等等,更多的強(qiáng)?功能等待你去探索。