Azure Openai 服务文档一站式学习系列(3)——OpenAI API的使用

GPT-35-Turbo和GPT-4模型是专为会话优化过的语言模型,采用会话输入和消息输出方式交互。在Azure OpenAI中提供了两种类型接口:

  • Chat Completion API(也有翻译称为 聊天补全API) :访问GPT-4唯一方式,兼容GPT-35-Turbo和GPT-4
  • Completion API with Chat Markup Language (ChatML):仅支持GPT-35-Turbo

作为产品经理,重点关注接口中需要的参数即可;代码实现还是交给专业的小伙伴来完成。下文主要以 Chat Completion API 为例进行说明。

//请求
import os
import openai
openai.api_type = "azure"
openai.api_version = "2023-05-15" 
openai.api_base = os.getenv("OPENAI_API_BASE")  # Your Azure OpenAI resource's endpoint value.
openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.ChatCompletion.create(
    engine="gpt-35-turbo", # The deployment name you chose when you deployed the GPT-35-Turbo or GPT-4 model.
    messages=[
        {"role": "system", "content": "这里是系统描述"},
        {"role": "user", "content": "这里是prompt或示例"},
        {"role": "assistant", "content": "这里是上文的回答"}, //可能无
        {"role": "user", "content": "这里是prompt"},
    ]
)

print(response)
print(response['choices'][0]['message']['content'])

输入是消息参数。消息必须是消息对象的数组,其中每个对象都有一个角色( “system”, “user”, “assistant”)和内容。对话可以短至一条信息,也可以多次来回转弯。

  • system:用于明确assistant的个性或语气,可选内容
  • user:指令或请求,需要assistant影响回复
  • assistant:模型的最终回复内容
//输出内容
{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "这里是返回结果",
        "role": "assistant"
      }
    }
  ],
  "created": 1677664795,
  "id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW",
  "model": "gpt-3.5-turbo-0613",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 17,
    "prompt_tokens": 57,
    "total_tokens": 74
  }
}

assistant回复主要是 content 部分,且每一个影响都有对应finish_reason;在交互中可根本该返回值去调整prompt或页面提醒

场景的finish_reason包含:

  • stop:正常状态,返回完整信息
  • length:token限制,输出不完整
  • function_call:调用其他函数
  • content_filter:内容被过滤
  • null:API响应仍在进行中或不完整

以上是最基础的接口调用规则,官方还提供了自定义函数的使用、自有数据的使用等。


本系列的所有文章:

  1. Azure Openai 服务文档一站式学习系列(1)——基础概念
  2. Azure Openai 服务文档一站式学习系列(2)——Prompt工程和技巧
  3. Azure Openai 服务文档一站式学习系列(3)——OpenAI API的使用
  4. Azure Openai 服务文档一站式学习系列(4)——API调用私有数据的能力
  5. Azure Openai 服务文档一站式学习系列(5)——Embeddings嵌入/向量化
  6. Azure Openai 服务文档一站式学习系列(6)——Fine-tuning微调
滚动至顶部