【GPT入門】第33課 從應用場景出發,區分 TavilyAnswer 和 TavilySearchResults,代碼實戰

【GPT入門】第33課 從應用場景出發,區分 TavilyAnswer 和 TavilySearchResults,代碼實戰

  • 1. 區別
      • 應用場景
  • 2. 代碼使用
  • 3.代碼執行效果

langchain_community.tools.tavily_search中,TavilyAnswerTavilySearchResults有以下區別和應用場景:

1. 區別

  • 功能側重
    • TavilyAnswer:主要用于查詢Tavily搜索API并直接獲取答案。它更側重于為問題提供簡潔明了的回答,隱藏了原始的搜索數據細節,只返回最終的答案。
    • TavilySearchResults:用于查詢Tavily搜索API并獲取完整的搜索結果,包括標題、網址、內容、答案、相關圖片等多種數據類型。它提供了更豐富的信息,允許開發者根據具體需求進一步解析和處理這些數據。
  • 輸出格式
    • TavilyAnswer:通常只返回一個字符串形式的答案。
    • TavilySearchResults:根據配置,可能以content_and_artifact格式返回,包含內容和相關的元數據等,如搜索結果的詳細信息、查詢的問題、后續問題、答案、圖片列表、響應時間等。

應用場景

  • TavilyAnswer
    • 問答系統:當構建一個需要直接回答用戶問題的智能問答系統時,TavilyAnswer可以快速獲取簡潔的答案并呈現給用戶,無需用戶處理額外的搜索結果信息。例如,用戶詢問“法國的首都是哪里”,TavilyAnswer可以直接返回“巴黎”。
    • 信息提取:在一些只需要關鍵信息的場景中,如從大量文本中提取特定問題的答案,TavilyAnswer能夠精準地提供所需信息,避免了無關數據的干擾。
  • TavilySearchResults
    • 內容聚合與展示:如果需要創建一個內容聚合平臺或搜索引擎界面,TavilySearchResults可以獲取全面的搜索結果,包括標題、網址、內容等,以便更好地展示給用戶,讓用戶能夠根據詳細信息判斷搜索結果的相關性。例如,構建一個類似百度搜索的界面,用戶可以看到搜索結果的標題、摘要和鏈接,方便進一步點擊查看詳細內容。
    • 復雜數據分析:當需要對搜索結果進行深入分析,例如統計特定關鍵詞在不同網頁中的出現頻率、分析搜索結果的來源分布等,TavilySearchResults提供的豐富數據能夠滿足這些需求。開發者可以根據返回的多個字段進行各種分析和處理,為后續的決策或進一步的智能應用提供支持。

2. 代碼使用

from langchain_community.tools.tavily_search import TavilySearchResults,TavilyAnswer
from dotenv import load_dotenv
import os
load_dotenv()
import os
import json
# 用github賬號登錄,生成一個api key,填入下面的tavily_dev_i
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY")
# 不用api key,直接調用,從環境變量中獲取
search = TavilySearchResults(# api_key=TAVILY_API_KEY # 不用api key,直接調用,從環境變量中獲取
)
res = search.invoke("馬克思是誰")
print(res)
print(len(res))
print(json.dumps(res[0], indent=4, ensure_ascii=False))# tavily_answer = TavilyAnswer(api_key=TAVILY_API_KEY)
# 不用api key,直接調用,從環境變量中獲取
tavily_answer = TavilyAnswer()
res = tavily_answer.invoke("馬克思是誰")
print('tavily_answer:',res)

3.代碼執行效果

TavilySearch默認查返回5條結果

