0%

websearch

websearch

websearch 是一個結合網頁搜尋與語言模型回答的工具。它會根據使用者的問題在網路上搜尋相關資訊,並使用語言模型整合搜尋結果來回答問題。websearch 支援多種搜尋引擎與語言,並提供詳細的日誌記錄功能。

除了wiki,其他搜尋方法皆需要輸入搜尋引擎的API_KEY到.env檔或環境變數中

  • SERPER: SERPER_API_KEY
  • BRAVE: BRAVE_API_KEY
  • TAVILY: TAVILY_API_KEY

websearch 功能

  1. 網頁搜尋:支援多種搜尋引擎,包括 wikiserpertavilybrave
  2. 日誌保存:支持保存執行過程與結果的日誌,便於後續分析。
  3. 流式輸出:支援流式輸出回答,適合需要即時回應的場景。

websearch 範例

使用 serper 搜尋引擎進行搜尋

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import akasha

wb = akasha.websearch(
model="openai:gpt-4o",
language="ch",
search_engine="serper",
search_num=5,
verbose=True,
keep_logs=True,
)

# 使用搜尋引擎回答問題
res = wb("工業4.0是什麼?")

# 保存日誌
wb.save_logs("wb.json")

使用流式輸出回答

1
2
3
4
5
6
# 啟用流式輸出
st = wb("工業4.0是什麼?", stream=True)

# 逐步輸出回答
for s in st:
print(s)

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 數等。

相關連結