dify+mysql的诗词助手

目录

数据库表结构:

数据库查询的http服务搭建:

流程引擎搭建:

开始,

HTTP查询数据库,

LLM数据分析,

直接回复,

效果测试:

下载链接:


数据库表结构:

数据库poetry中包含4张表,分别是poems,poems_author,poetry,poetry_author。

poems:

poems_author:

Poetry:

poetry_author:

通过执行desc指令,分别获取到4张表的表结构

desc poems;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int          | NO   | PRI | NULL    | auto_increment |
| author_id | int          | YES  |     | 0       |                |
| title     | varchar(255) | NO   |     | NULL    |                |
| content   | text         | NO   |     | NULL    |                |
| author    | varchar(255) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+desc poems_author;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int          | NO   | PRI | NULL    | auto_increment |
| name    | varchar(255) | NO   |     | NULL    |                |
| intro_l | text         | YES  |     | NULL    |                |
| intro_s | text         | YES  |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+desc poetry;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int          | NO   | PRI | NULL    | auto_increment |
| author_id  | int          | YES  |     | 0       |                |
| title      | varchar(255) | NO   |     | NULL    |                |
| content    | text         | NO   |     | NULL    |                |
| yunlv_rule | text         | YES  |     | NULL    |                |
| author     | varchar(255) | NO   |     | NULL    |                |
| dynasty    | char(1)      | NO   |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+desc poetry_author;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int          | NO   | PRI | NULL    | auto_increment |
| name    | varchar(255) | NO   |     | NULL    |                |
| intro   | text         | YES  |     | NULL    |                |
| dynasty | char(1)      | NO   |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+

数据库查询的http服务搭建:

通过搭建一个支持post请求的http服务,基于该服务实现SQL的查询结果输出。

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import pymysql
import uvicorn
from contextlib import contextmanagerapp = FastAPI()class SQLQuery(BaseModel):sql_query: str@contextmanager
def get_db_connection(config):# 数据库连接的上下文管理器conn = Nonetry:conn = pymysql.connect(**config)yield connfinally:if conn:conn.close()@app.post("/execute_query")
async def execute_query(query: SQLQuery
):# 处理POST请求以执行SQL查询try:sql_queries = query.sql_query.strip()if not sql_queries:raise HTTPException(status_code=400, detail="Missing sql_query parameter")with get_db_connection(app.db_config) as conn:results = []with conn.cursor(pymysql.cursors.DictCursor) as cursor:for sql_query in sql_queries.split(';'):if sql_query.strip():cursor.execute(sql_query)result = cursor.fetchall()if result:results.extend(result)conn.commit()return resultsexcept pymysql.Error as e:raise HTTPException(status_code=500, detail=f"数据库错误: {str(e)}")except Exception as e:raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}")if __name__ == '__main__':# 数据库配置app.db_config = {"host": "172.86.222.28","user": "root","password": "123456","database": "poetry","port": 3306,"charset": 'utf8mb4'}uvicorn.run(app, host='0.0.0.0', port=35005)

流程引擎搭建:

开始-->LLM-->Http请求-->LLM-->直接回复

开始,

LLM生成SQL,

第一个LLM实现将用户提问转化为SQL,模型选择qwen2.5-14b模型,

System里面输入数据库中表的结构,

# 你是数据分析专家,精通MySQL,能够根据用户的问题生成高效的SQL查询。## 数据库表结构### 1. poetry(唐诗宋诗表);
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| author_id | int(11) | YES | | 0 | |
| title | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
| yunlv_rule | text | YES | | NULL | |
| author | varchar(255) | NO | | NULL | |
| dynasty | char(1) | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+### 2. poetry_author(唐诗宋诗作者表);
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| intro | text | YES | | NULL | |
| dynasty | char(1) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+### 3. poems(宋词表);
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| author_id | int(11) | YES | | 0 | |
| title | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
| author | varchar(255) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+### 4. poems_author(宋词作者表);
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| intro_l | text | YES | | NULL | |
| intro_s | text | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+注意:dynasty字段存储的是缩写:S代表宋,T代表唐USER中输入问答要求,
问题:开始/{x}sys.query
请严格按照以下要求回答:
1. 仅使用提供的表和字段
2. 输出内容直接给完整SQL,不要任何Markdown格式,不要有注释,不要有换行

HTTP查询数据库,

API链接http://10.1.12.10:35005/execute_query,请求模式为POST,

HEADERS设置Content-Type为application/json

BODY选择JSON

Json格式为,

{"sql_query": "LLM-生成SQL/{x}text"}

失败重试次数为3

LLM数据分析,

该模型选用qwen2.5-7b,

SYSTEM中设置如下,

