源码对接微软Azure OpenAI 规范注意点

众所周知,我们是访问不通OpenAI官方服务的,但是我们可以自己通过代理或者使用第三方代理访问接口

现在新出台的规定禁止使用境外的AI大模型接口对境内客户使用,所以我们需要使用国内的大模型接口

国内的效果真的很差,现在如果想合规的使用GPT大模型,可以使用微软Azure的OpenAI服务,毕竟微软在中国是有公司的,算是合规的境内公司。

负责任的AI

在微软,我们致力于以人为本的原则推动AI的进步。生成模型(如Azure OpenAI中可用的模型)具有显著的潜在优势,但如果没有仔细的设计和深思熟虑的缓解措施,这样的模型有可能生成不正确甚至有害的内容。微软已经进行了大量投资,以帮助防止滥用和意外伤害,其中包括要求申请人展示定义明确的用例,纳入微软负责任的AI使用原则,构建内容过滤器以支持客户,并为客户提供负责任的AI实施指导。

微软在中国是有合规企业的,并且数据内容经过了过滤,我们可以考虑平替OpenAI官网服务

接口规范

我们可以参考下面这个REST接口的调用参数

在Azure上创建服务成功以后,会得到两个参数 ENDPOINT 和 API-KEY

聊天补全接口

代码语言:javascript
复制
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2023-05-15 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure Cognitive Services support this too?"}]}'

向量转换接口

代码语言:javascript
复制
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2023-05-15 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{\"input\": \"The food was delicious and the waiter...\"}"

与OpenAI官方的区别

接口地址不一样,header参数里传递key的形式也不一样。

除了这俩点,还有一个很重要的事情。

注意

大家仔细看看上面接口地址的url部分,标红的部分

$AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2023-05-15

https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2023-05-15

我们需要把大模型部署一下,上面标红的地方,就是部署名称,所以如果我们想无缝切换OpenAI与微软Azure OpenAI

我们需要固定好,部署的名称与模型的名称保持一致,这样才能正常调用

我们现在已经兼容了OpenAI与微软Azure OpenAI,并且在探索国内大模型的对接。现在已经开发落地了智能客服系统产品,可对接知识库的AI客服系统,有兴趣的朋友可以访问网站 gofly.v1kf.com