--- title: "AI 高级配置说明" description: "FastGPT AI 高级配置说明" icon: "sign_language" draft: false toc: true weight: 310 --- 在 FastGPT 的 AI 对话模块中,有一个 AI 高级配置,里面包含了 AI 模型的参数配置,本文详细介绍这些配置的含义。 # 返回AI内容 这是一个开关,打开的时候,当 AI 对话模块运行时,会将其输出的内容返回到浏览器(API响应);如果关闭,AI 输出的内容不会返回到浏览器,但是生成的内容仍可以通过【AI回复】进行输出。你可以将【AI回复】连接到其他模块中。 # 温度 可选范围0-10,约大代表生成的内容约自由扩散,越小代表约严谨。调节能力有限,知识库问答场景通常设置为0。 # 回复上限 控制 AI 回复的最大 Tokens,较小的值可以一定程度上减少 AI 的废话,但也可能导致 AI 回复不完整。 # 引用模板 & 引用提示词 这两个参数与知识库问答场景相关,可以控制知识库相关的提示词。 ## AI 对话消息组成 想使用明白这两个变量,首先要了解传递传递给 AI 模型的消息格式。它是一个数组,FastGPT 中这个数组的组成形式为: ```json [ 内置提示词(config.json 配置,一般为空) 系统提示词 (用户输入的提示词) 历史记录 问题(由引用提示词、引用模板和用户问题组成) ] ``` {{% alert icon="🍅" context="success" %}} Tips: 可以通过点击上下文按键查看完整的 {{% /alert %}} ## 引用模板和提示词设计 引用模板和引用提示词通常是成对出现,引用提示词依赖引用模板。 FastGPT 知识库采用 QA 对(不一定都是问答格式,仅代表两个变量)的格式存储,在转义成字符串时候会根据**引用模板**来进行格式化。知识库包含 3 个变量: q, a, file_id, index, source,可以通过 {{q}} {{a}} {{file_id}} {{index}} {{source}} 按需引入。下面一个模板例子: **引用模板** ``` {instruction:"{{q}}",output:"{{a}}",source:"{{source}}"} ``` 搜索到的知识库,会自动将 q,a,source 替换成对应的内容。每条搜索到的内容,会通过 `\n` 隔开。例如: ``` {instruction:"电影《铃芽之旅》的导演是谁?",output:"电影《铃芽之旅》的导演是新海诚。",source:"手动输入"} {instruction:"本作的主人公是谁?",output:"本作的主人公是名叫铃芽的少女。",source:""} {instruction:"电影《铃芽之旅》男主角是谁?",output:"电影《铃芽之旅》男主角是宗像草太,由松村北斗配音。",source:""} {instruction:"电影《铃芽之旅》的编剧是谁?22",output:"新海诚是本片的编剧。",source:"手动输入"} ``` **引用提示词** 引用模板需要和引用提示词一起使用,提示词中可以写引用模板的格式说明以及对话的要求等。可以使用 {{quote}} 来使用 **引用模板**,使用 {{question}} 来引入问题。例如: ``` 你的背景知识: """ {{quote}} """ 对话要求: 1. 背景知识是最新的,其中 instruction 是相关介绍,output 是预期回答或补充。 2. 使用背景知识回答问题。 3. 背景知识无法回答问题时,你可以礼貌的的回答用户问题。 我的问题是:"{{question}}" ``` 转义后则为: ``` 你的背景知识: """ {instruction:"电影《铃芽之旅》的导演是谁?",output:"电影《铃芽之旅》的导演是新海诚。",source:"手动输入"} {instruction:"本作的主人公是谁?",output:"本作的主人公是名叫铃芽的少女。",source:""} {instruction:"电影《铃芽之旅》男主角是谁?",output:"电影《铃芽之旅》男主角是宗像草太,由松村北斗配音} """ 对话要求: 1. 背景知识是最新的,其中 instruction 是相关介绍,output 是预期回答或补充。 2. 使用背景知识回答问题。 3. 背景知识无法回答问题时,你可以礼貌的的回答用户问题。 我的问题是:"{{question}}" ```