# 数据分析专家工作指南## 角色定位专业的SQL数据分析专家,负责解读MySQL poetry数据库的查询结果:## 核心规则1. 直接分析已提供数据,默认数据已满足查询条件2. 接受数据原貌,不质疑数据有效性3. 无需二次筛选或验证数据范围4. 空数据集统一回复"没有查询到相关数据"5. 避免使用提示性语言6. 分析结果以markdown格式输出7. 整理sql查询结果,以markdown表格格式输出放置输出开头8. 整理sql查询结果, 以echarts图表格式输出放最后,图表配置需要尽量简洁,不要有太多冗余的配置项输出格式如下:```echarts
{
"title": {
"text": "示例图表",
"subtext": "ECharts 示例"
},
"tooltip": {
"trigger": "item",
"formatter": "{a} <br/>{b}: {c} ({d}%)"
},
"legend": {
"orient": "vertical",
"left": "left",
"data": ["A", "B", "C", "D"]
},
"series": [
{
"name": "示例数据",
"type": "pie",
"radius": "50%",
"data": [
{ "value": 335, "name": "A" },
{ "value": 310, "name": "B" },
{ "value": 234, "name": "C" },
{ "value": 135, "name": "D" }
],
"emphasis": {
"itemStyle": {
"shadowBlur": 10,
"shadowOffsetX": 0,
"shadowColor": "rgba(0, 0, 0, 0.5)"
}
}
}
]
}
```9. 注意:如果sql查询结果为标量或者仅有一个结果,就取消Echarts图表。另外,根据结果自行决定使用不同的ECharts类型,eg: 柱状图、饼图、折线图、雷达图等。## 分析报告规范### 数据处理原则1. 严格基于JSON数据集2. 数据已预筛选,直接进行统计分析3. 不进行数据条件的二次确认### 报告结构要求1. 数据概览2. 详细分析3. 结论部分

USER中填写,

数据分析

直接回复,

输出最终LLM的结果{x}text

效果测试:

可以基于数据库进行多表的查询汇总,输出结果,并以表格、柱状图等形式展示。

下载链接:

包括数据库、dify的DSL文件、数据库服务脚本https://download.csdn.net/download/qq_14845119/90482856

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33798.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins 配置邮件问题整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自带的&#xff0c; B.安装功能强大的插件 配置流程&#xff1a; 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“&#xff0c;是配置之后发件人的email。 2.配置系统自带的邮件A…

谷歌Chrome或微软Edge浏览器修改网页任意内容

在谷歌或微软浏览器按F12&#xff0c;打开开发者工具&#xff0c;切换到console选项卡&#xff1a; 在下面的输入行输入下面的命令回车&#xff1a; document.body.contentEditable"true"效果如下&#xff1a;

blender使用初体验(甜甜圈教程)

使用blender 建模了甜甜圈&#xff0c;时间空闲了&#xff0c;但愿能创建点好玩的吸引人的东西

Adobe Firefly 技术浅析(三):GANs 的改进

生成式对抗网络(GANs)在图像生成领域取得了显著的进展,但原始的 GANs 在训练稳定性、生成质量以及多样性方面存在一些挑战。Adobe Firefly 在其图像生成技术中采用了多种改进的 GANs 方法,以提高生成图像的质量和多样性。 1. 条件生成式对抗网络(cGANs) 1.1 基本原理 …

go GRPC学习笔记

本博文源于笔者正在学习的gprc&#xff0c;相关配套书籍素材来源是《Go编程进阶实战》&#xff0c;博文内容主要包含了RPC模式讲解&#xff0c;RPC通过htttp访问、拦截器、提高服务端与客户端容错的内容配置 在此之前需要下载protoc&#xff0c;这里不做下载过程 1、RPC模式 …

CentOS 系统安装 docker 以及常用插件

博主用的的是WindTerm软件链接的服务器&#xff0c;因为好用 1.链接上服务器登入后&#xff0c;在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…

MindGYM:一个用于增强视觉-语言模型推理能力的合成数据集框架,通过生成自挑战问题来提升模型的多跳推理能力。

2025-03-13&#xff0c;由中山大学和阿里巴巴集团的研究团队提出了MindGYM框架&#xff0c;通过合成自挑战问题来增强视觉-语言模型&#xff08;VLMs&#xff09;的推理能力。MindGYM框架通过生成多跳推理问题和结构化课程训练&#xff0c;显著提升了模型在推理深度和广度上的表…

论文阅读笔记——LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

LoRA 论文 传统全面微调&#xff0c;对每个任务学习的参数与原始模型相同&#xff1a; m a x Φ ∑ ( x , y ) ∈ Z ∑ t 1 ∣ y ∣ l o g ( P Φ ( y t ∣ x , y < t ) ) 式(1) max_{\Phi}\sum_{(x,y)\in Z}\sum^{|y|}_{t1}log(P_{\Phi}(y_t|x,y<t)) \qquad \text{式(…

Umi-OCR 全家桶

介绍&#xff1a; 下载 访问官网地址 https://github.com/hiroi-sora/umi-ocrhttps://github.com/hiroi-sora/umi-ocr 点击下载&#xff08;.exe 文件 安装即可&#xff09; 桌面使用 安装完毕后去安装路径下点击 Umi-OCR.exe &#xff08;默认不会生成桌面的快捷方式&…

oracle中OS BLOCK的含义

在Oracle数据库中&#xff0c;OS BLOCK&#xff08;操作系统数据块&#xff09;是指操作系统层面上的数据块&#xff0c;它与Oracle数据库内部的逻辑存储单元BLOCK&#xff08;数据块&#xff09;有所区别但密切相关。以下是对OS BLOCK的详细解释&#xff1a; 定义与概念 OS BL…

mac部署GPT-SoVITS,生成粤语踩坑点及使用记录

自己录音&#xff0c;普通话或者粤语 注意&#xff1a; 与在其他设备上训练的模型相比&#xff0c;在mac上使用gpu训练的模型的质量明显较低&#xff0c;因此我们暂时使用cpu代替。 Install Xcode command-line tools by running xcode-select --install.Install FFmpeg by …

STM32-SPI通信外设

目录 一&#xff1a;SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二&#xff1a;硬件SPI读写W25Q64 1.接线&#xff1a; 2. 代码 SPI外设的初始化 生成时序 一&#xff1a;SPI外设简介 STM32内部集成了硬件SPI收发电路&#…

游戏引擎学习第158天

回顾和今天的计划 我们在这里会实时编码一个完整的游戏&#xff0c;没有使用引擎或库&#xff0c;一切都由我们自己做所有的编程工作&#xff0c;游戏中的每一部分&#xff0c;无论需要做什么&#xff0c;我们都亲自实现&#xff0c;并展示如何完成这些任务。今天&#xff0c;…

指令微调 (Instruction Tuning) 与 Prompt 工程

引言 预训练语言模型 (PLMs) 在通用语言能力方面展现出强大的潜力。然而&#xff0c;如何有效地引导 PLMs 遵循人类指令&#xff0c; 并输出符合人类意图的响应&#xff0c; 成为释放 PLMs 价值的关键挑战。 指令微调 (Instruction Tuning) 和 Prompt 工程 (Prompt Engineerin…

实验三 Python 数据可视化 Python 聚类-K-means(CQUPT)

一、实验目的 Python 数据可视化&#xff1a; 1、学习使用 jieba、wordcloud 等类库生成词云图。 2、学习使用 Matplotlib 库进行数据可视化。 Python 聚类-K-means&#xff1a; 1、理解聚类非监督学习方法的基本原理。 2、掌握 Python、numpy、pandas、sklearn 实现聚类…

Linux--git

ok&#xff0c;我们今天来学习如何在Linux上建立链接git 版本控制器Git 不知道你⼯作或学习时&#xff0c;有没有遇到这样的情况&#xff1a;我们在编写各种⽂档时&#xff0c;为了防⽌⽂档丢失&#xff0c;更改 失误&#xff0c;失误后能恢复到原来的版本&#xff0c;不得不…

凸优化算法学习笔记:决策单调性与 wqs二分

文章目录 前言决策单调性单调矩阵&#xff0c;完全单调矩阵&#xff0c;蒙日阵决策单调性优化 d p dp dp线性 d p dp dp分治&#xff08;离线&#xff09;二分队列&#xff08;在线&#xff09;SMAWK 区间 d p dp dp 练习题LOJ6039 w q s wqs wqs 二分&#xff08;蒙日阵最短…

基于YOLOv8深度学习的PCB缺陷检测识别系统【python源码+GUI界面+数据集+训练代码】

目录 一、界面功能展示 二、前言摘要 三、GUI界面演示 &#xff08;一&#xff09;用户加载自定义模型 &#xff08;二&#xff09;单张图像检测 &#xff08;三&#xff09;检测图像文件夹 &#xff08;四&#xff09;检测视频 &#xff08;五&#xff09;保存 四、模…

Matlab 多项式拟合点法线(二维)

文章目录 一、简介二、实现代码三、实现效果一、简介 这个思路其实很简单,假设我们有一组曲线点,我们可以对其拟合曲线并计算其导数来获取每个点的法向量,当然这一思路也可以扩展至三维。具体过程如下所示: 二、实现代码 %% *********

Cesium 入门教程(基于 vue3)

目录 Cesium 介绍&#xff1a; 下载 Cesium&#xff0c;2种路径: 下载成功后&#xff0c;创建 vue3 项目&#xff1a; 编写内容 一个“纯”地球 添加图层 坐标系及其数值转换 相机位置及动态交互 添加物体和3维建筑物 Cesium 介绍&#xff1a; Cesium 是一个开源的 JavaScript …