简介
Human Language to SQL Translator 是一个可以通过ChatGPT 可以生成 SQL 语句的网站。
开源地址: https://github.com/whoiskatrin/sql-translator
这里使用 python
对其进行了复现
代码
"""自然语言生成 SQL """
import openaidef sql_generation(query, table_schema):"""生成 sql:param query: 用户输入的 query:param table_schema: 数据库表的 schema:return: sql 语句"""prompt = """Translate this natural language query into SQL without changing the case of the entries given by me:""" + query + """Use this table schema:""" + table_schema + """SQL Query:"""completion = openai.ChatCompletion.create(model="gpt-3.5-turbo",# api_base="https://xxxxx.xxxxx/v1", 如果有域名代理可以使用api_key="sk-xxxxxxxxxxxxxxxxxxx",messages=[{"role": "system", "content": prompt},], max_tokens=500, temperature=0)return completion.choices[0].message.contentif __name__ == '__main__':query = "查询年龄大于23岁的男生"print("query: " + query)sql = sql_generation("查询年龄大于23岁的男生","CREATE TABLE USER(id int, age int, sex bool, name varchar, update_time date, create_time date)")print("SQL: " + sql)
运行结果
总结
主要是通过 提示语让 ChatGPT 明白自己需要参考表结构将用户输入的文字转换为 SQL 语句
可以通过修改 PROMPT
来实现生成不同的数据库语句