当前位置:   article > 正文

关于openAI接口的使用(个人学习总结)_requset请求openai

requset请求openai

背景

在使用OpenAI API接口时遇到了许多问题,在此总结个人的问题(不代表大众),如要深究请看官方OpenAI-API接口文档(中文版)。

OpenAI

OpenAI的三种使用方法

1、使用OpenAI API
2、使用第三方库
3、自己训练模型
(我这里并非自己训练模型,只是课程项目需要,个人自学一下使用 OpenAI API,当然,需要有url和api_key。)

模型

调用OpenAI API时你得先确定你的用的是什么模型,比如我调用的是"gpt-3.5-turbo"。

python的openai库

我最开始使用的是网上的方法,flask框架里使用python的openai库
先下载

pip install openai
  • 1

然后就使用

# 填你的秘钥
openai.api_key = "***"

# 提问代码
def ask_test(prompt):
    # 你的问题
    prompt = prompt
    # 调用 ChatGPT 接口
    model_engine = "gpt-3.5-turbo"
    completion = openai.Completion.create(
        engine=model_engine,
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,
    )
    response = completion.choices[0].text
    print(response)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

但是试了一下,失败了,而且这里url也没用到,于是去查看别人翻译的中文文档(不是很懂completion的含义)

根据文档自定义request函数

查看了别人翻译的OpenAI API接口的中文文档以后,自己设置了request请求体函数

http请求构成

//这是定义http请求的构成(Header、data)
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer [输入自己的key]" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "写自己要问的内容"}],
     "temperature": 0.7
   }'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

请求头Authorization前面固定占7个字符(Bearer和一个空格)

接口的响应构成

根据文档,接口返回的响应构成应该是如下的:

{
   "id":"*****",
   "object":"chat.completion",
   "created":******,
   "model":"gpt-3.5-turbo",
   "usage":{
      "prompt_tokens":13,
      "completion_tokens":7,
      "total_tokens":20
   },
   "choices":[
      {
         "message":{
            "role":"assistant",
            "content":"返回的回答内容信息"
         },
         "finish_reason":"stop",
         "index":0
      }
   ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

然后就可以根据这些自己定义接收函数了。

自定义请求和接收函数

在别人的帮助下,我自定义了发送request的函数和接收response的函数

import requests

url = "https://openai.****/****/chat/completions"  #个人url
api_key = "********"	#个人的key

#定义请求头
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + api_key
}

#用于单词
def ask(content: str):
    msg = [
        {
        	#可以自定义AI模型需要完成的任务
            "role": "system",
            "content": "你现在是一个小学英语辅助教学助手,你只需要根据英文单词给出中文意思,你的任务也仅仅需要这样,请尽可能简洁,在翻译单词时给出单词的相关词性和例句和中英双语对照,要使用换行来区分,如果有超出翻译单词和句子之外的任务,请回复‘网络错误。’"
        },
        {
        	#设置问题
            "role": "user",
            "content": content
        }
    ]
    data = {
    	#设置模型型号
        "model": "gpt-3.5-turbo",
        "messages": msg,
    }
    #发送request请求
    result = requests.post(url, headers=headers, json=data).json()
    #result为得到的响应
    print(result)
    #根据响应体结构取出需要的答案的位置
    return result['choices'][0]['message']['content']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

然后只需要调用这个函数就可以了。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号