[{'title': '在紀念馬克思誕辰200周年大會上的講話 - 中國政府網', 'url': 'https://www.gov.cn/gongbao/content/2018/content_5294767.htm', 'content': '馬克思是全世界無產階級和勞動人民的革命導師,是馬克思主義的主要創始人,是馬克思主義政黨的締造者和國際共產主義的開創者,是近代以來最偉大的思想家。 兩個世紀過去了,人', 'score': 0.8446273}, {'title': '卡爾·馬克思_百度百科', 'url': 'https://baike.baidu.com/item/%E5%8D%A1%E5%B0%94%C2%B7%E9%A9%AC%E5%85%8B%E6%80%9D/158728', 'content': '卡爾·馬克思,全名卡爾·海因里希·馬克思(德語:Karl Heinrich Marx,1818年5月5日-1883年3月14日),馬克思主義的創始人之一,第一國際的組織者和領導者,馬克思主義政黨的締造者', 'score': 0.829285}, {'title': '馬克思永遠是無產者和共產黨人的光輝楷模 - 求是', 'url': 'http://www.qstheory.cn/dukan/hqwg/2018-05/07/c_1122794829.htm', 'content': '馬克思是一位偉大的革命導師,一生光明磊落,不謀私利,把自己的一生無私地獻給了無產階級革命事業,為人類留下了一座巨大的思想理論寶庫。', 'score': 0.8235701}, {'title': '馬克思是誰 - 百度經驗', 'url': 'https://jingyan.baidu.com/article/49ad8bceb54f741934d8fabe.html', 'content': '馬克思全名:卡爾·海因里希·馬克思。Karl Marx,曾有麥客士、馬陸科斯、馬爾克、馬可思、馬格斯、馬爾格時等譯法。從1902到1923年,經過21年才統一翻譯為', 'score': 0.78650844}, {'title': '馬克思主義- 維基百科,自由的百科全書', 'url': 'https://zh.wikipedia.org/zh-hans/%E9%A9%AC%E5%85%8B%E6%80%9D%E4%B8%BB%E4%B9%89', 'content': '馬克思主義者普遍認為一個社會主義社會比資本主義要能帶給更大部分人利益,比如列寧在1917年俄國革命前說:“生產模式的社會化必將導致生產工具回歸社會,這種轉變將可以帶來勞動產能的龐大提升、工時的減少,并且將落后、雜亂、規模又小的資本主義生產轉而集體而先進的生產。”[20]\n\n歷史\n\n馬克思和恩格斯\n\n卡爾·馬克思(1818年5月5日-1883年3月14日)是德國的哲學家、政治經濟學家和社會主義者,他以歷史唯物主義、異化、和剝削理論來解釋資本主義的生產模式,并且透過階級斗爭分析歷史。馬克思在1848年的《共產黨宣言》中概述了他的理論:“所有社會自古以來的歷史都是階級斗爭的歷史。”他的思想在當時就已經有相當影響力,并且在他死去后,由1917年的俄國革命大幅度的擴張。 [...] 馬克思主義(德語:Marxismus)是一種以歷史唯物主義、辯證法和對資本主義的批判所發展而出的經濟、政治和社會世界觀。在19世紀中后期,卡爾·馬克思和弗里德里希·恩格斯建構出了馬克思主義的理論架構。以馬克思主義作為根基或方法論的寫作對現代的政治哲學和社會運動產生重大而廣泛的影響,包含了其獨特的哲學、社會學、政治經濟學以及革命意識形態[1]。對于馬克思主義的理論并沒有一套統一的定義,也因此它在眾多的領域和題材上出現多元的發展,導致其門下包含眾多明顯對立甚至互相沖突的理論[2]。而要驗證事物對世界是否利大于弊,便需要實踐。馬克思說過:“實踐才是唯一的真理”。', 'score': 0.78314424}]
5
{"title": "在紀念馬克思誕辰200周年大會上的講話 - 中國政府網","url": "https://www.gov.cn/gongbao/content/2018/content_5294767.htm","content": "馬克思是全世界無產階級和勞動人民的革命導師,是馬克思主義的主要創始人,是馬克思主義政黨的締造者和國際共產主義的開創者,是近代以來最偉大的思想家。 兩個世紀過去了,人","score": 0.8446273
}
tavily_answer: 卡爾·馬克思是德國哲學家、經濟學家和社會學家,馬克思主義的創始人之一,著有《資本論》和《共產黨宣言》。他在19世紀影響了全球社會和政治運動。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76026.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76026.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76026.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java設計模式】第10章 外觀模式講解

