当前位置:首页|资讯|OpenAI

7月9日Openai api不对中国开放,暂停服务!国内开发者10分钟注册openai.azure

作者:等保测评办理发布时间:2024-07-15

OpenAI 目前对国内的风控越来越严格,已经完全不顾你的使用规模了,封你时毫不留情面,一言不合就会直接删掉你的账户,而且现在封号后你如何哭诉去申诉都是没有用的。

7月9日起更是全面暂停面向中国的服务。

这对于国内 OpenAI 赛道的开发者来说更是雪上加霜。

如何一劳永逸地解决这个问题呢?

可以说目前最好的解决方案,就是使用 Azure 的 OpenAI Service了。

10分钟注册 Azure 的 OpenAI服务

目前使用OpenAI的能力主要有2个主流渠道,这2种渠道提供的API能力无差异。

1、对接OpenAI官方提供的API。(目前在国内使用官方已明确会被封禁)

2、对接微软Azure提供的OpenAI能力(目前国内唯一合规渠道,申请需企业资质,价格基本一样还可开发票

微软Azure OpenAI服务可以合规、稳定地提供企业用户使用ChatGPT的可能。出于合规角度,建议国内企业可以选择微软的Azure OpenAI服务来使用接口。通过微软官方合作伙伴获取服务,企业用户可以合规、稳定地使用ChatGPT,满足国内发票需求,同时也能解决连接不稳定/响应速度慢/并发配额低等问题。

微软 Azure OpenAI 免费试用:
https://azureopenai.cloudallonline.com/?zxwsh23

创建 Azure OpenAI 服务

申请到账户,收到审核通过的邮件后,进入Azure 首页,搜索,选择该类型的服务并进入页面,点击创建按钮进入创建页面。

Azure OpenAI

  • 第一步是填写基础信息,选择你的订阅,资源组(没有的话就新建一个),区域(有美国、欧洲、亚洲等国家),服务名称(如果名字被别人占用了会提示),定价层(价格跟 OpenAI 的相差不大),然后点击下一步。

  • 第二步是选择网络,选择第一个全网络就可以了。
  • 第三步是选择标签,可以不填。
  • 最后确认信息并提交。

模型部署

创建好 OpenAI 服务后,点击该服务进入 OpenAI 的服务页面,选择模型部署,然后点击按钮,进入页面。

模型管理

Azure AI Studio

进去后选择侧边栏的菜单,点击按钮,然后选择模型,这里我们选择即可,再选择模型版本,有和两个,我们当然选择最新的版本,然后输入部署名称,注意名称只能包含和特殊字符,其他的特殊字符不能写到名称中,最后点击按钮完成部署的创建。

部署

创建新部署

gpt35-turbo

0301

0613

0613

创建

获取 API URL 和 API Key

模型部署完成后,重新进入 OpenAI 页面,选择菜单(在模型部署菜单上面),进去后可以看到有 2 个键和 1 个端点,端点就是 API URL,键就是 API KEY,随便用其中一个 KEY 就可以了。

键和端点

Azure OpenAI API 使用

拿到 API URL 和 API KEY 后,就可以使用 OpenAI API 了,这里用 curl 命令来测试一下,示例代码如下。

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/$DEPLOYMENT_NAME/chat/completions\?api-version\=2023-06-31-preview \ -H "Content-Type: application/json" \ -H "api-key: $AZURE_OPENAI_KEY" \ -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "hello"}]}'

  • 是 API URL
  • AZURE_OPENAI_ENDPOINT
  • 是模型部署的名称
  • DEPLOYMENT_NAME
  • 参数是指 API 的版本,有、等版本,具体的版本信息可以看这里[4]
  • api-version
  • 2023-06-31-preview
  • 2023-05-15
  • 是 API KEY
  • AZURE_OPENAI_KEY
  • 发送的 body 数据是一个消息数组,每个消息分别定义了角色和内容。

这个 curl 命令可以在国内直接访问,大家可以在自己电脑终端上试一下。

然后我们再看下请求返回的结果:

{ "id": "chatcmpl-7lurXrxcVQDGEWssG28dxeJkpKLTD", "object": "chat.completion", "model": "gpt-35-turbo", "prompt_annotations": { "hate": { "filtered": false, "severity": "safe" }, "self_harm": { "filtered": false, "severity": "safe" }, "sexual": { "filtered": false, "severity": "safe" }, "violence": { "filtered": false, "severity": "safe" } }, "choices": [ { "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "Hello! How can I assist you today?" }, "content_filter_results": { // 与 prompt_annotations 内容相同 } } ], "usage": { "completion_tokens": 9, "prompt_tokens": 18, "total_tokens": 27 }}

我们再看看 OpenAI API 的返回结果:

{ "id": "chatcmpl-7lvHYFBRjBTWDf24TSy1JfL6zCmMj", "object": "chat.completion", "model": "gpt-3.5-turbo-0613", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello! How can I assist you today?" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 19, "completion_tokens": 9, "total_tokens": 28 }}

可以看到 Azure OpenAI 的返回结果和 OpenAI API 的返回结果大致相同,除了 Azure OpenAI 的返回结果中多了和这 2 个属性,这 2 个属性分别是对问题和答案的检查结果,检测其中是否包含违规的信息,比如暴力黄色什么的,如果设置了过滤信息检查并检查出了违规内容,Azure OpenAI 的请求就会失败。

prompt_annotations

content_filter_results

Langchain 中对 OpenAI LLM 进行替换

如果你使用的是 Langchain 的 Python 包,可以使用类来替换类,示例代码如下:

AzureOpenAI

OpenAI

from langchain.llms import AzureOpenAIllm = AzureOpenAI( openai_api_type="azure", openai_api_key="Azure OpenAI API KEY", openai.api_base="Azure OpenAI API URL", openai_api_version="2023-06-31-preview", deployment_name="Deployment Name",)

如果你使用的是 Langchain 的 JS 包,可以直接使用原来的类,只需要把原来的参数改成其他的 Azure OpenAI API 参数就可以了,示例代码如下:

ChatOpenAI

openaiKey

import { ChatOpenAI } from 'langchain/chat_models/openai';const model = new ChatOpenAI({ azureOpenAIApiVersion: '2023-06-01-preview', azureOpenAIApiKey: 'Azure OpenAI API KEY', azureOpenAIBasePath: 'Azure OpenAI API URL', azureOpenAIApiDeploymentName: 'Deployment


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1