Azure OpenAI 函数调用
函数调用允许开发人员在他们的代码中创建函数描述,然后将该描述传递给语言模型以进行请求。模型的响应包括与描述相匹配的函数名称以及调用它所需的参数。
您可以使用 AzureOpenAiChatClient 注册自定义 Java 函数,并让模型智能地选择输出包含调用注册函数的参数的 JSON 对象。这使您能够将 LLM 能力与外部工具和 API 连接起来。Azure 模型经过训练,可以检测到何时应该调用函数,并以符合函数签名的 JSON 响应。
并行函数调用仅支持 gpt-35-turbo(1106)和 gpt-4(1106-preview),也称为 GPT-4 Turbo 预览版。
Azure OpenAI API 不直接调用函数;相反,模型会生成 JSON,您可以在代码中使用该 JSON 调用函数,并将结果返回给模型以完成对话。
Spring AI 提供了灵活且用户友好的方式来注册和调用自定义函数。一般来说,自定义函数需要提供函数名称、描述和函数调用签名(作为 JSON 模式),以让模型知道函数期望的参数。描述帮助模型理解何时调用函数。
作为开发人员,您需要实现一个函数,该函数接受从 AI 模型发送的函数调用参数,并将结果返回给模型。您的函数可以调用其他第三方服务以提供结果。
Spring AI 将为您支持函数调用的编写代码大大简化。它为您处理函数调用的对话。您只需将函数定义提供为 @Bean,并在调用 ChatClient 时提供函数的 bean 名称作为选项。
在底层,Spring 使用 FunctionCallback.java 接口和伴随的 FunctionCallbackWrapper.java 实用程序类来简化 Java 回调函数的实现和注册。
工作原理