AI大模型学习二十、利用Dify+deepseekR1 使用知识库搭建初中英语学习智能客服机器人

一、说明

很多情况下 LLM 知识库可以让 Agent 从中定位到准确的信息,从而准确地回答问题。在一些特定领域,比如客服、检索工具等有应用。

传统的客服机器人往往是基于关键词检索的,当用户输入了关键词以外的问题,机器人就无法解决。知识库正是为了解决这样一个问题,能够做到语义级别上的检索,降低人工的负担。

请记住知识库的核心是检索而非 LLM,是 LLM 增强了输出的过程,但真正的需求仍然是生成答案

什么是 embedding?

” Embedding “是一种将离散型变量(如单词、句子或者整个文档)转化为连续的向量表示的技术。

直白地说,在我们将自然语言处理为数据时会将文本转为向量,这个过程被称作 embedding。语义相似的文本的向量会位置相近,语义相反的文本的向量位置相反。LLM 使用这样的数据做训练,预测出后续的向量,从而生成文本。

知识点

  • Chatflow 的基础使用
  • 知识库、外部知识库的使用
  • embedding 的概念

二、添加Embedding模型

 

三、创建知识库

可以看到右侧有分段预览。Dify 会根据文本内容的不同自动将文章切分为许多个段落。你也可以在自定义中设置其他的切分规则。 

 

索引方式

通常情况下选择 高质量,但是需要额外消耗 token。选择 经济 无需消耗 token。

在社区版 Dify 里有采用 Q&A 分段模式,选择对应的语言可以将文本内容整理为问答格式,需要额外消耗 token。

Embedding 模型

请在使用前查阅模型供应商的使用文档、模型定价等信息。

不同的 embedding 模型适用场景不同。例如 Cohere 的 embed-english 适用于英语文档,embed-multilingual 适用于多语言文档。

检索设置

Dify 提供了向量检索、全文检索、混合检索三种检索功能,其中常用的检索是混合检索。

混合检索中可以设置权重或者使用重新排序(Rerank)模型。使用权重设置时,可以设置检索更侧重语义还是关键词,例如下图中语义占 70% 的权重,关键词占30%的权重。

点击最下面的保存并处理

查看知识库文档状态 

 

召回测试

四、 创建应用

1、创建好APP

 2、创建问题分类节点

你需要使用问题分类节点将用户的不同需求分离开。有的情况下用户甚至会聊无关的话题,对此也需要设置一个分类。

为了让分类更准确,你需要选择更优秀的 LLM,分类需要写的足够具体、区分度足够大

 

以下是一个学习英语的参考分类: 

由于我们知识库自由一个,所以其实演示自由两种1 就是无关问题,其它都是使用我们前面创建的初中英语学习知识库,在实际项目中可以建立多种知识库

1、用户询问与学习英语学习无关问题

2、用户询问学习英语基础知识点类的问题

3、用户询问学习英语语言技能训练类的问题

4、用户询问学习英语学习策略与工具类的问题

5、用户询问学习英语互动与情景应用类的问题

6、用户询问学习英语错误纠正与反馈类的问题

7、用户询问学习英语文化背景与拓展类的问题

8、用户询问学习英语技术支持与用户体验类的问题

 

 如果是“用户询问与学习英语学习无关问题”,可以直接回复

如果是其它类型问题,看下一节添加知识检索节点

3、添加知识检索节点

 

 

 4、LLM 节点

在知识检索节点的下一个节点,你需要选择 LLM 节点来整理知识库召回的内容。

LLM 需要根据用户的提问,调整回复,使得回复内容更加得体。

上下文:需要将知识检索节点的输出作为 LLM 节点的上下文。

