Dify开发平台实战

Dify 是一个开源的大语言模型(LLM)应用开发平台。它拥有直观的界面,集成了智能体 AI 工作流、检索增强生成(RAG)流程、智能体能力、模型管理、可观测性功能等,能让你快速从原型阶段过渡到产品上线阶段。

GitHub Difyhttps://github.com/langgenius/dify

一 .安装

参考:Docker Compose 部署 | Dify

提示:默认端口80,需要配置云服务器的安全策略,80端口的访问权限。

二.配置

1.设置语言

2. 配置模型供应商

这里以Ollama为例,安装参考:

Alibaba Cloud Linux 基于Ollama部署DeepSeek R1:7B版本

基础URL:填写安装的Ollama的,页面可以向下滚动

3. 配置Text Embedding 模型

这里以nomic-embed-text模型为例,安装请参考:

AnythingLLM 结合nomic-embed-text 处理文档建立私有知识库-CSDN博客

三.创建知识库
 

1.入口

2.选择文件,注意文件大小限制在15M以内

3. 设置参数,处理

 4. 知识库创建完成

四. 使用自然语言查询数据库
 

1.准备工作

在服务端提供一个接口,接收SQL语句,执行查询。

使用如下提示词,让大模型提供一段脚本:

为了实现一个在8306端口启动的服务,用于执行安全的SQL查询并返回结果,以下是详细的Python脚本。该脚本使用Flask框架处理HTTP请求,并连接MySQL数据库,严格限制仅允许SELECT查询。

如得到如下脚本:

from flask import Flask, request, jsonify
import mysql.connector
from mysql.connector import Error

app = Flask(__name__)

# 配置数据库连接信息,根据实际情况修改以下参数
db_config = {
    'host': 'localhost',      # 数据库主机地址
    'port': 3306,            # 数据库端口,默认3306
    'user': 'your_username', # 数据库用户名
    'password': 'your_password', # 数据库密码
    'database': 'your_database'  # 数据库名称
}

@app.route('/query', methods=['POST'])
def execute_query():
    # 获取请求中的JSON数据
    data = request.get_json()
    if not data or 'sql_query' not in data:
        return jsonify({'error': 'Missing SQL query in request'}), 400
    
    sql_query = data['sql_query'].strip()
    
    # 验证是否为SELECT查询
    if not sql_query.lower().startswith('select'):
        return jsonify({'error': 'Only SELECT queries are permitted'}), 400
    
    # 连接数据库并执行查询
    try:
        conn = mysql.connector.connect(**db_config)
        cursor = conn.cursor(dictionary=True)  # 使用字典游标获取字段名
        
        cursor.execute(sql_query)
        results = cursor.fetchall()
        
        cursor.close()
        conn.close()
        
        return jsonify({'data': results})
    
    except Error as e:
        return jsonify({'error': f'Database error: {str(e)}'}), 500
    except Exception as e:
        return jsonify({'error': f'Unexpected error: {str(e)}'}), 500

if __name__ == '__main__':
    # 启动服务,监听8306端口
    app.run(host='0.0.0.0', port=8306)

将脚本保存到服务器上,并修改其中的db_config相关配置。如db_service.py,执行:

python3 db_service.py

确保安装依赖:

pip3 install mysql-connector-python
pip3  install flask

2.创建数据库查询工作流

(1) 给开始节点增加一个输入变量sql

(2)增加一个执行代码节点

并配置输入变量为开始节点的变量sql,输出变量result,并设置执行代码:

执行代码: 

import requests
def main(sql: str) -> dict:
    # 查询服务
    url = "http://192.168.0.79:8306/query"
 
    # 构造请求体
    payload = {
        "sql_query": sql
    }
 
    # 发送POST请求
    try:
        response = requests.post(url, json=payload)
    
        # 检查状态码
        if response.status_code == 200:
            # 解析返回数据
            result = response.json()
            return {
                "result": f"{result}"
            }
        else:
            return {
                "result": f"请求失败,状态码:{response.status_code},{response.json()}"
            }
    except requests.exceptions.RequestException as e:
        return {
            "result": f"请求异常:{e}"
        }

(3) 增加结束节点,配置输出变量为代码执行的输出参数result

(4) 运行测试

输入一个查询语句,点击开始运行进行测试。

3.创建Agent

配置上下文,选择包含数据库描述的知识库,如何生成数据库描述,请参考:

DeepSeek使用案例--编写SQL-CSDN博客

配置工具,选择上面创建的数据库查询工作流

输入提示词:

发布后,即可体验:

小结:个人体验通过自然语言生成SQL查询数据库(ChatBI)离实际运用还有一定的距离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xyzcto

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

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

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

打赏作者

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

抵扣说明:

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

余额充值