2025年4月4日 星期五

Tavily 搜尋引擎

Tavily 搜尋引擎:核心功能、運作原理、應用場景與優勢

Tavily 與傳統搜尋引擎的特色與差異

Tavily 是專為人工智慧代理(AI agents)與大型語言模型(LLM)打造的搜尋引擎,與 Google、Bing 等傳統搜尋服務有明顯差異 (Frequently Asked Questions - Tavily Docs)。 傳統搜尋 API(如 Google CSE 或 Bing Search)通常只根據查詢返回網頁連結與簡短摘要,開發者還需自行爬取網頁內容、篩選資訊並整合進入應用 (About - Tavily Docs)。 相比之下,Tavily 動態地同時搜尋多個來源,自動檢閱多筆資料並萃取最相關的內容,在單一 API 呼叫中就提供 精煉且可直接使用的資訊 (Frequently Asked Questions - Tavily Docs)。 這種設計大幅減少了開發者後續人工處理的負擔。同時,Tavily 專為 AI 優化結果格式:回傳結果包含標題、URL、內容摘要,甚至完整內容和 AI 生成答案(可選)等結構化欄位 (Tavily Search | ️ LangChain)。 因此,相較傳統搜尋引擎,Tavily 提供 更豐富且直接可用的結果,能即時供 AI 模型引用,減少了「從連結再抓取內容」的繁瑣步驟 (Frequently Asked Questions - Tavily Docs) (About - Tavily Docs)。

另外,Tavily 與一些 AI 答案引擎(如 Perplexity 的 Sonar API 或 OpenAI 的 Web Search API)也有所不同 (Frequently Asked Questions - Tavily Docs)。 Tavily 以搜尋內容為核心,讓開發者自行控制搜尋深度、限定目標網域以及是否需要 LLM 生成的答案 (Frequently Asked Questions - Tavily Docs)。 LLM 模型產生的回答在 Tavily 中是 可選擇的功能,而非強制預設,這意味著 Tavily 更靈活,可依不同情境提供純資料或附帶答案 (Frequently Asked Questions - Tavily Docs)。 總而言之,Tavily 的特色在於 針對 AI 工作流程量身打造:具備即時精確的結果、智慧查詢建議與深入研究能力 (Tavily)。 它能降低 LLM 產生幻覺內容的機率,提升決策可靠性,這是傳統搜尋引擎難以達到的效果 (Tavily) (Tavily)。

多來源資料整合與即時可靠性

Tavily 的運作原理強調 多來源整合與資料品質。當接收到查詢時,Tavily Search API 會同時搜尋 多達 20 個以上的線上來源,透過內建的 AI 算法對搜尋結果進行評分、過濾,並將 最相關的內容排序後返回 (About - Tavily Docs)。 也就是說,一次 Tavily 查詢相當於彙集了來自數十個權威網站的資訊,並以 AI 自動擷取出與查詢目標最切題的段落。這種 智能彙整確保使用者獲得 即時且可靠的結果:Tavily 會從可信賴的資料來源擷取內容,而且允許使用者自訂偏好的來源,以進一步提高相關性 (Frequently Asked Questions - Tavily Docs)。 傳統搜尋往往僅提供結果列表,而 Tavily 直接提供經過清洗的內容片段,甚至可取得完整頁面內容(若設定 include_raw_content)以及相關圖片 (Tavily Search | ️ LangChain)。 開發者也能指定搜尋深度(如基本或深入搜尋模式)、時間範圍(例如僅限最近一天或一週的結果)等參數,以獲取最新且符合時效的資料。

透過這種多來源整合,Tavily 確保查詢結果 最新事實可靠。系統會持續監控並更新來自權威網站的資訊,以避免過時內容 (Frequently Asked Questions - Tavily Docs)。 例如,Tavily 可設定只包含特定網域的結果或排除不相關的網域,確保返回的內容 精準貼題。這種即時性對於 AI 模型尤為重要:大型語言模型本身訓練資料可能落後,而 Tavily 能提供最新的網路資訊作補充,彌補了知識時效性的不足 (Frequently Asked Questions - Tavily Docs)。 同時,由於 Tavily 將搜尋、網頁爬取和資料提取整合為單一步驟完成 (Frequently Asked Questions - Tavily Docs)(即 單一 API 即可取得結構化的網頁資料),大幅縮短了資訊獲取的延遲,通常在數秒內即可返回結果 (Frequently Asked Questions - Tavily Docs)。 整體而言,多來源資料整合讓 Tavily 成為一個 即時性強、可靠且面向 AI 優化的搜尋解決方案。

Tavily 的應用場景與優勢(特別針對 AI 代理與 LLM)

