Dify进阶使用教程
文章目录
前言
本文章将介绍如何使用dify提供的API进行项目开发,并介绍所用到的dify部分组件。
这一篇适合需要自主调用dify-API的朋友们。
项目背景:需要在自有系统中开发一个“知识回答机器人”
需求如下:
1.AI-chat功能
2.根据自己React + Django系统中项目字段进行知识库数据隔离,以及限制AI回答问题能够使用的知识库。
结果先行展示,给大伙靠谱的详情操作贴,最后在自己系统中,可生成参考知识库内容回答的智能专业客服机器人。
聊天界面:
dify流程配置:
一、dify-docker环境搭建及简单使用
请参考上一篇文章大模型应用开发之Dify入门使用教程-deepseek-R1,只需配置30分钟就能用
二、本篇使用API源码部署
代码下载及环境搭建,参考dify官方文档:dify官方手册
启动dify后端
进入项目api目录下
poetry run flask run --host 0.0.0.0 --port=5001 --debug
启动dify前端
进入web目录下
pnpm start
上述完成后浏览器输入http://localhost/install,进入dify控制台界面。按照流程设置账号密码后,登录即可使用。
然后来到,我们自己的工作流界面
基于通义模型的智能客服机器人应用与自己项目联动实战
1. 使用API进行项目与dify联动
1.1 在控制台主页,点击创建访问API
1.2 进入API页面,这里有4块是需要了解并使用的,中间是调用API基础路径,以及需要的header头部信息。
中间下方是每个API的具体入参,返回参数的介绍。右上角是我们API-Key获取的位置,右边是目录栏方便快速找到自己需要的API。
1.3 点击API密钥,进行创建API,并将其放保存,后续在后端代码中使用。
1.4 本教程我们只选择发送对话消息,以及暂停响应作为示例。
接口参数详情可自行查看该界面,本章节不会一一介绍。
2. 配置工作流
为了满足按照项目的不同,隔离各个知识库的功能,需要对工作流进行配置
2.1 配置聊天额外入参
在编排页面,选择START,找到右边的加号,即可添加自定义字段,下图中红色框框住的由名称sys.开头的是系统默认字段,key则是自定义字段
2.2 将自定义字段内容配置在分类器中
在分类器的输入变量栏中找到自定义参数key,并选择填入,这样这个分类器将按照这个key的内容进行分类。
分类器分为三类:TEST、default、health,后续将通过key传参来进行区分
2.3 使用变量聚合器组件,将流程简化
在知识库检索后,加入变量聚合器,由于知识库将按照项目区分,所以每次问答只会走一个知识库,则将其聚合再放入大模型组件中。
避免多次配置,费时,且页面杂乱
2.4 知识库配置
创建三个知识库,这里我将知识库名字改为和分类key一致。
3. 项目对接Dify-API
3.1 将Dify-API所需配置写入后端,并编写view
重点可看有注释的地方
class AiRobotViewSet(viewsets.ModelViewSet):
API_URL = "http://xx.xx.xx.xx:5001/v1/chat-messages" #dify后端地址
HEADERS = {
'Authorization': 'Bearer app-xxxxxxxxxxxxxx', #api-key
'Content-Type': 'application/json'
}
@action(methods=['post'], detail=False, url_path="chat-messages")
def chat_messages(self, request):
def generate():
# 转发请求到原始API
product_keys = list(UserAndProdRoles.objects.filter(user_id=request.user.id).values_list('product__product_key', flat=T