ToB企服应用市场:ToB评测及商务社交产业平台

标题: 自然语言转SQL(NL2SQL、Text2SQL) [打印本页]

作者: 莱莱    时间: 2024-7-19 02:49
标题: 自然语言转SQL(NL2SQL、Text2SQL)
使用 FastAPI 框架和 LangChain 库构建的简单 Web 服务,其目的是将自然语言处理(NLP)应用于 SQL 查询天生。以下是代码中使用的技术架构和业务流程的详细阐明:
技术架构

业务流程

错误处理


安全性和性能


部署思量


可扩展性和维护性


通过这个架构,您可以构建一个健壮的 Web 服务,它可以或许理解和处理自然语言查询,并将它们转换为对数据库的 SQL 查询操作。

  1. from fastapi import FastAPI, HTTPException, Request
  2. from typing import Dict, Any
  3. from langchain.chains import create_sql_query_chain
  4. from langchain import OpenAI, SQLDatabase
  5. from langchain_experimental.sql import SQLDatabaseChain
  6. import mysql.connector
  7. app = FastAPI()
  8. def init_chain() -> SQLDatabaseChain:
  9.     llm = OpenAI(
  10.         temperature=0,
  11.         base_url="https://jiekou.***",  # 修正引号错误
  12.         api_key='sk-XXX',  # 使用您的 OpenAI API Key
  13.         timeout=50000  # 设置一个合理的超时时间
  14.     )
  15.    
  16.     db = SQLDatabase.from_uri("mysql+pymysql://user:password@127.0.0.1/testDB")
  17.     db_chain = SQLDatabaseChain.from_llm(llm=llm, db=db, verbose=True)
  18.    
  19.     return db_chain
  20. @app.post("/text2sql")
  21. async def run_sql_query(request: Request):
  22.     db_chain = init_chain()
  23.     query = await request.json()
  24.     if "query" not in query or not isinstance(query["query"], str):
  25.         raise HTTPException(status_code=400, detail="Invalid request body")
  26.     try:
  27.         result = db_chain.run(query["query"])
  28.         return {"result": result}
  29.     except Exception as e:
  30.         raise HTTPException(status_code=500, detail=str(e))
  31. if __name__ == "__main__":
  32.     import uvicorn
  33.     uvicorn.run(app, host="0.0.0.0", port=8000)  # 监听所有地址
复制代码
备注:
企业数据通常存储在SQL数据库中。
LLM使得可以使用自然语言与SQL数据库举行交互。
LangChain提供SQL链和署理,以基于自然语言提示构建和运行SQL查询。
实现步骤:自然语言——>交给大模子——>大模子天生sql语句——>通过sql语句天生效果
斲丧OpenAI API KEY的token,token需要付费。
openAI API Key收费方式:按照token数量计费,每1000个token收费0.002美元。【按照复兴的字节收费】

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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4