微信扫码
添加专属顾问
我要投稿
轻松实现自然语言到数据库查询的解决方案,探索DeepSeek和Dify如何协同工作。 核心内容: 1. Dify不支持直连数据库的问题概述 2. DeepSeek辅助准备数据库表结构和数据插入 3. 通过自然语言实现数据库查询的流程和代码示例
# 创建班级表CREATE TABLE classes (class_id INT AUTO_INCREMENT PRIMARY KEY,class_name VARCHAR(50) NOT NULL);# 创建用户表CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL,class_id INT,FOREIGN KEY (class_id) REFERENCES classes(class_id));# 插入班级数据INSERT INTO classes (class_name) VALUES('Class A'),('Class B'),('Class C'),('Class D');# 插入用户数据INSERT INTO users (username, email, class_id) VALUES('Alice', 'alice@example.com', 1),('Bob', 'bob@example.com', 2),('Charlie', 'charlie@example.com', 3),('David', 'david@example.com', 4),('Eve', 'eve@example.com', 1),('Frank', 'frank@example.com', 2),('Grace', 'grace@example.com', 3),('Hank', 'hank@example.com', 4),('Ivy', 'ivy@example.com', 1),('Jack', 'jack@example.com', 2);
from flask import Flask, request, jsonifyimport pymysqlimport re# 创建 Flask 应用app = Flask(__name__)# 数据库连接配置DB_CONFIG = {'host': 'localhost','user': 'test', # 替换为你的数据库用户名'password': '123456', # 替换为你的数据库密码'database': 'test', # 替换为你的数据库名称'cursorclass': pymysql.cursors.DictCursor}# 定义接口:执行 SQL 查询@app.route('/query', methods=['POST'])def execute_query():# 获取客户端传递的 SQL 语句data = request.jsonif not data or 'sql' not in data:return jsonify({'error': 'Missing SQL statement in request body'}), 400sql = data['sql']# 简单的 SQL 语句验证(防止恶意操作)if not re.match(r'^SELECT\s', sql, re.IGNORECASE):return jsonify({'error': 'Only SELECT queries are allowed'}), 400try: # 连接数据库connection = pymysql.connect(**DB_CONFIG)with connection.cursor() as cursor:# 执行 SQL 查询cursor.execute(sql)result = cursor.fetchall()return jsonify(result)except pymysql.MySQLError as e:return jsonify({'error': str(e)}), 500finally:if connection:connection.close()# 启动服务if __name__ == '__main__':app.run(debug=True)
python .\server.py
你是一个数据分析师,根据用户输入的{content}需求以及检索到{上下文},生成对应的查询SQL,SQL必须经过严格的校验。## 你可以使用的其他方法用户输入类似于“求和”或“总和”时,则在sql语句中使用SUM()。用户输入类似于“平均数”或“平均”时,在在sql语句中使用AVG()。## 要求1.如果用户输入的内容无法生成为sql语句,请直接说“抱歉,该命令无法形成数据库查询操作”。2.当可以生成sql语句时,请确保输出的内容为完整正确的sql语句,不要输出此外的其他任何字符,确保你生成的内容用户可以直接执行查询操作。3.对于字符串内容的查询请使用LIKE操作而不是等于操作。4.请不要在回复中包括除sql语句之外的任何内容。5.禁止中间过程输出。6.输出的sql为一整行。53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-12
卡内基梅隆最新AI应用成熟度模型:AI转型最后拼的是组织基本功(附8项能力)
2026-06-11
企业AI场景全景拆解——100+落地场景,按业务域一网打尽
2026-06-11
咨询|FDE 为什么突然火了?到底是咨询顾问、还是AI工程师更适合做FDE呢?
2026-06-10
让「准确率」可裁判:AI 数据分析需要一套可信机制
2026-06-10
DataBuddy 庖丁解牛(系列1):腾讯刚刚押下的「数据 Agent 全栈」
2026-06-09
三部门发文19个场景,但90%企业AI工作台还在"拼积木"(AI工作台①)
2026-06-05
为什么企业内部AI应用看起来厉害,用起来是垃圾?
2026-06-03
超级个体时代|腾讯研究院3万字报告
2026-03-19
2026-06-03
2026-03-23
2026-03-26
2026-05-13
2026-03-21
2026-04-09
2026-04-14
2026-04-01
2026-04-16
2026-06-11
2026-06-05
2026-06-02
2026-05-26
2026-03-21
2026-02-11
2026-01-21
2025-12-26