IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    admin发表于 2023-08-13 06:47:24
    love 0

    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响应仍在进行中或不完整

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



沪ICP备19023445号-2号
友情链接