Tavily 的核心功能在許多 AI 應用場景下都能解決關鍵問題,尤其適用於自主 AI 代理和需要檢索輔助的大型語言模型應用:

  • 檢索增強生成(RAG): 在 RAG 工作流程中,LLM 需要從外部知識庫檢索相關資訊以避免憑空捏造答案(幻覺)。 Tavily 提供 精確且即時的背景資料作為模型上下文,有效降低了模型產生錯誤資訊的機率 (About - Tavily Docs)。 開發者可以直接將 Tavily 返回的重點內容作為提示上下文,確保生成結果有據可依 (About - Tavily Docs)。
  • AI 助理與聊天機器人: 對於需要回答 最新資訊的聊天機器人,Tavily 扮演即時知識庫的角色。 它能讓對話代理即時存取網路上的新知,例如最新新聞或事件,並提供 精準的來源內容來回答使用者問題 (Tavily)。 這使 AI 助理能提供 與時俱進且有根據的回覆,而非受限於訓練語料的知識。
  • 研究分析與資料蒐集: Tavily 非常適合充當 研究助手。 例如,對於公司資訊調研或市場分析,可以透過 Tavily 同時從新聞、官方網站、社群媒體等多種來源獲取資料,並整合出關鍵見解 (Data Enrichment Agent - Tavily Docs)。 在企業應用中,Athena 等 AI 數據分析助手就利用 Tavily 取得即時且事實明確的資訊,來為企業提供 可靠有據的分析報告 (Tavily)。 同樣地,開發者也能建立 資料豐富化(Data Enrichment)流程,利用 Tavily 將遺漏的資訊自動補齊。 例如給定一組產品或人物清單,由 Tavily 查找缺失的屬性資料(如聯絡資訊、最新動態),從而自動完善資料集 (Data Enrichment Agent - Tavily Docs)。
  • AI 決策代理: 對於需要連上網路查詢資訊再決策的自主代理(Autonomous Agents),Tavily 是不可或缺的工具。 透過 Tavily,代理可以在決策前 快速查證相關事實,或在執行複雜任務時獲取輔助資料。 例如在供應鏈優化場景中,AI 代理可隨時查詢當前市場價格、物流狀況等資訊,以做出更明智的決策 (Frequently Asked Questions - Tavily Docs)。 由於 Tavily 支持 高並發查詢且無資料留存,能安全擴展至企業級應用,滿足大量請求的需求 (Frequently Asked Questions - Tavily Docs)。

綜上所述,Tavily 的 優勢在於專為 AI 應用設計:內建的結構化搜尋和內容提取功能讓 AI 更易取得所需知識(Built for AI) (Frequently Asked Questions - Tavily Docs); 高度客製化的參數讓開發者掌控搜尋的範圍與深度 (Frequently Asked Questions - Tavily Docs); 並且結果 即時可靠來源權威,能增強 AI 回答的可信度 (Frequently Asked Questions - Tavily Docs)。 加上與開發框架(如 LangChain、LlamaIndex)的無縫整合,以及嚴格的安全與隱私保障(如通過 SOC 2 認證、零數據保留) (Frequently Asked Questions - Tavily Docs), Tavily 成為 AI 代理和 LLM 應用不可或缺的搜尋利器。

LangChain 整合 Tavily 的使用範例

下面提供一至兩個簡易的 Python 程式範例,展示如何在 LangChain 框架中使用 Tavily 提供的搜尋功能。 這些範例假設您已經安裝相關套件並取得 Tavily API 金鑰(詳細安裝與申請方式見下一節)。

範例一:直接使用 Tavily 搜尋工具取得結果

import os
# 設定 Tavily API 金鑰 (假設已註冊取得 API Key)
os.environ["TAVILY_API_KEY"] = "tvly-你的API金鑰"

from langchain_tavily import TavilySearch

# 初始化 Tavily 搜尋工具,指定回傳結果數量和是否包含AI簡短回答
search_tool = TavilySearch(max_results=5, include_answer=True)

# 定義查詢問題,例如詢問台北101的大樓高度
query = "What is the height of Taipei 101 building?"

# 執行 Tavily 搜尋,取得結果列表(包含標題、網址、內容摘要等,以及AI生成的簡短回答)
result = search_tool.invoke({"query": query})

# 輸出搜尋結果(JSON 格式字典,內含 query、answer、results 等欄位)
print(result)

上述程式碼使用 LangChain 提供的 TavilySearch 工具直接執行查詢。 我們首先匯入並初始化 TavilySearch,在參數中可以設定所需的結果數量、是否要包含原始全文內容或相關圖片等 (這裡我們請求返回 5 筆結果並讓 Tavily 嘗試產生簡短答案)。 接著用 .invoke() 方法傳入查詢字典來執行搜尋。結果將以 Python 字典/JSON 結構返回,其中包含查詢字串、AI 簡答(如果請求了則會有)、以及結果列表等欄位 (Tavily Search | ️ LangChain)。 每個結果項目含有標題、URL和內容摘要,開發者可將這些內容作為後續 LLM 的參考上下文或直接呈現給使用者。

範例二:將 Tavily 作為 LangChain Agent 的工具

from langchain import OpenAI
from langchain_tavily import TavilySearch
from langchain.agents import initialize_agent, Tool

# 初始化大型語言模型 (假設使用 OpenAI GPT-4)
llm = OpenAI(model_name="gpt-4", temperature=0)

