以下是一些能生成 SQL 语句并提供 API 调用的 AI 模型或工具的相关信息:
OpenAI 的 GPT 系列模型,如 gpt-4-0613 和 gpt-3.5-turbo-0613 ,可以通过函数调用及其他 API 更新,让开发人员向模型描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象。但需要注意的是,为了让 ChatGPT 返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。
在使用代码执行来进行更精确的计算或调用外部 API 时,不能依赖模型自行准确地执行算术或长计算。可以指示模型编写和运行代码,例如将代码放入三重反引号中。生成输出后,可以提取并运行代码。同时,模型在正确使用 API 的指导下,可以编写使用 API 的代码,但需要通过提供 API 文档或代码示例进行指导。
但需要注意的是,执行模型生成的代码存在安全风险,建议在安全的沙箱环境中运行代码,避免潜在危害。
不能依赖GPT自行准确地执行算术或长计算。在需要的情况下,可以指示模型编写和运行代码,而不是进行自己的计算。特别是,可以指示模型将要运行的代码放入指定的格式中,例如三重反引号。生成输出后,可以提取并运行代码。最后,如果有必要,可以将代码执行引擎(即Python解释器)的输出作为输入提供给下一个查询的模型。|系统|您可以通过用三重反引号将其括起来来编写和执行Python代码,例如,```code goes here```。使用它来执行计算。||-|-||用户|找出以下多项式的所有实值根:3*x5 - 5*x4 - 3*x**3 - 7*x - 10。|代码执行的另一个好用例是调用外部API。如果指导模型正确使用API,则它可以编写使用它的代码。通过向模型提供说明如何使用API的文档和/或代码示例,可以指导模型如何使用API。警告:执行模型生成的代码本身并不安全,任何试图执行此操作的应用程序都应采取预防措施。特别是,需要一个沙盒代码执行环境来限制不受信任的代码可能造成的危害。
可以发现为了让ChatGPT返回符合要求的JSON格式,prompt的定制就尤为重要和复杂。好消息是,在当地时间6月13日,OpenAI发布函数调用及其他API更新。现在开发人员可以向gpt-4-0613和gpt-3.5-turbo-0613描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的JSON对象。这是一种更可靠地将GPT的能力与外部工具和API连接起来的新方法。传送门:[Function calling and other API updates](https://openai.com/blog/function-calling-and-other-api-updates)官网有很详细的例子,这里就不再描述代码了。我用本文案例总结大致流程:有个好处是不需要让ChatGPT生成SQL了,减少SQL注入的风险。本地写一个函数执行this.app.mysql.select(table,condition),根据GPT返回的函数名、参数(字段和where)来查询数据,更为安全。但这个方法又有局限性,事先定义函数查询不如SQL查询来的灵活,所以这里也可以让函数改为SQL查询this.app.mysql.query(sql),GPT的函数调用改为:getSqlQuery(sql:string),函数名getSqlQuery,参数:sql,更为灵活。总结:让GPT与函数调用结合,本地控制返回JSON格式,prompt的定制更为简单,AI的输出更为可控。根据实际业务需求采用函数查询或SQL查询,值得一试![heading2]SQL分析示例[content]注:以下SQL分析的数据均是在数据库中伪造的数据,仅供测试。分析每种图表的使用情况分析图表类型是柱状图的创建时间和数量
语言模型本身无法可靠地进行算术或长时间计算。在需要这样做的情况下,可以指导模型编写并运行代码,而不是进行自己的计算。特别是,可以指导模型将要运行的代码放入指定格式,如三重反引号。生成输出后,可以提取并运行代码。如果需要,可以将代码执行引擎(即Python解释器)的输出提供给模型,以便进行下一个查询。|角色|内容||-|-||SYSTEM|你可以通过用三重反引号将Python代码括起来,例如代码写在这里来编写和执行Python代码。使用这种方式进行计算。||USER|求解以下多项式的所有实根:3*x**5 - 5*x**4 - 3*x**3 - 7*x - 10。|另一个代码执行的好用例是调用外部API。如果模型在正确使用API的指导下,它可以编写使用它的代码。可以通过提供API文档或代码示例,指导模型如何使用API。|角色|内容||-|-||SYSTEM|你可以通过用三重反引号将Python代码括起来,例如代码写在这里来编写和执行Python代码。你还可以使用以下模块向用户的朋友发送消息:<br>python<br>import message<br>message.write(to="John",message="嘿,下班后一起聚一聚?")<br>|警告:执行模型生成的代码存在安全风险。建议在安全的沙箱环境中运行代码,避免潜在危害。