【人工智能】通过 Dify 构建聊天助手

对话型应用采用一问一答模式与用户持续对话。

🌞 Dify 官网:https://dify.ai/zh

1.适用场景

对话型应用可以用在 客户服务在线教育医疗保健金融服务 等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好的用户体验。

2.如何编排

对话型应用的编排支持:对话前提示词变量上下文开场白下一步问题建议

下面以做一个 面试官、 的应用为例来介绍编排对话型应用。

2.1 创建应用

在首页点击 “创建应用” 按钮创建应用。填上应用名称,应用类型选择 聊天助手

2.2 编排应用

创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用。

应用编排

填写提示词

提示词用于约束 AI 给出专业的回复,让回应更加精确。你可以借助内置的提示生成器,编写合适的提示词。提示词内支持插入表单变量,例如 {{input}}。提示词中的变量的值会替换成用户填写的值。

示例:

  • 1️⃣ 输入提示指令,要求给出一段面试场景的提示词。
  • 2️⃣ 右侧内容框将自动生成提示词。
  • 3️⃣ 你可以在提示词内插入自定义变量。

为了更好的用户体验,可以加上对话开场白:你好,{{name}}。我是你的面试官,Bob。你准备好了吗?。点击页面底部的 “添加功能” 按钮,打开 “对话开场白” 的功能:

编辑开场白时,还可以添加数个开场问题:

描述文字

2.3 添加上下文

如果想要让 AI 的对话范围局限在 知识库 内,例如企业内的客服话术规范,可以在 “上下文” 内引用知识库。

2.4 添加文件上传

部分多模态 LLM 已原生支持处理文件,例如 Claude 3.5 SonnetGemini 1.5 Pro。你可以在 LLM 的官方网站了解文件上传能力的支持情况。

选择具备读取文件的 LLM,开启 “文档” 功能。无需复杂配置即可让当前 Chatbot 具备文件识别能力。

2.5 调试

在右侧填写用户输入项,输入内容进行调试。

若 LLM 给出的回答结果不理想,你可以调整提示词或切换不同底层模型进行效果对比。如需更进一步,同时查看不同模型对于同一个问题的回答情况,请参考多模型调试。

2.6 发布应用

调试好应用后,点击右上角的 “发布” 按钮生成独立的 AI 应用。除了通过公开 URL 体验该应用,你也进行基于 APIs 的二次开发、嵌入至网站内等操作。

如果想定制已发布的应用,可以 Fork 我们的开源的 WebApp 的模板。基于模板改成符合你的情景与风格需求的应用。

3.常见问题

如何在聊天助手内添加第三方工具?

  • 聊天助手类型应用不支持添加第三方工具,你可以在 Agent 类型应用内添加第三方工具。

如何在创建聊天助手应用时,使用元数据功能筛选知识库内文档?

  • 如需了解如何使用元数据功能筛选文档,请参阅 在应用内集成知识库 中的 “使用元数据筛选知识 > 聊天助手” 章节。
### Dify 构建聊天机器人的 API 调用方法 Dify 是一种强大的工具,用于快速构建和部署基于人工智能的聊天机器人。以下是关于如何通过 API 调用使用 Dify构建聊天机器人的详细说明。 #### 使用 Dify API 创建聊天机器人 为了实现这一目标,开发者可以利用 RESTful 风格的接口来管理聊天机器人及其交互行为。具体来说: 1. **初始化会话历史记录** 可以为聊天机器人引入消息历史功能以增强用户体验。这可以通过定义 `get_session_history` 函数完成,该函数负责从 SQLite 数据库中提取特定用户的对话历史[^3]。 ```python from langchain_community.chat_message_histories import SQLChatMessageHistory def get_session_history(session_id): return SQLChatMessageHistory(session_id, "sqlite:///memory.db") ``` 2. **配置上下文与知识库** 如果希望 AI 对话局限于某个企业的内部数据,则可以在请求参数中指定这些数据作为上下文的一部分[^2]。例如,在发送给模型的数据包里加入预先导入的知识库内容,从而引导其生成更贴合实际业务场景的回答。 3. **设计系统提示词 (SYSTEM Prompt)** 提示词的作用在于向模型传达高层次的任务描述或者偏好设置[^4]。合理的设计能够显著提升最终输出的质量以及一致性水平。 4. **执行查询操作** 用户端发起询问之后,服务器侧需解析接收到的信息,并将其传递至相应的 NLP 处理模块进行分析计算得出结果后再反馈回去。整个过程中涉及到多个组件间的协作配合才能顺利完成每一次完整的交流回合。 #### 示例代码片段展示 下面给出了一段简单的 Python 实现例子,演示了怎样借助 requests 库调用远程服务端点来进行基本的功能测试: ```python import requests def call_dify_api(api_key, session_id, user_input): url = 'https://api.dify.ai/v1/chat' headers = { 'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json', } payload = { 'session_id': session_id, 'messages': [{'role': 'user', 'content': user_input}] } response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: assistant_reply = response.json()['choices'][0]['message']['content'] return assistant_reply else: raise Exception(f'Request failed with status code {response.status_code}') # Example usage of the function above. if __name__ == '__main__': api_key = '<your-api-key>' session_id = 'unique-session-id-for-this-conversation' user_query = input('Enter your question here:') reply = call_dify_api(api_key, session_id, user_query) print(reply) ``` 此脚本展示了如何构造 POST 请求并将必要字段打包成 JSON 格式的 body 发送给目标 URL 地址。成功响应后还会进一步解析返回的结果以便于后续处理逻辑继续运作下去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据与AI实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值