# 初始化 Tavily 搜尋工具(可指定搜尋主題、結果數量等參數)
tavily_tool = TavilySearch(max_results=3, topic="general")

# 將 Tavily 封裝為 LangChain 工具供 Agent 使用
tools = [Tool(name="TavilySearch", func=tavily_tool.invoke, description="Internet search tool")]

# 建立一個 REACT 型 Agent,讓其具備使用 Tavily 搜尋的能力
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)

# 提供使用者問句給 Agent,Agent 將自行決定是否呼叫 Tavily 來搜尋網路
user_question = "2024 年歐洲國家盃(Euro 2024)的主辦國是哪一國?"
response = agent.run(user_question)

print(response)

在此範例中,我們將 Tavily 的搜尋功能整合進 LangChain 的智能代理(Agent)。 我們首先初始化一個語言模型 llm,然後建立 Tavily 的搜尋工具實例 tavily_tool。 接著透過 Tool 封裝,為代理命名一個可以使用的工具 "TavilySearch",其功能綁定為前述的 tavily_tool.invoke 方法。 使用 LangChain 的 initialize_agent,我們生成一個具備工具使用能力的代理(這裡選用零次提示的 ReAct Agent 框架)。 當我們向代理提出問題時(例如:「2024 歐洲杯的主辦國是誰?」),代理會自主決定使用 Tavily 搜尋工具來查找網路資料,再根據搜尋結果給出最後回答。 上述程式執行後,代理可能會透過 Tavily 找到維基百科等來源證實該答案(如「德國主辦了2024年歐洲國家盃」),並將此作為回覆的一部分 (Tavily Search | ️ LangChain) (Tavily Search | ️ LangChain)。 透過這種整合方式,開發者能夠快速構築一個可上網查資料的智慧 AI 助理,充分利用 Tavily 提供的強大搜尋能力。

API 金鑰申請、安裝指令與前置設定

要開始使用 Tavily 搜尋引擎,需先完成 API 金鑰的申請註冊,以及相關的開發套件安裝與設定:

  • 申請 Tavily API 金鑰: 前往官方的 Tavily 平台註冊帳號並取得 API Key (Tavily Search | ️ LangChain)。 Tavily 對新使用者提供 每月 1000 次免費查詢額度,註冊過程不需信用卡 (About - Tavily Docs)。 取得的 API 金鑰通常格式如 tvly-*****,請妥善保存。
  • 安裝開發套件: Tavily 提供多種方式供開發者使用,其中文檔建議的 Python 生態整合方式是安裝 langchain-tavily 套件 (Tavily Search | ️ LangChain)。 在環境中可使用 pip install langchain-tavily 指令完成安裝(此套件將同時安裝 Tavily 的 Python SDK)。 若您打算直接透過 Tavily 官方 SDK 使用,也可以安裝 tavily-python 套件 (GitHub - tavily-ai/tavily-python: A python wrapper for Tavily search API)。 兩種方式皆可方便地將 Tavily 功能引入 Python 應用。
  • 前置設定: 獲得 API Key 後,需要在程式中設定憑證。為了安全起見,建議將金鑰設為環境變數,例如在程式啟動時設置 TAVILY_API_KEY (Tavily Search | ️ LangChain)。 LangChain 和 Tavily 的整合會自動讀取此環境變數來驗證您的身份。您也可以在建立 Tavily 客戶端或工具實例時直接傳入 API Key,但使用環境變數能避免將金鑰硬編碼在原始碼中。

完成上述步驟後,您即可開始調用 Tavily 的 API 來進行搜尋。整體而言,Tavily 提供了 即插即用的開發體驗:只需註冊兩步驟取得金鑰,安裝套件並做簡單設定,即可將強大的即時網路搜尋能力無縫地融入您的應用 (Tavily) (Tavily)。 借助 Tavily,開發者能專注於應用邏輯本身,而將繁雜的網路資料檢索與處理工作交給 Tavily 的後端服務來完成。 這讓您的 AI 應用能在最短時間內具備可靠的知識檢索能力,充分發揮出 Tavily 搜尋引擎的核心優勢。

參考資料:

  1. Tavily 官方文件 – About Tavily (About - Tavily Docs) (About - Tavily Docs)
  2. Tavily 官方文件 – FAQ 常見問題 (Frequently Asked Questions - Tavily Docs) (Frequently Asked Questions - Tavily Docs) (Frequently Asked Questions - Tavily Docs)
  3. LangChain 官方文件 – Tavily Search Integration (Tavily Search | ️ LangChain) (Tavily Search | ️ LangChain)
  4. Tavily 官方部落格 – Data Enrichment Agent (Data Enrichment Agent - Tavily Docs)
  5. Tavily 官網 – Features 特色介紹 (Tavily)

The Era of Experience 導讀

1. 研究動機與核心主張(摘要/第 1 頁) 動機 :當前主流 AI 依賴大規模「人類資料」──包括文字、程式碼與標註──透過模仿與人類偏好微調(RLHF)取得跨領域能力。然而在人類尚未涉足、或資料已枯竭的領域(如尖端數學、科學發現)出現進...