经验分享-如何使用http调用chatGPT-3.5-turbo模型API

         今天上午,就在工作群里收到了关于openAI发布chatGPT官方模型的消息分享。openAI这次的动作真的很快啊,没想到这么快就直接发布了chatGPT目前所使用的模型api。据Open AI在官方消息,本次开放了ChatGPT和Whisper的模型API,可以供用户使用并集成到他们的应用程序之中。本次发布的chatGPT的模型为[GPT-3.5-turbo],从openAI的官方网站上查询,已经可以查到这个模型的使用示例。本次发布的模型,能力上和目前我们用到的chatGPT是一模一样的,比之前开放的模型能力要强很多,同时在价格上还要更低,价格为0.002美元/每1000tokens ,比 之前的模型整整便宜了10倍!又好又便宜的典范!!

        废话少说,本文就简单的讲讲如何使用最新的[GPT-3.5-turbo]模型吧。

        从openAI官方文档里查阅了一下示例代码,官方提供了Python的示例代码,我们可以从中提取到所需要发送的报文内容。

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

Python示例代码

        可以发现,GPT-3.5-turbo的api需要发送的报文主体有"model"以及"messages"两个部分,其中messages可以发送多条记录。在message示例文本里,有三种角色,通过实测,这三种角色分别代表:

        ①system:可以理解为AI的人设

        ②user:用户发送的信息

        ③assistant:模型返回给你的信息

        这样,我们就知道通过上述信息,知道http需要发送的报文格式了(Json):

{
    "model":"gpt-3.5-turbo",
    "messages":[
        {"role": "system", "content": "你是一个编程助手,能够帮我编写C#代码,并且给我提示"},
        {"role": "user", "content": "你好,你叫什么名字"},
        {"role": "assistant", "content": "你好,我是一个语言模型AI,没有实体名字,你可以随意称呼我。"}
    ]
}

发送的报文格式样例

接口的访服务地址是什么呢?我问了下chatGPT,给我的答案是:

https://api.openai.com/v1/chat/completions

Header信息:

①ContentType:application/json

②Authorization:Bearer 你的apikey

        使用api调试助手实测一下,在Header里写入你的api key;raw信息选择json,根据你的需要发送Json报文,openAI返回的数据格式如下所示:

{
    "id": "chatcmpl-6pWU3qzNuTBLU7U0tUw6NqaQhWbHF",
    "object": "chat.completion",
    "created": 1677737615,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 39,
        "completion_tokens": 35,
        "total_tokens": 74
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "您好,我是个AI助手,没有具体的名字。您需要我帮助您处理json文件格式吗?"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

接口返回的报文格式

        拿到接口返回的Json数据,根据自己的需要解析就可以了,这里"content"里的文本就是接口返回给你的回答了。

        注意:有一点要注意,观察发送的报文格式,可以发现,接口是希望我们把每次提问和接口返回的信息都放在报文里的,这样做可以让模型联系上下文,所以在自己编写代码的时候,记得把提问记录并更新到发送的报文主体里。

你可能感兴趣的:(unity,http,gpt-3,网络协议)