Function Calling 是一种在自然语言处理和人工智能模型中的技术。
在金融业务场景中,例如搜索欧元兑美元的当前汇率,使用前需要做好配置,如使用 Gemini 1.5 Flash 模型。
对于 ChatGPT 而言,为了让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可以向 gpt-4-0613 和 gpt-3.5-turbo-0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象,这是将 GPT 的能力与外部工具和 API 连接起来的新方法。例如,本地写函数执行 this.app.mysql.select(table,condition),或根据实际需求改为 SQL 查询 this.app.mysql.query(sql)。
对于 OpenAI 的 GPT 模型,Chat completions API 允许在请求中传递一系列函数描述,使模型能够根据提供的模式生成函数参数,API 以 JSON 格式返回生成的函数参数,可用于执行函数调用,函数调用的输出还可在后续请求中反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。
需要注意的是,模型生成的代码不一定都是正确和安全的,在运行代码前要确保环境安全,最好在沙盒中进行。
这个部分我们来讲解什么是Function Calling,以及Funcation Calling的具体用法。在这个用例中,假设你是一个从事金融方面业务的用户,你想通过模型搜索欧元兑美元的当前汇率。但在一切开始前,我们还是需要做好配置,不过这次我们使用Gemini 1.5 Flash模型。
可以发现为了让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分析的数据均是在数据库中伪造的数据,仅供测试。分析每种图表的使用情况分析图表类型是柱状图的创建时间和数量
附录OpenAI Playground是什么,怎么用?[heading2]六个能提高输出质量的核心提示词策略[hemessage.write(to="John",message="Hey,want tomeetup a erwork?")```最后要提请注意:模型写的代码不见得都是对的,都安全。跑代码之前要确保环境安全,最好在沙盒里。5.3使用function-calling,函数调用Give themodel access to specific functions.TheChat completions API allows passing a list of function descriptions in requests.This enablesmodels to generate function arguments according to the provided schemas.Generated function arguments are returned by the API in JSON format and can be used to execute function calls.Output provided by function calls can then be fed back into a model in the following request to close the loop.This is the recommended way of using GPTmodels to call external functions.To learn more see the function calling section in our introductoryGPTguide andmore function calling examples in theOpenAI Cookbook.(这段没有逐字翻译)API允许你在请求时附带一系列函数描述。这样,模型就可以按照你给的格式产生函数的参数了。API会用JSON形式把这些参数传回来,你就可以用它来调用函数了。函数跑完后的结果,你还可以继续拿给模型,形成一个完整的交互循环。想让GPT帮你调外部函数,这方法相对最靠谱。想深入了解的话,可以看GPT入门指南里的函数调用部分,还有OpenAI Cookbook里的用例。六大策略06:系统地测试