实施深度研究

为 Agentic 推理实现深度研究。


从 v0.17.0 版本开始,RAGFlow 支持在 AI 聊天中集成 Agentic 推理。下图展示了 RAGFlow 深度研究的工作流程。

Image

要激活此功能

  1. 在聊天助手对话框的 Prompt 引擎 选项卡下,启用 推理 开关。

Image

  1. 在聊天助手对话框的 助手设置 选项卡下,输入正确的 Tavily API 密钥,以利用基于 Tavily 的网络搜索功能。

Image

以下是集成了深度研究功能的对话截图:

Image

设置变量

设置与大语言模型(LLM)的系统提示词(System Prompt)一起使用的变量。


在配置聊天模型的系统提示词时,变量在增强灵活性和可重用性方面扮演着重要角色。通过使用变量,您可以动态调整发送给模型的系统提示词。在 RAGFlow 中,如果您已在**对话配置**对话框中定义了变量(系统保留变量 {knowledge} 除外),则需要通过 RAGFlow 的 HTTP API 或其 Python SDK 为这些变量传入值。

重要

在 RAGFlow 中,变量与系统提示词密切相关。当您在**变量**部分添加变量时,也请将其包含在系统提示词中。反之,删除变量时,请确保也从系统提示词中移除它,否则会发生错误。

在哪里设置变量

将鼠标悬停在您的聊天助手上,点击**编辑**打开其**对话配置**对话框,然后点击**提示词引擎**选项卡。在这里,您可以在**系统提示词**字段和**变量**部分处理您的变量。

set_variables

1. 管理变量

在**变量**部分,您可以添加、移除或更新变量。

{knowledge} - 保留变量

{knowledge} 是系统的保留变量,代表从**助手设置**选项卡下的**知识库**中检索到的知识区块(chunks)。如果您的聊天助手关联了特定的知识库,可以保留该变量。

注意

目前,将 {knowledge} 设置为可选或必选没有区别,但请注意,此设计将在适当的时候更新。

从 v0.17.0 版本开始,您可以在不指定知识库的情况下开始 AI 对话。在这种情况下,我们建议移除 {knowledge} 变量以防止不必要的引用,并保持**空回复**字段为空以避免错误。

自定义变量

除了 {knowledge} 之外,您还可以定义自己的变量与系统提示词配对使用。要使用这些自定义变量,您必须通过 RAGFlow 的官方 API 传入它们的值。**可选**开关决定了这些变量在相应的 API 中是否为必需项。

  • 禁用(默认):该变量是必填项,必须提供。
  • 启用:该变量是可选项,如果不需要可以省略。

2. 更新系统提示词

在**变量**部分添加或删除变量后,请确保您的更改也反映在系统提示词中,以避免不一致或错误。下面是一个示例:

You are an intelligent assistant. Please answer the question by summarizing chunks from the specified knowledge base(s)...

Your answers should follow a professional and {style} style.

...

Here is the knowledge base:
{knowledge}
The above is the knowledge base.

注意

如果您移除了 {knowledge},请确保彻底审查并更新整个系统提示词,以获得最佳效果。

API

为在**对话配置**对话框中定义的自定义变量传值的*唯一*方法是调用 RAGFlow 的 HTTP API 或通过其 Python SDK

HTTP API

请参阅与聊天助手对话。下面是一个示例:

curl --request POST \
     --url http://{address}/api/v1/chats/{chat_id}/completions \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data-binary '
     {
          "question": "xxxxxxxxx",
          "stream": true,
          "style":"hilarious"
     }'

Python API

请参阅与聊天助手对话。下面是一个示例:

from ragflow_sdk import RAGFlow

rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380")
assistant = rag_object.list_chats(name="Miss R")
assistant = assistant[0]
session = assistant.create_session()    

print("\n==================== Miss R =====================\n")
print("Hello. What can I do for you?")

while True:
    question = input("\n==================== User =====================\n> ")
    style = input("Please enter your preferred style (e.g., formal, informal, hilarious): ")
    
    print("\n==================== Miss R =====================\n")
    
    cont = ""
    for ans in session.ask(question, stream=True, style=style):
        print(ans.content[len(cont):], end='', flush=True)
        cont = ans.content

加速问答

一份加速问答的检查清单。


请注意,您的一些设置可能会消耗大量时间。如果您经常发现问答过程很耗时,这里有一份检查清单供您参考:

  • 在您的**对话配置**对话框的**提示词引擎**选项卡中,禁用**多轮优化**将减少从大语言模型(LLM)获取答案所需的时间。
  • 在您的**对话配置**对话框的**提示词引擎**选项卡中,将**Rerank 模型**字段留空将显著减少检索时间。
  • 使用 Rerank 模型时,请确保您有 GPU 进行加速;否则,Rerank 过程会*极其*缓慢。

注意

请注意,Rerank 模型在某些场景下是必不可少的。速度和性能之间总需要权衡;您必须根据具体情况权衡利弊。

  • 在您的**对话配置**对话框的**助手设置**选项卡中,禁用**关键词分析**将减少从大语言模型(LLM)接收答案的时间。
  • 与聊天助手对话时,点击*当前*对话上方的灯泡图标,并向下滚动弹出窗口,即可查看每个任务所花费的时间:
    enlighten
项目名称 描述
总计 本轮对话所花费的总时间,包括知识块检索和答案生成。
检查 LLM 验证指定的大语言模型(LLM)所需的时间。
创建检索器 创建知识块检索器所需的时间。
绑定 Embedding 初始化 Embedding 模型实例所需的时间。
绑定 LLM 初始化大语言模型(LLM)实例所需的时间。
优化问题 利用多轮对话上下文优化用户查询所需的时间。
绑定 Reranker 为知识块检索初始化 Reranker 模型实例所需的时间。
生成关键词 从用户查询中提取关键词所需的时间。
检索 检索知识块所需的时间。
生成答案 生成答案所需的时间。

《AI提示工程必知必会》为读者提供了丰富的AI提示工程知识与实战技能。《AI提示工程必知必会》主要内容包括各类提示词的应用,如问答式、指令式、状态类、建议式、安全类和感谢类提示词,以及如何通过实战演练掌握提示词的使用技巧;使用提示词进行文本摘要、改写重述、语法纠错、机器翻译等语言处理任务,以及在数据挖掘、程序开发等领域的应用;AI在绘画创作上的应用,百度文心一言和阿里通义大模型这两大智能平台的特性与功能,以及市场调研中提示词的实战应用。通过阅读《AI提示工程必知必会》,读者可掌握如何有效利用AI提示工程提升工作效率,创新工作流程,并在职场中脱颖而出。

Logo

更多推荐