prompts提示詞經典模板

prompts.py 中的提示詞模板詳解

文件中定義了兩個核心提示詞模板:REASON_PROMPTRELEVANT_EXTRACTION_PROMPT。這兩個模板在 DeepResearcher 的推理過程中扮演著關鍵角色。下面我將詳細解析這兩個模板的結構和功能。

REASON_PROMPT 詳解

REASON_PROMPT 是用于指導語言模型進行推理和搜索的主要提示詞。它的設計非常精巧,包含多個關鍵部分:

1. 角色與能力定義

"You are a reasoning assistant with the ability to perform dataset searches to help "
"you answer the user's question accurately. You have special tools:\n\n"

這部分明確定義了語言模型的角色(推理助手)和核心能力(執行數據集搜索)。通過明確的角色定位,幫助模型理解其應該如何行動。

2. 工具使用說明

f"- To perform a search: write {BEGIN_SEARCH_QUERY} your query here {END_SEARCH_QUERY}.\n"
f"Then, the system will search and analyze relevant content, then provide you with helpful information in the format {BEGIN_SEARCH_RESULT} ...search results... {END_SEARCH_RESULT}.\n\n"
f"You can repeat the search process multiple times if necessary. The maximum number of search attempts is limited to {MAX_SEARCH_LIMIT}.\n\n"

這部分詳細說明了如何使用搜索工具:

  • 使用特定標記包裝搜索查詢
  • 系統將返回的結果格式
  • 可以多次搜索的規則
  • 搜索次數的限制

通過明確的工具使用說明,模型知道如何正確格式化其輸出以觸發搜索功能。

3. 示例學習 - 示例1

這是一個復雜問題的完整示例,展示了如何通過多輪搜索解決比較類問題:

"-- Example 1 --\n"
"Question: \"Are both the directors of Jaws and Casino Royale from the same country?\"\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY}Who is the director of Jaws?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nThe director of Jaws is Steven Spielberg...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information.\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY}Where is Steven Spielberg from?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nSteven Allan Spielberg is an American filmmaker...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information...\n\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY}Who is the director of Casino Royale?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nCasino Royale is a 2006 spy film directed by Martin Campbell...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information...\n\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY}Where is Martin Campbell from?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nMartin Campbell (born 24 October 1943) is a New Zealand film and television director...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information...\n\n"
"Assistant:\nIt's enough to answer the question\n"

這個示例展示了:

  • 如何將復雜問題分解為多個簡單查詢
  • 如何基于前一步的結果構建下一步的查詢
  • 如何在獲取足夠信息后停止搜索
  • 正確的標記使用方式

4. 示例學習 - 示例2

這是一個較簡單問題的示例,展示了如何通過兩輪搜索解決事實查詢問題:

"-- Example 2 --\n"
"Question: \"When was the founder of craigslist born?\"\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY}Who was the founder of craigslist?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nCraigslist was founded by Craig Newmark...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information.\n"
"Assistant:\n"
f"    {BEGIN_SEARCH_QUERY} When was Craig Newmark born?{END_SEARCH_QUERY}\n\n"
"User:\n"
f"    {BEGIN_SEARCH_RESULT}\nCraig Newmark was born on December 6, 1952...\n{END_SEARCH_RESULT}\n\n"
"Continues reasoning with the new information...\n\n"
"Assistant:\nIt's enough to answer the question\n"

這個示例展示了:

  • 如何處理需要兩步推理的簡單問題
  • 如何在第一步獲取實體信息后,在第二步查詢該實體的具體屬性

5. 注意事項與提醒

"**Remember**:\n"
f"- You have a dataset to search, so you just provide a proper search query.\n"
f"- Use {BEGIN_SEARCH_QUERY} to request a dataset search and end with {END_SEARCH_QUERY}.\n"
"- The language of query MUST be as the same as 'Question' or 'search result'.\n"
"- If no helpful information can be found, rewrite the search query to be less and precise keywords.\n"
"- When done searching, continue your reasoning.\n\n"
'Please answer the following question. You should think step by step to solve it.\n\n'

這部分提供了重要的使用提醒:

  • 強調模型的角色是提供搜索查詢,而不是直接回答
  • 重申標記的正確使用方式
  • 強調查詢語言需要與問題或搜索結果語言一致
  • 提供查詢優化策略
  • 指導在完成搜索后繼續推理
  • 鼓勵步驟化思考

RELEVANT_EXTRACTION_PROMPT 詳解

RELEVANT_EXTRACTION_PROMPT 是用于從檢索到的文檔中提取相關信息的提示詞。它的結構更加正式,采用了任務指導的形式:

1. 任務說明

