docker+ollama+flask+mysql实现本地数据库读取操作

打印 上一主题 下一主题

主题 1018|帖子 1018|积分 3054

1.安装mysql

安装mysql后,使用自带的数据库表

2. 使用flask,创建查询接口

文件目录

config.py,配置数据库相关信息
  1. MYSQL_HOST = "127.0.0.1"
  2. MYSQL_PORT = 3306
  3. MYSQL_USER = "root"
  4. MYSQL_PASSWD = "123456"
  5. MYSQL_DB = "world"
复制代码
mysql_operate.py:创建mysql操作类
  1. import pymysql
  2. from config.config import MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWD, MYSQL_DB
  3. class MysqlDb():
  4.     def __init__(self, host, port, user, password, db):
  5.         self.conn = pymysql.connect(host=host,
  6.                                     port=port,
  7.                                     user=user,
  8.                                     passwd=password,
  9.                                     db=db)
  10.         self.cursor = self.conn.cursor()
  11.     def select_db(self, sql):
  12.         self.conn.ping(reconnect=True)
  13.         self.cursor.execute(sql)
  14.         data = self.cursor.fetchall()
  15.         return data
  16.     def __del__(self):
  17.         self.cursor.close()
  18.         self.conn.close()
  19.     def execute_db(self, sql):
  20.         try:
  21.             self.conn.ping(reconnect=True)
  22.             self.cursor.execute(sql)
  23.             self.conn.commit()
  24.             return "插入成功"
  25.         except Exception as e:
  26.             self.conn.rollback()
  27.             return "error"
  28. db = MysqlDb(MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWD, MYSQL_DB)
复制代码
app.py
  1. from flask import Flask
  2. from flask import jsonify
  3. from flask import request
  4. from common import mysql_operate
  5. app = Flask(__name__)
  6. @app.route('/')
  7. def index():
  8.     return 'hello mysql'
  9. @app.route('/query')
  10. def query():  # put application's code here
  11.     # sql = "SELECT * FROM city"
  12.     data = request.get_json()
  13.     if not data or 'sql' not in data:
  14.         return jsonify({"error": "sql语句是必须的"})
  15.     sql = data['sql']
  16.     data = mysql_operate.db.select_db(sql)
  17.     return jsonify(data)
  18. if __name__ == '__main__':
  19.     app.run()
复制代码
3. 在dify中创建sql工作流

1.创建空白工作流
2.在开始模块中创建sql变量

3.创建http哀求并修改相关参数
修改哀求方式未post
修改哀求所在,注意 127.0.0.1必要更改为host.docker.internal
求改headers
修改json数据
3.进行模板转换

4.添加竣事节点
选择上一步模板转换中的输出output,假如没有3,则直接选择http body也可以

4.发布为工具
4.创建agent

1.创建agent
2.输入提示词
  1. ## 角色
  2. 你是一个专业的数据分析专家,并且精通根据用户的问题,数据表接口进行生成sql语句进行查询数据库
  3. ## 背景
  4. 根据用户问题,精确确定用户需求,首先查看数据表中的数据表结构,然后编写准确的并且可以直接执行的sql语句进行统计和查询数据库中的数据,并且返回相关数据,对于用户的工作效率提升十分重要
  5. ## 任务
  6. 根据用户的相关问题,首先查询知识库查看大概的数据表结构,然后编写可执行的mysql语句并且调用’查询数据库‘工具进行查询数据库,用于最后满足用户的需求。对于用户需要查询数据库的需求务必调用’查询数据库‘工具。
  7. ## mysql语法提示
  8. 如果需要子查询的话需要用如下语法
  9. select * from table where name="beijing"
  10. ## 首先进行下面的逻辑推理过程
  11. 1.查询知识库了解数据库表结构
  12. 2.梳理和理解用户需求
  13. 3.分析这个需求需要编写多少sql语句
  14. 4.分析如何编写sql语句使得以最少的sql查询次数进行查询数据库
  15. 5.尝试编写仅仅一条或者5条内sql进行查询数据库
  16. 6.判断sql语句是否符合mysql语句的语法
  17. ## 提示
  18. 调用查询数据库工具时,直接输入组装好的sql语句即可,不用输入字典
复制代码
3.添加知识库和工具


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表