10. 外觀模式 10.1 外觀模式講解 定義:為子系統提供統一接口,簡化調用。類型:結構型模式適用場景: 子系統復雜需簡化調用分層系統需統一入口優點: 降低耦合符合迪米特法則(最少知道原則)缺點: 擴展子系統需修改外觀類,違反開閉原則10.2 外觀模式 Coding // 子系統:…

Dubbo的簡單介紹

Dubbo的簡單介紹 Dubbo 是一個高性能的 Java RPC 框架,最初由阿里巴巴開發,用于構建分布式服務。它主要用于提供服務間的通信,支持高效的遠程調用和服務治理,常用于大規模分布式系統中。Dubbo 提供了以下幾個核心功能&#xff1a…

每日一題(小白)數組娛樂篇17

對一個數組進行接收進行操作后輸出。輸入三個操作數abc,將數組下標a到b的數字加上c;輸入四個操作數abcd,將下標c到d的數字復制到a到b,可以借用一個中間量數組實現;兩個操作數ab,將數組下標a到b的數字加和輸…

總結一下常見的EasyExcel面試題

說一下你了解的POI和EasyExcel POI(Poor Obfuscation Implementation):它是 Apache 軟件基金會的一個開源項目,為 Java 程序提供了讀寫 Microsoft Office 格式文件的功能,支持如 Excel、Word、PowerPoint 等多種文件格…

01-Redis-基礎

1 redis誕生歷程 redis的作者筆名叫做antirez,2008年的時候他做了一個記錄網站訪問情況的系統,比如每天有多少個用戶,多少個頁面被瀏覽,訪客的IP、操作系統、瀏覽器、使用的搜索關鍵詞等等(跟百度統計、CNZZ功能一樣)。最開始存儲…

在 Ubuntu 上離線安裝 Prometheus 和 Grafana

在 Ubuntu 上離線安裝 Prometheus 和 Grafana 的步驟如下: 一.安裝驗證 二.安裝步驟 1.準備離線安裝包 在一臺可以訪問互聯網的機器上下載 Prometheus 和 Grafana 的二進制文件。 Prometheus 下載地址:Prometheus 官方下載頁面Grafana 下載地址:Grafana 官方下載頁面下載所…

mapbox基礎,加載ESRI OpenStreetMap開放街景標準風格矢量圖

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.1 ??mapboxgl.Map style屬性二、??加載ESRI OpenStreetMap開放街景標準風…

Java 集合有序性與重復性總結及記憶技巧

Java 集合有序性與重復性總結及記憶技巧 一、集合分類速查表 集合類型是否有序是否允許重復記憶口訣ArrayList? 有序(插入順序)? 可重復"數組列表,順序記牢"LinkedList? 有序(插入順序)? 可重復"…

記錄學習的第二十三天

老樣子,每日一題開胃。 我一開始還想著暴力解一下試試呢,結果不太行😂 接著兩道動態規劃。 這道題我本來是想用最長遞增子序列來做的,不過實在是太麻煩了,實在做不下去了。 然后看了題解,發現可以倒著數。 …

MTK-Android12-13 屏幕永不休眠功能實現

MTK-Android12-13 屏幕永不休眠功能實現 文章目錄 需求場景參考資料修改文件簡要分析實現方案默認休眠時間設置 def_screen_off_timeout息屏時間添加永不休眠 screen_timeout_entries更新休眠時間 updateUserActivitySummaryLocked 總結 需求 屏幕永不休眠功能 備注&#xff…

Lua 中,`math.random` 的詳細用法

在 Lua 中&#xff0c;math.random 是用于生成偽隨機數的核心函數。以下是其詳細用法、注意事項及常見問題的解決方案&#xff1a; Lua 中&#xff0c;math.random 的詳細用法—目錄 一、基礎用法1. 生成隨機浮點數&#xff08;0 ≤ x < 1&#xff09;2. 生成指定范圍的隨機…

