websearch
websearch
是一個結合網頁搜尋與語言模型回答的工具。它會根據使用者的問題在網路上搜尋相關資訊,並使用語言模型整合搜尋結果來回答問題。websearch
支援多種搜尋引擎與語言,並提供詳細的日誌記錄功能。
除了wiki,其他搜尋方法皆需要輸入搜尋引擎的API_KEY到.env檔或環境變數中
- SERPER: SERPER_API_KEY
- BRAVE: BRAVE_API_KEY
- TAVILY: TAVILY_API_KEY
websearch 功能
- 網頁搜尋:支援多種搜尋引擎,包括
wiki
、serper
、tavily
和brave
。 - 日誌保存:支持保存執行過程與結果的日誌,便於後續分析。
- 流式輸出:支援流式輸出回答,適合需要即時回應的場景。
websearch 範例
使用 serper
搜尋引擎進行搜尋
1 | import akasha |
使用流式輸出回答
1 | # 啟用流式輸出 |
websearch 參數
初始化參數
model: str
使用的語言模型,例如 "openai:gpt-4o"
或 "openai:gpt-3.5-turbo"
。
language: str
搜尋語言與地區,支持 "en"
(英文)或 "ch"
(中文)。
search_engine: str
使用的搜尋引擎,支持:
"wiki"
:維基百科搜尋。"serper"
:Google 搜尋 API(需申請 API 金鑰)。"tavily"
:Tavily 搜尋 API(需申請 API 金鑰)。"brave"
:Brave 搜尋 API(需申請 API 金鑰)。
search_num: int
搜尋結果的數量。
max_input_tokens: int
單次輸入模型的最大 token 數。
max_output_tokens: int
模型輸出的最大 token 數。
temperature: float
語言模型的隨機性參數,範圍為 0.0 到 1.0。
system_prompt: str
指示語言模型的輸出格式需求。
keep_logs: bool
是否保存執行過程與結果的日誌。
verbose: bool
是否顯示詳細的執行過程。
stream: bool
是否啟用流式輸出。
env_file: str
指定 .env
環境設定檔的路徑。
call 參數
prompt: str
使用者的問題。
stream: bool
是否啟用流式輸出。
search_engine: str
指定搜尋引擎,支持 "wiki"
、"serper"
、"tavily"
和 "brave"
。
search_num: int
搜尋結果的數量。
language: str
搜尋語言與地區,支持 "en"
或 "ch"
。
日誌與結果
- 搜尋過程與結果會保存到指定的日誌文件中。
- 日誌包括搜尋引擎、搜尋結果數量、語言模型的輸入輸出 token 數等。