代碼示例

我先把在 xxx里寫的python腳本改下,由關鍵詞檢索改成sql檢索。

from flask import Flask, request, jsonify
import pymysql

app = Flask(__name__)

# 數據庫配置
DATABASE_CONFIG = {
'host': '', # 自己的數據庫地址
'user': '', # 自己數據庫的賬戶
'password': '', #自己數據庫的密碼
'db': 'demo', # 自己數據庫的庫名
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor
}

@app.route('/query', methods=['POST'])
def query_database():
print("接收到請求")
# 獲取查詢sql
querySql = request.json.get('querySql')
print("querySql為:"+querySql)
# 去除 Markdown 標識和不必要的字符
if querySql:
# 去除開頭的 ```sql querySql = querySql.replace('```sql\n', '') # 去除結尾的 `<EOF>` querySql = querySql.replace('\n<<EOF>>', '') # 去除多余的空格和換行符 querySql = querySql.strip() # 將換行符替換為空格(如果需要保持多行,可以省略這一步) querySql = querySql.replace('\n', ' ') querySql = querySql.replace('```', ' ') # 去除多余的空格 querySql = ' '.join(querySql.split()) ifnot querySql: return jsonify({"error": "querySql is required"}), 400 try: # 建立數據庫連接 connection = pymysql.connect(**DATABASE_CONFIG) with connection.cursor() as cursor: # 執行查詢 cursor.execute(querySql) result = cursor.fetchall() connection.commit() connection.close() ifnot result: return"未查詢到有效數據", 400 # 生成 Markdown 表格 markdown_table = generate_markdown_table(result) return markdown_table, 200 except Exception as e: return str(e), 500 def generate_markdown_table(results): """ 生成 Markdown 表格 """ ifnot results: return"" # 獲取列名 columns = results[0].keys() # 表頭 table_md = "| " + " | ".join([col for col in columns]) + " |\n" # 分隔線 table_md += "| " + " --- |" * len(columns) + "\n" # 表格內容 for row in results: table_md += "| " + " | ".join([str(cell) for cell in row.values()]) + " |\n" return table_md if __name__ == '__main__': app.run(host='10.1.0.65', port=8000)

執行命令python .\server2.py,啟動服務

搭建知識庫 步驟

數據準備與結構分析

我把庫表結構從數據庫里導出一份表結構,導出到相同的文件里,建立一個知識庫。要求數據庫表必須有完整的注釋。

我們可以看到導出的表結構我們可以用DROP TABLE IF EXISTS 分割文本。

創建知識庫

將導出的表結構,上傳到知識庫。

按照DROP TABLE IF EXISTS分割文本,將2設置為4000,預覽下分段,效果還行,把最大分段長度調大,防止同一個表結構被分到不同的段落。

我們使用混合檢索,Score的閾值不要調太大,一般0.3即可,別看圖。

復制工作流

回到工作室,我們復制一個工作流出來。

改下名稱。

節點設置

添加一個知識檢索節點,把開始節點的用戶輸入context作為查詢變量,添加剛才添加的數據庫知識庫。

我們把LLM節點調整下,修改下2的名稱,上線文2改成知識檢索的結果.調整下提示詞讓它根據知識和用戶需求生成查詢sql。

調整下HTTP請求中的查詢字段,我改成了querySql,根據自己的代碼來。

結束節點直接把HTTP的body返回。

最后整體流程。

調試

寫sql的能力忽高忽低,得找個代碼模型。

總結

文章轉載自: DeepSeek+dify 工作流應用,自然語言查詢數據庫信息并展示

上一篇:

DeepSeek R1 × 飛書多維表格賦能教育領域

下一篇:

一文講透MCP的原理及實踐
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費