HOW - React Error Catch 機制

目錄 1. 錯誤邊界&#xff08;Error Boundaries&#xff09;使用場景寫法&#xff08;類組件方式&#xff09;&#xff1a;componentDidCatch 2. 事件處理器中的錯誤3. 異步函數中的錯誤&#xff08;如 fetch、Promise&#xff09;4. 全局未捕獲錯誤&#xff08;適用于整個 Rea…

1.ElasticSearch-入門基礎操作

一、介紹 The Elastic Stack 包含ElasticSearch、Kibana、Beats、LogStash 這就是所說的ELK 能夠安全可靠地獲取任何來源、任何格式的數據&#xff0c;然后實時地對數據進行搜索、分析和可視化。Elaticsearch,簡稱為ES&#xff0c;ES是一個開源的高擴展的分布式全文搜索引擎,是…

通過扣子平臺將數據寫入飛書多維表格

目錄 1.1 創建飛書開放平臺應用 1.2 創建飛書多維表格 1.3 創建扣子平臺插件 1.1 創建飛書開放平臺應用 1.1.1 打開地址&#xff1a;飛書開放平臺&#xff0c;點擊創建應用 注&#xff1a;商店應用需要申請ISV資質&#xff0c;填寫企業主體信息&#xff0c;個人的話&#x…

MYSQL數據庫語法補充

一&#xff0c;DQL基礎查詢 DQL&#xff08;Data Query Language&#xff09;數據查詢語言&#xff0c;可以單表查詢&#xff0c;也可以多表查詢 語法&#xff1a; select 查詢結果 from 表名 where 條件&#xff1b; 特點&#xff1a; 查詢結果可以是&#xff1a;表中的字段…

Redis到底能不能做主數據庫?

張三拍案而起&#xff1a;“Redis 是緩存數據庫&#xff0c;怎么能當主數據庫用&#xff1f;簡直是天方夜譚&#xff01;” 李四冷笑回應&#xff1a;“你沒用過&#xff0c;憑什么說不行&#xff1f;我已經用 Redis 做主數據庫好幾年了&#xff0c;系統穩定得像鐵板一塊&…

flutter 項目結構目錄以及pubspec.ymal等文件描述

在Flutter項目中&#xff0c;目錄結構和pubspec.yaml文件是非常重要的組成部分&#xff0c;它們定義了項目的結構、依賴管理以及如何構建和運行項目。下面我將詳細解釋這些關鍵元素&#xff1a; 1. Flutter項目目錄結構 Flutter項目的標準目錄結構通常如下所示&#xff1a; …

CentOS 環境下 MySQL 數據庫全部備份的操作指南

最近阿里云個人服務到期&#xff0c;因為是很久之前買的測試機器&#xff0c;配置較低&#xff0c;上面運行的有技術博客 和以往的測試項目&#xff0c;所以準備放棄掉。 需要備份下上面的表結構和數據、以及代碼倉庫。 下面是一個完整的 CentOS 環境下 MySQL 數據庫全部備份…

ecplise 工具 沒有Java EE Tools 選項

Java EE Tools 是將項目轉換為web項目的重要的快捷鍵&#xff0c;如果進行web開發 那是不可或缺的 該工具是一個插件&#xff0c;可以作為插件安裝到ecplise上 安裝步驟如下&#xff1a; 找到help-->install new software 在彈出的頁面中 work with中輸入&#xff1a;Jun…

544 eff.c 1761 優化設計文檔

1:性能分析 1.1性能對比 oneapi 與hygonGcc性能對比發現&#xff0c;544課題中的eff.c 1761循環處&#xff0c;oneapi 進行了循環向量化, gcc使用標量&#xff0c;循環源碼前加 #pragma clang loop vectorize(disable) 找出oneapi在該循環處關閉和開啟loop vect 的性能差距&a…