Azure OpenAI 申请和使用

36 min read
  • Azure 订阅 - 免费创建订阅

  • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限

    目前,仅应用程序授予对此服务的访问权限。 可以通过在 https://aka.ms/oai/access 中填写表单来申请对 Azure OpenAI 服务的访问权限。 如果有任何问题,请在此存储库上提出问题以联系我们。

主页

https://portal.azure.com/?microsoft_azure_marketplace_ItemHideKey=microsoft_openai_tip#create/Microsoft.CognitiveServicesOpenAI

资源管理 > 密钥和终结点 中 获取密钥 位置/区域 终结点等相关信息

API

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/completions?api-version={api-version}
变量名称
ENDPOINT 从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可在“Azure OpenAI Studio”>“操场”>“代码视图”中找到该值。 示例终结点为:https://docs-test-001.openai.azure.com/
API-KEY 从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 KEY1KEY2
DEPLOYMENT-NAME 此值将对应于在部署模型时为部署选择的自定义名称。 此值可在 Azure 门户中的“资源管理”>“部署”下,或者在 Azure OpenAI Studio 中的“管理”>“部署”下找到此值。

请求正文

参数 类型 必需? 默认 说明
prompt 字符串或数组 可选 <|endoftext|> 生成完成的提示,其编码为字符串、字符串列表或令牌列表。 请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,则模型将像从新文档的开头一样生成。
max_tokens integer 可选 16 在完成中生成的最大令牌数。 提示加上 max_tokens 的令牌计数不能超过模型的上下文长度。 除最新模型(它支持 4096 个标记)外,大多数模型的上下文长度为 2048 个标记。
temperature 数字 可选 1 要使用的采样温度。 较高的值意味着模型将承担更多风险。 尝试将值设为 0.9 以获得更有创意的应用程序,将值设为 0 (argmax sampling) 以获得具有明确答案的应用程序。 我们通常建议更改此设置或 top_p,但不要同时更改这两者。
top_p 数字 可选 1 温度采样的替代方法,称为核采样,其中模型考虑具有 top_p 概率质量的令牌的结果。 所以 0.1 意味着只考虑包含前 10% 概率质量的令牌。 我们通常建议更改此设置或温度,但不要同时更改这两者。
logit_bias map 可选 Null 修改指定令牌在完成中出现的可能性。 接受 json 对象,该对象将令牌(由其在 GPT tokenizer 中的令牌 ID 指定)映射到从 -100 到 100 的关联偏差。 可以使用此 tokenizer 工具(适用于 GPT-2 和 GPT-3)将文本转换为令牌 ID。 在数学上,采样之前会将偏差添加到由模型生成的 logit 中。 具体效果因模型而异,但 -1 和 1 之间的值会减少或增加选择的可能性;-100 或 100 等值会导致相关令牌的禁止或独占选择。 例如,可以传递 {"50256": -100} 以防止生成 <|endoftext|> 令牌。
user string 可选 表示最终用户的唯一标识符,可帮助监视和检测滥用行为
n integer 可选 1 要为每个提示生成的完成数。 注意:由于此参数会生成许多完成,因此可能会快速消耗你的令牌配额。 谨慎使用并确保对 max_tokens 和 stop 进行了合理的设置。
stream boolean 可选 False 是否流式传输回部分进度。 如果设置,令牌将在可用时作为仅数据服务器发送的事件发送,流由数据终止:[DONE] 消息。
logprobs integer 可选 Null 包含有关 logprobs 最有可能的令牌和已选择的令牌的日志概率。 例如,如果 logprobs 为 10,则 API 将返回包含 10 个最有可能的令牌的列表。 API 将始终返回采样令牌的 logprob,因此响应中可能最多有 logprobs+1 个元素。 此参数不能与 gpt-35-turbo 一起使用。
suffix string 可选 Null 插入的文本完成后的后缀。
echo boolean 可选 False 除了完成之外,还要回显提示。 此参数不能与 gpt-35-turbo 一起使用。
stop 字符串或数组 可选 Null 最多四个序列,其中 API 将停止生成进一步的令牌。 返回的文本不包含停止序列。
presence_penalty 数字 可选 0 介于 -2.0 到 2.0 之间的数字。 正值会根据它们到目前为止是否出现在文本中来惩罚新令牌,从而增加模型谈论新主题的可能性。
frequency_penalty 数字 可选 0 介于 -2.0 到 2.0 之间的数字。 正值会根据它们到目前为止是否出现在文本中来惩罚新令牌,从而增加模型谈论新主题的可能性。
best_of integer 可选 1 在服务器端生成 best_of 完成并返回“最佳”(每个令牌的日志概率最低的参数)。 无法流式传输结果。 与 n 一起使用时,best_of 控制候选完成数,n 指定返回的完成数,best_of 的值必须大于 n 的值。 注意:由于此参数会生成许多完成,因此可能会快速消耗你的令牌配额。 谨慎使用并确保对 max_tokens 和 stop 进行了合理的设置。 此参数不能与 gpt-35-turbo 一起使用。

返回值

{
    "id": "cmpl-4kGh7iXtjW4lc9eGhff6Hp8C7btdQ",
    "object": "text_completion",
    "created": 1646932609,
    "model": "ada",
    "choices": [
        {
            "text": ", a dark line crossed",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ]
}

在示例响应中,finish_reason 等于 stop。 如果 finish_reason 等于 content_filter,请参阅我们的内容筛选指南,了解发生此情况的原因。

文档

https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/reference