"""Task Instruction:You are tasked with reading and analyzing web pages based on the following inputs: **Previous Reasoning Steps**, **Current Search Query**, and **Searched Web Pages**. Your objective is to extract relevant and helpful information for Current Search Query from the Searched Web Pages and seamlessly integrate this information into the Previous Reasoning Steps to continue reasoning for the original question.

這部分明確定義了任務的性質(分析網頁)、輸入(之前的推理步驟、當前搜索查詢、搜索到的網頁)和目標(提取相關信息并整合到推理過程中)。

2. 詳細指南

    Guidelines:1. Analyze the Searched Web Pages:- Carefully review the content of each searched web page.- Identify factual information that is relevant to the Current Search Query and can aid in the reasoning process for the original question.2. Extract Relevant Information:- Select the information from the Searched Web Pages that directly contributes to advancing the **Previous Reasoning Steps**.- Ensure that the extracted information is accurate and relevant.

這部分提供了兩個主要步驟的詳細指南:

  • 分析網頁內容,找出與當前查詢相關的事實信息
  • 提取能夠推進推理過程的相關信息,確保準確性和相關性

3. 輸出格式規范

    3. Output Format:- If the web pages provide helpful information for current search query: Present the information beginning with `**Final Information**` as shown below.- The language of query MUST BE as the same as 'Search Query' or 'Web Pages'.\n"Final Information[Helpful information]- If the web pages do not provide any helpful information for current search query: Output the following text.Final InformationNo helpful information found.

這部分詳細規定了輸出格式:

  • 有用信息的格式:以"Final Information"開頭,后跟有用信息
  • 無用信息的格式:固定文本"No helpful information found."
  • 強調語言一致性要求

4. 輸入參數占位符

    Inputs:- Previous Reasoning Steps:    {prev_reasoning}- Current Search Query:    {search_query}- Searched Web Pages:    {document}

這部分定義了三個關鍵輸入參數的占位符:

  • {prev_reasoning}:之前的推理步驟,提供上下文
  • {search_query}:當前的搜索查詢,指明信息提取的焦點
  • {document}:搜索到的網頁內容,是信息提取的源

兩個提示詞的協同工作

這兩個提示詞在 DeepResearcher 的工作流程中協同工作:

  1. REASON_PROMPT 指導語言模型生成推理步驟和搜索查詢,形成思考過程的骨架
  2. RELEVANT_EXTRACTION_PROMPT 指導語言模型從檢索到的信息中提取相關內容,填充思考過程的細節

通過這種分工,系統能夠實現:

  • 清晰的推理鏈條
  • 精準的信息檢索
  • 相關信息的有效提取
  • 連貫的思考過程

這兩個提示詞的精心設計是 DeepResearcher 能夠模擬人類思考過程、解決復雜問題的關鍵所在。

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

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

相關文章

使用python獲取電腦硬盤信息

import psutil# 獲取硬盤信息 disk_partitions psutil.disk_partitions() print(disk_partitions) for partition in disk_partitions:print(f"設備: {partition.device}")print(f"掛載點: {partition.mountpoint}")print(f"文件系統類型: {partitio…

HarmonyOS-ArkUI V2裝飾器: @Provider和@Consumer裝飾器:跨組件層級雙向同步

作用 我們在之前學習的那些控件中,各有特點,也各有缺陷,至今沒有痛痛快快的出現過真正能跨組件的雙向綁定的裝飾器。 比如 @Local裝飾器,不能跨組件@Param裝飾器呢,能跨組件傳遞,但是僅僅就是下一層組件接收參數。另外,它是單向傳遞,不可被重新賦值。如果您非要改值則…

索引下推(Index Condition Pushdown, ICP)

概念 索引下推是一種數據庫查詢優化技術,通過在存儲引擎層面應用部分WHERE條件來減少不必要的數據讀取。它特別適用于復合索引的情況,因為它可以在索引掃描階段就排除不符合全部條件的數據行,而不是將所有可能匹配的記錄加載到服務器層再進行…

idea在線離線安裝插件教程

概述 對于小白來說,剛使用idea時,還有很多不懂的地方,這里,簡單介紹下如何安裝插件。讓小白能容易上手全盤idea。 1、File -> Settings 2、找到 Plugins -> Marketplace 3、安裝 3.1、在線安裝 輸入想搜索的內容&#x…

豪越賦能消防安全管控,解鎖一體化內管“安全密碼”

在消防安全保障體系中,內部管理的高效運作是迅速、有效應對火災及各類災害事故的重要基礎。豪越科技憑借在消防領域的深耕細作與持續創新,深入剖析消防體系內部管理的痛點,以自主研發的消防一體化安全管控平臺,為行業發展提供了創…

ES6學習03-字符串擴展(unicode、for...of、字符串模板)和新方法()

一、字符串擴展 1. eg: 2.for...of eg: 3. eg: 二。字符串新增方法 1. 2. 3. 4. 5.

探索Streamlit在測試領域的高效應用:文檔讀取與大模型用例生成的完美前奏

大模型用例生成前置工作之文檔讀取——構建你的自動化測試基礎 在群友的極力推薦下,開始了streamlit的學習之旅。本文將介紹如何使用Streamlit開發一個多功能文檔處理工具,支持讀取、預覽、格式轉換和導出多種測試相關文檔(YAML、JSON、DOCX…

flutter 桌面應用之窗口自定義

在開發桌面軟件的時候我們經常需要配置軟件的窗口的大小以及位置 我們有兩個框架選擇:window_manager和bitsdojo_window 對比bitsdojo_window 特性bitsdojo_windowwindow_manager自定義標題欄? 支持? 不支持控制窗口行為(大小/位置)?(基本…

Cyber Weekly #51

賽博新聞 1、英偉達開源新模型,性能直逼DeepSeek-R1 本周,英偉達開源了基于Meta早期Llama-3.1-405B-Instruct模型開發的Llama-3.1-Nemotron-Ultra-253B-v1大語言模型,該模型擁有2530億參數,在多項基準測試中展現出與6710億參數的…

【JS】關于原型/原型鏈

本文會講解什么是原型,什么是原型鏈,以及查找原型的方法,最后會實現一個函數:判斷某對象是否有某屬性。 定義 原型:函數都有prototype屬性,稱作原型/原型對象 原型可以放一些方法和屬性,共享…

deskflow使用教程:一個可以讓兩臺電腦鼠標鍵盤截圖剪貼板共同使用的開源項目

首先去開源網站下載:Release v1.21.2 deskflow/deskflow 兩臺電腦都要下載這個文件 下載好后直接打開找到你想要的exe desflow.exe 然后你打開他,將兩臺電腦的TLS都關掉 下面步驟兩臺電腦都要完成: 電腦點開edit-》preferences 把這個取…

啥是Spring,有什么用,既然收費,如何免費創建SpringBoot項目,依賴下載不下來的解決方法,解決99%問題!

一、啥是Spring,為啥選擇它 我們平常說的Spring指的是Spring全家桶,我們為什么要選擇Spring,看看官方的話: 意思就是:用這個東西,又快又好又安全,反正就是好處全占了,所以我們選擇它…

正向代理 vs 反向代理:核心區別與應用場景詳解

目錄 代理服務器是什么? 正向代理(Forward Proxy)詳解 工作原理 典型應用場景 優缺點分析 反向代理(Reverse Proxy)詳解 工作原理 典型應用場景 優缺點分析 正向代理與反向代理的核心區別 對比表格 架構差異…

Matlab學習筆記五十:循環語句和條件語句的用法

1.說明 循環語句:for…end,while…end 條件語句:if…end,switch…case…end 其中if語句語法還可以是:for…else…end,for…elseif…else…end 2.簡單for程序實例 for x1:5 %循環遍歷1~5 yx5 end [1…

容器初始化Spring Boot項目原理,即web項目(war)包涉及相關類對比詳解

以下是關于 SpringBootServletInitializer、ServletContainerInitializer、SpringServletContainerInitializer、WebApplicationInitializer 和 ServletInitializer 的對比詳解及總結表格: 1. 核心對比詳解 (1) SpringBootServletInitializer 作用: S…

Linux 系統中打包與壓縮

以下是 Linux 系統中 打包與壓縮 的核心操作指南,涵蓋常用命令、格式對比及典型場景應用: 一、核心概念 打包(Archiving) 將多個文件或目錄合并為一個文件(如 .tar),不改變文件體積。常用工具&a…

計算機組成原理(哈工大,會持續更新)

文章目錄 一 計算機組成概述1.1計算機系統簡介 一 計算機組成概述 1.1計算機系統簡介 計算機軟硬件的概念 計算機系統包含兩個部分一個部分為硬件,另一個部分為軟件 硬件:硬件包括我們能直觀看到的東西,也就是我們計算機的實體&#xff0…

ngx_conf_handler

定義在 src\core\ngx_conf_file.c static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last) {char *rv;void *conf, **confp;ngx_uint_t i, found;ngx_str_t *name;ngx_command_t *cmd;name cf->args->elts;found 0;for (…

Ubuntu系統美化

Ubuntu系統美化 一、Grub設置 1. 安裝Grub Customizer【推薦】 Grub Customizer是一個用于自定義 GRUB 引導菜單的實用程序 sudo add-apt-repository ppa:danielrichter2007/grub-customizer && sudo apt update && sudo apt install -y grub-customizer2.…

零基礎HTML·筆記(持續更新…)

基礎認知 HTML標簽的結構 <strong>文字變粗</strong> &#xff1c;開始標簽&#xff1e;內容&#xff1c;結束標簽&#xff1e; 結構說明&#xff1a; 標簽由<、>、1、英文單詞或字母組成。并且把標簽中<>包括起來的英文單詞或字母稱為標簽名。常…