你可以在提示词书写区域输入 / 或者 { 来引用变量。在变量中,sys. 开头的变量是系统变量,请查询帮助文档相关说明。

此外,你可以打开 LLM 记忆让用户的对话体验更加连贯。

 

5、添加直接回复节点 

6、其它分类 

 

五、测试

1、预览

 

 

 

完整回答内容:

Thinking...好的,我现在来思考一下用户的问题:“curious单词是什么意思?”首先,我需要确认这个词的拼写是否正确。用户写的是“curious”,而正确的拼写应该是“curious”。所以,这里可能存在一个拼写错误。

接下来,我要确定这个词的意思。根据我的记忆,“curious”是一个形容词,意思是好奇、好问或者对某事物有疑问。例如,在句子中可能会用作“Mary is curious about the new technology.” 这里表示玛丽对新技术感到好奇。

然后,我需要考虑用户为什么会询问这个单词的含义。这可能是因为他们在学习英语,正在阅读或写作时遇到了这个词,并且不确定其含义。也有可能是他们在做某种练习题,或者在日常交流中遇到了这个词,但不太确定如何使用。

此外,考虑到用户提到了“语法”方面的知识,比如被动语态,这可能意味着他们对英语的其他语法点也有兴趣。因此,在解释“curious”的时候,或许可以稍微提及一些相关的内容,比如它在句子中的作用或与其他词性的差异,这样回答会更全面。

最后,我要确保用词准确,并且表达清晰,让用户能够理解这个单词的含义以及它的常见使用方式。可能还需要提供一个例句来辅助说明,例如:“I'm curious to see the exhibition.” 这样用户可以更直观地理解这个词在句子中的运用。

"Curious" is an adjective that means curious or interested. It describes someone who is asking questions, wondering about things, or wanting to learn more.

Example: "She was curious about how they survived." (她对它们如何生存感到好奇)

引用

【人教版】八年级上册英语电子课本.pdf

【人教版】八年级下册英语电子课本.pdf

【人教版】八年级上册英语电子课本.pdf

 

2、发布并测试 

测试就不做了,和前面一样 

<think>好的,我现在需要帮助用户了解如何使用Dify搭建基于知识库的聊天机器人。首先,我得回忆一下Dify的基本概念和流程。Dify是一个开源框架,允许用户构建和部署AI应用,特别是聊天机器人。用户提到可能使用Dify,所以重点应放在Dify的步骤上。 根据用户提供的引用,特别是引用[1]和[2],里面提到了运行Dify的步骤,比如部署在本地或服务器,以及集成知识库。我需要确保步骤正确,并且覆盖关键点:环境准备、安装部署、配置模型、创建知识库、测试优化、部署上线。 首先,环境准备方面,用户需要Docker和Python环境。这部分需要详细说明,因为如果环境没配置好,后续步骤无法进行。然后安装Dify,可能需要克隆仓库或使用Docker Compose,这部分需要检查引用中的信息。引用[1]提到参考《Llama + Dify,在你的电脑搭建AI工作流》,所以可能涉及Docker部署。 接下来是配置大语言模型,比如DeepSeek或GPT。用户引用[2]提到了deepseeke和Dify的结合,需要复制API key到Dify系统中。这里需要说明如何获取API key,并在Dify界面中添加模型。 然后是创建知识库,用户需要上传文档,设置处理参数,比如分块大小和向量模型。引用[2]提到在工作室搭建知识库,限制回答内容,所以可能需要指导用户在Dify界面中操作,比如分块策略和元数据设置。 测试和优化部分,用户可能需要调整提示词,引用[2]的例子是添加“收到”这样的关键词,所以需要说明提示词工程的重要性,以及如何根据测试结果调整参数。 部署上线涉及发布应用,设置访问权限,可能还需要监控和维护。这部分需要简要说明步骤,确保用户知道如何将测试环境的应用部署到生产环境。 最后,相关问题的生成需要考虑用户可能的后续疑问,比如模型选择、本地部署、知识库格式支持、性能优化和集成方式。这些问题需要覆盖用户可能遇到的挑战,帮助他们进一步探索。 需要确保回答结构清晰,分步骤讲解,每个步骤有子步骤和注意事项。同时,引用标记要正确添加到对应的位置,比如部署步骤引用[1],配置模型引用[2]。避免使用Markdown格式,但用户要求使用中文,所以保持口语化但专业。</think>以下是如何使用Dify搭建知识库聊天机器人的分步指南,结合了官方文档和实践经验: ### 一、环境准备阶段 1. **基础环境搭建** - 安装Docker环境(Windows/Mac需安装Docker Desktop) - 准备Python 3.8+运行环境 - 建议配置:4核CPU/8GB内存/50GB存储(知识库越大要求越高) 2. **获取Dify源码** ```bash git clone https://github.com/langgenius/dify.git cd dify/docker ``` ### 二、部署安装[^1] ```bash # 使用Docker Compose快速启动 docker compose up -d # 等待所有服务启动(约3-5分钟) # 访问 http://localhost/ 进入控制台 ``` ### 三、大模型配置 1. **接入LLM服务** - 在「设置 > 模型供应商」添加API密钥 - 支持模型:DeepSeek/OpenAI/智谱AI等[^2] - 示例DeepSeek配置: ```yaml api_key: sk-your-key-here base_url: https://api.deepseek.com/v1 ``` ### 四、知识库创建 1. **新建知识库应用** - 控制台点击「创建应用」→「知识库问答」 - 上传文档(支持PDF/Word/TXT/Markdown) - 设置分块参数: ```python chunk_size = 512 # 文本分割长度 overlap = 50 # 块间重叠字符数 ``` 2. **向量化处理 $$ \text{Document} \rightarrow \text{Chunking} \rightarrow \text{Embedding} \rightarrow \text{Vector DB} $$ - 建议选择bge-large-zh-v1.5中文向量模型 ### 五、测试与优化 1. **调试提示词工程** ```python # 示例系统提示词模板 "你是一个专业客服助手,请根据知识库内容回答用户问题。\ 如果答案不在知识库中,应明确说明'根据现有资料无法回答该问题'" ``` 2. **多轮测试方法** - 准备测试问题集(覆盖边界情况和常见问题) - 调整temperature参数(0.3-0.7区间最佳) ### 六、部署上线 1. **发布应用** - 设置API访问密钥 - 配置访问权限(公开/私有访问) - 可选Webhook集成: ```bash curl -X POST "https://api.dify.ai/v1/chat-messages" \ -H "Authorization: Bearer {api_key}" \ -d '{"inputs":{}}' ``` **注意事项:** 1. 知识库更新需重新索引 2. 监控API调用量和响应延迟 3. 建议启用对话历史记录功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值