使用API调用ChatGPT

前提条件:

1. 能够科学上网

2. 在openai官网注册了账号

1. 获取Access Key

  1. 登录openai官网,查看Access key,地址:openai查看accesskey
  2. 创建好后复制AccessKey,将其保存(如果后面再想查看这个key,会发现key的信息被隐藏掉了,所以创建好后就及时保存)
  3. 准备工作已完成,下面提供两个文档:
    1. 聊天API简介:https://platform.openai.com/docs/guides/gpt/chat-completions-api
    2. 详细API参考文档:https://platform.openai.com/docs/guides/gpt/chat-completions-api

2. 使用Python调用GPT

  1. 安装openai的包:
    pip install openai
  2.  运行下列代码:
    import openai
    openai.api_key = "引号内换成你自己的AccessKey"
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "user", "content": "Where was it played?"}
        ]
    )
    print(response['choices'][0]['message']['content'])
  3. 运行结果如下:
  4. 在首次运行可能会遇到:
    openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api.openai.com’, port=443)

    这是因为环境内的urllib3版本是1.26.14版本,urllib3在1.26版本时增加了对HTTPS代理与HTTPS服务器联系的支持,需要将urllib3的版本降低到1.26以下即可,如:

    //卸载原有的urllib3
    pip uninstall urllib3
    //安装指定版本
    pip install urllib3==1.25.11
    //查看安装好的urllib3的版本
    pip list

    更换好版本之后如果还报错请仔细检查是否有科学上网

3. 请求和相应解析

请求参数:

请求参数有很多,其中必须的两个是model和message,其中官网的解释如下:

model:即选用的模型,官网提供的模型有gpt-4, gpt-3.5-turbo,babbage-002, davinci-002,text-davinci-003, text-davinci-002, davinci, curie, babbage, ada等,后面的这些是较早推出的版本,性能和效果不如前面的,所以如果不知道选什么模型就直接选择gpt-3.5-turbo。

messages:消息主题,其类型为列表,列表中每个元素为k-v键值对,其中,role和content是必要的。content即想要向gtp发送的内容主体,role分为四个,system,user,assistant和function,其中user即用户,表示这个消息是由用户发送的;assistant为gpt,表示这个消息是由gpt返回的。

其他参数参考:https://platform.openai.com/docs/api-reference/chat/create

返回参数:

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-3.5-turbo-0613",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为AI语言模型,ChatGPT可以通过API调用来实现自然语言处理。以下是使用Java代码调用ChatGPT API的步骤: 1. 导入必要的Java库,如OkHttp和Gson。 2. 创建一个OkHttpClient对象,用于发送HTTP请求。 3. 构建HTTP请求,包括URL、请求方法、请求头和请求体。 4. 发送HTTP请求,并获取响应。 5. 解析响应,获取ChatGPT返回的结果。 下面是一个简单的Java代码示例,用于调用ChatGPT API: ``` import okhttp3.*; import com.google.gson.Gson; public class ChatGPTClient { private static final String API_URL = "https://api.openai.com/v1/engines/davinci-codex/completions"; public static void main(String[] args) { OkHttpClient client = new OkHttpClient(); String prompt = "Hello, how are you?"; String apiKey = "YOUR_API_KEY"; RequestBody requestBody = new FormBody.Builder() .add("prompt", prompt) .add("max_tokens", "50") .add("temperature", ".5") .build(); Request request = new Request.Builder() .url(API_URL) .header("Authorization", "Bearer " + apiKey) .post(requestBody) .build(); try { Response response = client.newCall(request).execute(); String responseBody = response.body().string(); Gson gson = new Gson(); ChatGPTResponse chatGPTResponse = gson.fromJson(responseBody, ChatGPTResponse.class); String result = chatGPTResponse.choices.get().text; System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } } class ChatGPTResponse { public String id; public String object; public float created; public float model; public float choices; public float completion_time; public float prompt; public float temperature; public float max_tokens; public float top_p; public float frequency_penalty; public float presence_penalty; public float stop; public float n; public float logprobs; public float text; } ``` 在上面的代码中,我们使用OkHttp库来发送HTTP请求,并使用Gson库来解析响应。我们还定义了一个ChatGPTResponse类来存储ChatGPT API返回的结果。 要使用此代码,您需要将YOUR_API_KEY替换为您的OpenAI API密钥,并将prompt替换为您想要发送给ChatGPT的消息。然后,运行代码,您将获得ChatGPT返回的响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值