赞
踩
本文介绍如何使用Java与ChatGPT API交互,帮助您将ChatGPT模型的强大功能集成到Java应用程序中!
微信搜索关注《Java学研大本营》
ChatGPT作为一个由OpenAI训练的大型语言模型,提供了自然语言处理任务的人工智能服务。通过使用ChatGPT API,开发人员可以将ChatGPT模型的能力集成到他们的应用程序中。在本文中,我们将探讨如何使用Java与ChatGPT API交互。
在您使用ChatGPT API之前,需要从OpenAI获取API密钥。您可以在OpenAI网站上创建一个帐户,按照说明创建新的API密钥来完成此操作。API密钥是一长串字母和数字,您将使用它来验证API请求。
从Java发送API请求,您需要使用一个可以进行HTTP请求的库。我们建议使用OkHttp库,因为它易于使用,而且广受支持。
使用OkHttp,您需要将以下依赖项添加到Maven项目中:
- <dependency>
- <groupId>com.squareup.okhttp3</groupId>
- <artifactId>okhttp</artifactId>
- <version>4.9.1</version>
- </dependency>
如果您没有使用Maven,可以从官方网站下载OkHttp库并手动将其添加到项目中。
要发送API请求,您需要向ChatGPT API端点发送POST请求。端点URL为https://api.openai.com/v1/engine/davinci-codex/completions.
以下是使用OkHttp发送API请求的示例:
- import okhttp3.*;
-
- public class ChatGPTClient {
- private static final String API_URL = "https://api.openai.com/v1/engines/davinci-codex/completions";
-
- public static void main(String[] args) throws Exception {
- OkHttpClient client = new OkHttpClient();
-
- String prompt = "My name is";
- String apiKey = "YOUR_API_KEY";
-
- MediaType mediaType = MediaType.parse("application/json");
- RequestBody body = RequestBody.create(mediaType, "{\"prompt\": \"" + prompt + "\"}");
-
- Request request = new Request.Builder()
- .url(API_URL)
- .post(body)
- .addHeader("Authorization", "Bearer " + apiKey)
- .addHeader("Content-Type", "application/json")
- .build();
-
- Response response = client.newCall(request).execute();
- String responseBody = response.body().string();
-
- System.out.println(responseBody);
- }
- }
此代码使用“Hello, my name is”作为提示,向ChatGPT API发送完成请求,并将响应主体打印到控制台。您可以根据需要修改提示和其他参数。
发送API请求时,请求正文应包含一个JSON对象,其中包含完成请求的参数。必需的参数是“prompt”,用于指定要为其生成完成的输入文本。除此之外,您还可以设置可选参数,例如“temperature”、“max_tokens”和“top_p”来控制生成过程。
以下是一个完成请求JSON对象的示例:
- {
- "prompt": "Hello, my name is",
- "temperature": 0.5,
- "max_tokens": 50,
- "top_p": 1,
- "frequency_penalty": 0,
- "presence_penalty": 0
- }
您可以根据需要修改提示和其他参数。每个参数的含义如下:
- - "prompt": 指定生成完成所需的输入文本。
- - "temperature": 控制生成完成的随机性。较高的值会产生更多的随机完成。
- - "max_tokens": 指定每个生成完成中最多包含的标记数(单词或标点符号)。
- - "top_p": 控制生成的完成多样性。较低的值会产生更多的不同完成。
- - "frequency_penalty": 惩罚重复提示中的单词或短语的完成。
- - "presence_penalty": 惩罚包含提示中不存在的单词或短语的完成。
发送API请求后,您将收到一个包含生成完成的JSON对象。响应格式如下:
- {
- "choices": [
- {
- "text": "My name is John.",
- "index": 0,
- "logprobs": null,
- "finish_reason": "stop"
- },
- {
- "text": "My name is Sarah.",
- "index": 1,
- "logprobs": null,
- "finish_reason": "stop"
- },
- {
- "text": "My name is David.",
- "index": 2,
- "logprobs": null,
- "finish_reason": "stop"
- }
- ]
- }
“choices”数组包含一个或多个完成项,每个完成项都由一个JSON对象表示,包含以下字段:
- "text":生成的完成文本。
- "index":完成项在生成完成列表中的索引。
- "logprobs":完成中标记的对数概率,用于调试目的。
- "finish_reason":完成生成停止的原因。可能的值包括“stop”、“max_tokens”、“temperature”和“top_p”。
您可以使用Gson或Jackson等JSON库解析响应JSON对象,以下是使用Gson的示例代码:
- import com.google.gson.Gson;
-
- public class ChatGPTClient {
- // ...
-
- public static void main(String[] args) throws Exception {
- // ...
-
- Gson gson = new Gson();
- ChatGPTResponse response = gson.fromJson(responseBody, ChatGPTResponse.class);
- for (ChatGPTCompletion completion : response.choices) {
- System.out.println(completion.text);
- }
- }
-
- private static class ChatGPTResponse {
- private ChatGPTCompletion[] choices;
- }
-
- private static class ChatGPTCompletion {
- private String text;
- private int index;
- private Object logprobs;
- private String finish_reason;
- }
- }
此代码使用Gson将响应JSON对象解析为Java对象。ChatGPTResponse类表示顶级JSON对象,ChatGPTCompletion类表示每个完成对象。每个完成项的“text”字段将打印到控制台。
本文介绍了如何使用Java与ChatGPT API交互。通过发送带有正确头部和请求体的HTTP请求,并解析JSON响应,您可以将ChatGPT模型的强大功能集成到Java应用程序中。
《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具(IDEA、Eclipse),Java语言基础,流程控制,数组,类和对象,继承、多态、抽象类与接口,包和内部类,异常处理,字符串,常用类库,集合类,枚举类型与泛型,lambda表达式与流处理,I/O(输入/输出),反射与注解,数据库操作,Swing程序设计,Java绘图,多线程,并发,网络通信,飞机大战游戏,MR人脸识别打卡系统。书中所有知识都结合具体实例进行讲解,涉及的程序代码都给出了详细的注释,这可以帮助读者轻松领会Java程序开发的精髓,并快速提高开发技能。
《Java从入门到精通(第7版)》https://item.jd.com/14067396.html
精彩回顾
微信搜索关注《Java学研大本营》
访问【IT今日热榜】,发现每日技术热点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。