一、准备工作

1.准备 OPENAI_ACCESS_TOKEN
2.准备好PostMan 软件

二、测试交流Demo

本次使用POSTMAN工具进行快速测试,旨在通过ChatGPT API实现有效的上下文流。在测试过程中,我们发现了三个问题:
1.如果您想要进行具有上下文的交流,每次POST请求都需要将历史交流信息放入“messages”对象中。这会导致token数量成倍增长,从而增加您的费用成本。
2.计费方式为请求提问token和回答token的总和。如下:

ChatGPT 返回数据中usage 对象。其中total_tokens为本次请求的计费token
usage : {
“prompt_tokens”: 177,
“completion_tokens”: 38,
“total_tokens”: 215
}

   3.每次POST请求都是独立的会话。

1.测试上下文提问

1.1 提问

// 提问Post body数据{"model": "gpt-3.5-turbo","messages": [{ "role": "system", "content": "You are a chatbot" },{ "role": "user", "content": "我能用中文向你提问题吗?" },{ "role": "assistant", "content": "当然可以,我可以用中文回答你的问题。请问你有什么需要帮助的吗?" },{ "role": "user", "content": "我想更好的与你交流,必须把每次交流信息告诉你是吗?" },{"role": "assistant","content": "是的,您需要输入您想要与我交流的信息,我才能理解并回答您的问题。如果您有任何疑问或需要帮助,请随时告诉我。"},{ "role": "user", "content": "我上句话说了什么?" }],"max_tokens": 70,"temperature": 0}

1.2 回复

// 返回response 数据{"id": "chatcmpl-77aodGL1ymzpU25nZse4DVQa7M9I8","object": "chat.completion","created": 1682044171,"model": "gpt-3.5-turbo-0301","usage": {"prompt_tokens": 177,"completion_tokens": 38,"total_tokens": 215},"choices": [{"message": {"role": "assistant","content": "您上句话说的是:“我想更好的与你交流,必须把每次交流信息告诉你是吗?”"},"finish_reason": "stop","index": 0}]}

2.测试单次提问

我是在 “测试 上下文提问”章节中Post请求后,紧挨执行下面Post请求。测试发现:每次Post请求都是独立会话,如果要实现上下文有效的交流就必须在单次Post请求中把上下文所有的交流内容都发送给ChatGPT。

1.1 提问

{"model": "gpt-3.5-turbo","messages": [{ "role": "system", "content": "You are a chatbot" },{ "role": "user", "content": "我上句话说了什么?" }],"max_tokens": 70,"temperature": 0}

1.2 回复

{"id": "chatcmpl-77b90YMOLlJ1fJEtdnDC3Li9E7DL0","object": "chat.completion","created": 1682045434,"model": "gpt-3.5-turbo-0301","usage": {"prompt_tokens": 29,"completion_tokens": 15,"total_tokens": 44},"choices": [{"message": {"role": "assistant","content": "您上句话说了:\"You are a chatbot\"。"},"finish_reason": "stop","index": 0}]}

三、PostMan使用

1.访问接口地址

接口地址:https://api.openai.com/v1/chat/completions
请求方式:POST

2.授权Authorization赋值

  1. Type选择Bearer Token
  2. Token输入:sk-******************** (来源OpenAI:OPENAI_ACCESS_TOKEN)

3. 选择body数据格式。

4. 点击“send”完成对象。