当前位置:   article > 正文

Java调用ChatGPT的API接口实现对话与图片生成_java对接chatgpt 生成文字,文章,图片

java对接chatgpt 生成文字,文章,图片

步骤1:配置代理

有些魔法是需要做配置的。否则无法正确实现代码测试。这里以我使用的工具为例说明。


步骤2:添加依赖

在pom.xml文件中添加:

<dependency>
	<groupId>com.theokanning.openai-gpt3-java</groupId>
	<artifactId>client</artifactId>
	<version>0.8.1</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

步骤3:编写Constants类

  • Constants类中,声明自己的API Key
public class Constants {
//大家填写自己的key,这个是瞎写的,没有用的
public static final String OPENAPI_TOKEN = "sk-JPPwaelHv5QwdN3CL97UKLMbo7XIJDRy";
}
  • 1
  • 2
  • 3
  • 4

其中,查看API Key的位置:
https://platform.openai.com/account/api-keys
余额查询:
https://platform.openai.com/account/usage


步骤4:实现问答交互

package com.atguigu.demo;
import com.atguigu.Constants;
import com.theokanning.openai.OpenAiService;
import com.theokanning.openai.completion.CompletionRequest;

public class Demo1 {
public static void main(String[] args) {
	String info1 = "Q: 能不能我写一封简短的情话,使用诗经的语言风格?A:";
	info(info1);
}
public static void info(String promptInfo){
	//注意:参数2用于设置超时时间
	OpenAiService service = new OpenAiService(Constants.OPENAPI_TOKEN,5000);
	CompletionRequest completionRequest = CompletionRequest.builder()
	.model("text-davinci-003") //使用的模型
	.prompt(promptInfo) //生成提示
	.temperature(0D) //创新采样
	.maxTokens(1000) //Token大小设置
	.topP(1D) //情绪采样。[0,1]:从悲观到乐观
	.frequencyPenalty(0D) //频率处罚系数。用来设置文本中出现重复词汇时的处罚参数
	.presencePenalty(0D) //重复处罚系数
	.build();
	service.createCompletion(completionRequest)
	.getChoices()
	.forEach(System.out::println);
	}
}
  • 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

步骤5:实现图片生成

package com.atguigu.demo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.atguigu.Constants;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;

public class Demo2 {
public static void main(String[] args) throws IOException {
	String json = "{" +
		"\"prompt\":\"古装将军\"," +
		"\"n\":1," +
		"\"size\":\"1024x1024\"," +
		"\"response_format\":\"url\"" +
		"}";
		show(json);
		}
		public static void show(String json) throws IOException{
		Document document =
		Jsoup.connect("https://api.openai.com/v1/images/generations")
		.header("Authorization", "Bearer " + Constants.OPENAPI_TOKEN)
		.header("Content-Type", "application/json")
		.ignoreHttpErrors(true)
		.ignoreContentType(true)
		.requestBody(json)
		.post();
		JSONObject jsonObject = JSON.parseObject(document.body().text());
		JSONArray data = jsonObject.getJSONArray("data");
		for (int i = 0; i < data.size(); i++) {
		JSONObject temp = data.getJSONObject(i);
		System.out.println(temp.get("url"));
		}
	}
}
  • 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

pom.xml文件中需要增加依赖:

<dependency>
	<groupId>org.jsoup</groupId>
	<artifactId>jsoup</artifactId>
	<version>1.14.3</version>
</dependency>
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.76</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/1020606
推荐阅读
相关标签
  

闽ICP备14008679号