This commit is contained in:
Looly 2025-04-01 16:57:54 +08:00
parent b7c3659f64
commit 17baf2e388
7 changed files with 159 additions and 107 deletions

View File

@ -44,13 +44,18 @@ public class DeepSeekServiceImpl extends BaseAIService implements DeepSeekServic
//余额查询
private final String BALANCE_ENDPOINT = "/user/balance";
/**
* 构造函数
*
* @param config AI配置
*/
public DeepSeekServiceImpl(final AIConfig config) {
//初始化DeepSeek客户端
super(config);
}
@Override
public String chat(String prompt) {
public String chat(final String prompt) {
// 定义消息结构
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system", "You are a helpful assistant"));
@ -60,27 +65,27 @@ public class DeepSeekServiceImpl extends BaseAIService implements DeepSeekServic
@Override
public String chat(final List<Message> messages) {
String paramJson = buildChatRequestBody(messages);
Response response = sendPost(CHAT_ENDPOINT, paramJson);
final String paramJson = buildChatRequestBody(messages);
final Response response = sendPost(CHAT_ENDPOINT, paramJson);
return response.bodyStr();
}
@Override
public String beta(String prompt) {
String paramJson = buildBetaRequestBody(prompt);
Response response = sendPost(BETA_ENDPOINT, paramJson);
public String beta(final String prompt) {
final String paramJson = buildBetaRequestBody(prompt);
final Response response = sendPost(BETA_ENDPOINT, paramJson);
return response.bodyStr();
}
@Override
public String models() {
Response response = sendGet(MODELS_ENDPOINT);
final Response response = sendGet(MODELS_ENDPOINT);
return response.bodyStr();
}
@Override
public String balance() {
Response response = sendGet(BALANCE_ENDPOINT);
final Response response = sendGet(BALANCE_ENDPOINT);
return response.bodyStr();
}
@ -97,7 +102,7 @@ public class DeepSeekServiceImpl extends BaseAIService implements DeepSeekServic
}
// 构建beta请求体
private String buildBetaRequestBody(String prompt) {
private String buildBetaRequestBody(final String prompt) {
// 定义消息结构
//使用JSON工具
final Map<String, Object> paramMap = new HashMap<>();

View File

@ -29,13 +29,13 @@ class AIServiceFactoryTest {
@Test
void getAIService() {
AIService aiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build());
final AIService aiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build());
assertNotNull(aiService);
}
@Test
void testGetAIService() {
DeepSeekService deepSeekService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), DeepSeekService.class);
final DeepSeekService deepSeekService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), DeepSeekService.class);
assertNotNull(deepSeekService);
}
}

View File

@ -36,52 +36,52 @@ class AIUtilTest {
@Test
void getAIService() {
DeepSeekService deepSeekService = AIUtil.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), DeepSeekService.class);
final DeepSeekService deepSeekService = AIUtil.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), DeepSeekService.class);
assertNotNull(deepSeekService);
}
@Test
void testGetAIService() {
AIService aiService = AIUtil.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue()).setApiKey(key).build());
final AIService aiService = AIUtil.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue()).setApiKey(key).build());
assertNotNull(aiService);
}
@Test
void getDeepSeekService() {
DeepSeekService deepSeekService = AIUtil.getDeepSeekService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build());
final DeepSeekService deepSeekService = AIUtil.getDeepSeekService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build());
assertNotNull(deepSeekService);
}
@Test
void getDoubaoService() {
DoubaoService doubaoService = AIUtil.getDoubaoService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).build());
final DoubaoService doubaoService = AIUtil.getDoubaoService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).build());
assertNotNull(doubaoService);
}
@Test
void getGrokService() {
GrokService grokService = AIUtil.getGrokService(new AIConfigBuilder(ModelName.GROK.getValue()).setApiKey(key).build());
final GrokService grokService = AIUtil.getGrokService(new AIConfigBuilder(ModelName.GROK.getValue()).setApiKey(key).build());
assertNotNull(grokService);
}
@Test
void getOpenAIService() {
OpenaiService openAIService = AIUtil.getOpenAIService(new AIConfigBuilder(ModelName.OPENAI.getValue()).setApiKey(key).build());
final OpenaiService openAIService = AIUtil.getOpenAIService(new AIConfigBuilder(ModelName.OPENAI.getValue()).setApiKey(key).build());
assertNotNull(openAIService);
}
@Test
void chat() {
String chat = AIUtil.chat(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), "写一首赞美我的诗");
final String chat = AIUtil.chat(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), "写一首赞美我的诗");
assertNotNull(chat);
}
@Test
void testChat() {
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是财神爷,只会说“我是财神”"));
messages.add(new Message("user","你是谁啊?"));
String chat = AIUtil.chat(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), messages);
final String chat = AIUtil.chat(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(), messages);
System.out.println(chat);
}
}

View File

@ -20,6 +20,7 @@ import org.dromara.hutool.ai.AIServiceFactory;
import org.dromara.hutool.ai.ModelName;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.Message;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@ -31,35 +32,40 @@ class DeepSeekServiceTest {
DeepSeekService deepSeekService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DEEPSEEK.getValue()).setApiKey(key).build(),DeepSeekService.class);
@Test
@Disabled
void chat(){
String chat = deepSeekService.chat("写一个疯狂星期四广告词");
final String chat = deepSeekService.chat("写一个疯狂星期四广告词");
System.out.println(chat);
}
@Test
@Disabled
void testChat(){
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,会说很抽象的话,最擅长说抽象的笑话"));
messages.add(new Message("user","给我说一个笑话"));
String chat = deepSeekService.chat(messages);
final String chat = deepSeekService.chat(messages);
System.out.println(chat);
}
@Test
@Disabled
void beta() {
String beta = deepSeekService.beta("写一个疯狂星期四广告词");
final String beta = deepSeekService.beta("写一个疯狂星期四广告词");
System.out.println(beta);
}
@Test
@Disabled
void models() {
String models = deepSeekService.models();
final String models = deepSeekService.models();
System.out.println(models);
}
@Test
@Disabled
void balance() {
String balance = deepSeekService.balance();
final String balance = deepSeekService.balance();
System.out.println(balance);
}
}

View File

@ -22,6 +22,7 @@ import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.swing.img.ImgUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.awt.*;
@ -35,143 +36,159 @@ class DoubaoServiceTest {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setModel(Models.Doubao.DOUBAO_1_5_LITE_32K.getModel()).setApiKey(key).build(), DoubaoService.class);
@Test
@Disabled
void chat(){
String chat = doubaoService.chat("写一个疯狂星期四广告词");
final String chat = doubaoService.chat("写一个疯狂星期四广告词");
System.out.println(chat);
}
@Test
@Disabled
void testChat(){
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,会说很抽象的话,最擅长说抽象的笑话"));
messages.add(new Message("user","给我说一个笑话"));
String chat = doubaoService.chat(messages);
final String chat = doubaoService.chat(messages);
System.out.println(chat);
}
@Test
@Disabled
void chatVision() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel(Models.Doubao.DOUBAO_1_5_VISION_PRO_32K.getModel()).build(), DoubaoService.class);
String base64 = ImgUtil.toBase64DataUri(Toolkit.getDefaultToolkit().createImage("your imageUrl"), "png");
String chatVision = doubaoService.chatVision("图片上有些什么?", Arrays.asList(base64));
final String base64 = ImgUtil.toBase64DataUri(Toolkit.getDefaultToolkit().createImage("your imageUrl"), "png");
final String chatVision = doubaoService.chatVision("图片上有些什么?", Arrays.asList(base64));
System.out.println(chatVision);
}
@Test
@Disabled
void testChatVision() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel(Models.Doubao.DOUBAO_1_5_VISION_PRO_32K.getModel()).build(), DoubaoService.class);
String chatVision = doubaoService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544"),DoubaoCommon.DoubaoVision.HIGH.getDetail());
final String chatVision = doubaoService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544"),DoubaoCommon.DoubaoVision.HIGH.getDetail());
System.out.println(chatVision);
}
@Test
@Disabled
void videoTasks() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
String videoTasks = doubaoService.videoTasks("生成一段动画视频,主角是大耳朵图图,一个活泼可爱的小男孩。视频中图图在公园里玩耍," +
final String videoTasks = doubaoService.videoTasks("生成一段动画视频,主角是大耳朵图图,一个活泼可爱的小男孩。视频中图图在公园里玩耍," +
"画面采用明亮温暖的卡通风格,色彩鲜艳,动作流畅。背景音乐轻快活泼,带有冒险感,音效包括鸟叫声、欢笑声和山洞回声。", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
System.out.println(videoTasks);//cgt-20250306170051-6r9gk
}
@Test
@Disabled
void getVideoTasksInfo() {
//cgt-20250306170051-6r9gk
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).build(), DoubaoService.class);
String videoTasksInfo = doubaoService.getVideoTasksInfo("cgt-20250306170051-6r9gk");
final String videoTasksInfo = doubaoService.getVideoTasksInfo("cgt-20250306170051-6r9gk");
System.out.println(videoTasksInfo);
}
@Test
@Disabled
void embeddingText() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel(Models.Doubao.DOUBAO_EMBEDDING_TEXT_240715.getModel()).build(), DoubaoService.class);
String embeddingText = doubaoService.embeddingText(new String[]{"阿斯顿", "马丁"});
final String embeddingText = doubaoService.embeddingText(new String[]{"阿斯顿", "马丁"});
System.out.println(embeddingText);
}
@Test
@Disabled
void embeddingVision() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel(Models.Doubao.DOUBAO_EMBEDDING_VISION.getModel()).build(), DoubaoService.class);
String embeddingVision = doubaoService.embeddingVision("天空好难", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
final String embeddingVision = doubaoService.embeddingVision("天空好难", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
System.out.println(embeddingVision);
}
@Test
@Disabled
void botsChat() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your bots id").build(), DoubaoService.class);
ArrayList<Message> messages = new ArrayList<>();
final ArrayList<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是什么都可以"));
messages.add(new Message("user","你想做些什么"));
String botsChat = doubaoService.botsChat(messages);
final String botsChat = doubaoService.botsChat(messages);
System.out.println(botsChat);
}
@Test
@Disabled
void tokenization() {
String tokenization = doubaoService.tokenization(new String[]{"阿斯顿", "马丁"});
final String tokenization = doubaoService.tokenization(new String[]{"阿斯顿", "马丁"});
System.out.println(tokenization);
}
@Test
@Disabled
void batchChat() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
String batchChat = doubaoService.batchChat("写首歌词");
final String batchChat = doubaoService.batchChat("写首歌词");
System.out.println(batchChat);
}
@Test
@Disabled
void testBatchChat() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师"));
messages.add(new Message("user","写一个KFC的抽象广告"));
String batchChat = doubaoService.batchChat(messages);
final String batchChat = doubaoService.batchChat(messages);
System.out.println(batchChat);
}
@Test
@Disabled
void createContext() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,你真的很抽象"));
String context = doubaoService.createContext(messages);//ctx-20250307092153-cvslm
final String context = doubaoService.createContext(messages);//ctx-20250307092153-cvslm
System.out.println(context);
}
@Test
@Disabled
void testCreateContext() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,你真的很抽象"));
String context = doubaoService.createContext(messages,DoubaoCommon.DoubaoContext.COMMON_PREFIX.getMode());
final String context = doubaoService.createContext(messages,DoubaoCommon.DoubaoContext.COMMON_PREFIX.getMode());
System.out.println(context);//ctx-20250307092153-cvslm
}
@Test
@Disabled
void chatContext() {
//ctx-20250307092153-cvslm
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("eyour Endpoint ID").build(), DoubaoService.class);
String chatContext = doubaoService.chatContext("你是谁?", "ctx-20250307092153-cvslm");
final String chatContext = doubaoService.chatContext("你是谁?", "ctx-20250307092153-cvslm");
System.out.println(chatContext);
}
@Test
@Disabled
void testChatContext() {
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
final DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue())
.setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("user","你怎么看待意大利面拌水泥?"));
String chatContext = doubaoService.chatContext(messages, "ctx-20250307092153-cvslm");
final String chatContext = doubaoService.chatContext(messages, "ctx-20250307092153-cvslm");
System.out.println(chatContext);
}
}

View File

@ -22,6 +22,7 @@ import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.swing.img.ImgUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.awt.*;
@ -38,74 +39,85 @@ class GrokServiceTest {
@Test
@Disabled
void chat(){
String chat = grokService.chat("写一个疯狂星期四广告词");
final String chat = grokService.chat("写一个疯狂星期四广告词");
System.out.println(chat);
}
@Test
@Disabled
void testChat(){
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,会说很抽象的话,最擅长说抽象的笑话"));
messages.add(new Message("user","给我说一个笑话"));
String chat = grokService.chat(messages);
final String chat = grokService.chat(messages);
System.out.println(chat);
}
@Test
@Disabled
void message() {
String message = grokService.message("给我一个KFC的广告词", 4096);
final String message = grokService.message("给我一个KFC的广告词", 4096);
System.out.println(message);
}
@Test
@Disabled
void chatVision() {
GrokService grokService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.GROK.getValue()).setModel(Models.Grok.GROK_2_VISION_1212.getModel()).setApiKey(key).build(), GrokService.class);
String base64 = ImgUtil.toBase64DataUri(Toolkit.getDefaultToolkit().createImage("your imageUrl"), "png");
String chatVision = grokService.chatVision("图片上有些什么?", Arrays.asList(base64));
final GrokService grokService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.GROK.getValue()).setModel(Models.Grok.GROK_2_VISION_1212.getModel()).setApiKey(key).build(), GrokService.class);
final String base64 = ImgUtil.toBase64DataUri(Toolkit.getDefaultToolkit().createImage("your imageUrl"), "png");
final String chatVision = grokService.chatVision("图片上有些什么?", Arrays.asList(base64));
System.out.println(chatVision);
}
@Test
@Disabled
void testChatVision() {
GrokService grokService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.GROK.getValue()).setModel(Models.Grok.GROK_2_VISION_1212.getModel()).setApiKey(key).build(), GrokService.class);
String chatVision = grokService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544"));
final GrokService grokService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.GROK.getValue()).setModel(Models.Grok.GROK_2_VISION_1212.getModel()).setApiKey(key).build(), GrokService.class);
final String chatVision = grokService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544"));
System.out.println(chatVision);
}
@Test
@Disabled
void models() {
String models = grokService.models();
final String models = grokService.models();
assertNotNull(models);
}
@Test
@Disabled
void getModel() {
String model = grokService.getModel("");
final String model = grokService.getModel("");
assertNotNull(model);
}
@Test
@Disabled
void languageModels() {
String languageModels = grokService.languageModels();
final String languageModels = grokService.languageModels();
assertNotNull(languageModels);
}
@Test
@Disabled
void getLanguageModel() {
String language = grokService.getLanguageModel("");
final String language = grokService.getLanguageModel("");
assertNotNull(language);
}
@Test
@Disabled
void tokenizeText() {
String tokenizeText = grokService.tokenizeText(key);
final String tokenizeText = grokService.tokenizeText(key);
assertNotNull(tokenizeText);
}
@Test
@Disabled
void deferredCompletion() {
String deferred = grokService.deferredCompletion(key);
final String deferred = grokService.deferredCompletion(key);
assertNotNull(deferred);
}
}

View File

@ -22,6 +22,7 @@ import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.core.io.file.FileUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.io.File;
@ -42,112 +43,123 @@ class OpenaiServiceTest {
@Test
@Disabled
void chat(){
String chat = openaiService.chat("写一个疯狂星期四广告词");
final String chat = openaiService.chat("写一个疯狂星期四广告词");
System.out.println(chat);
}
@Test
@Disabled
void testChat(){
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是个抽象大师,会说很抽象的话,最擅长说抽象的笑话"));
messages.add(new Message("user","给我说一个笑话"));
String chat = openaiService.chat(messages);
final String chat = openaiService.chat(messages);
System.out.println(chat);
}
@Test
@Disabled
void chatVision() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.GPT_4O_MINI.getModel()).build(), OpenaiService.class);
String chatVision = openaiService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544","https://img2.baidu.com/it/u=1682510685,1244554634&fm=253&fmt=auto&app=138&f=JPEG?w=803&h=800"));
final String chatVision = openaiService.chatVision("图片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544","https://img2.baidu.com/it/u=1682510685,1244554634&fm=253&fmt=auto&app=138&f=JPEG?w=803&h=800"));
System.out.println(chatVision);
}
@Test
@Disabled
void imagesGenerations() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.DALL_E_3.getModel()).build(), OpenaiService.class);
String imagesGenerations = openaiService.imagesGenerations("一位年轻的宇航员站在未来感十足的太空站内,透过巨大的弧形落地窗凝望浩瀚宇宙。窗外,璀璨的星河与五彩斑斓的星云交织,远处隐约可见未知星球的轮廓,仿佛在召唤着探索的脚步。宇航服上的呼吸灯与透明显示屏上的星图交相辉映,象征着人类科技与宇宙奥秘的碰撞。画面深邃而神秘,充满对未知的渴望与无限可能的想象。");
final String imagesGenerations = openaiService.imagesGenerations("一位年轻的宇航员站在未来感十足的太空站内,透过巨大的弧形落地窗凝望浩瀚宇宙。窗外,璀璨的星河与五彩斑斓的星云交织,远处隐约可见未知星球的轮廓,仿佛在召唤着探索的脚步。宇航服上的呼吸灯与透明显示屏上的星图交相辉映,象征着人类科技与宇宙奥秘的碰撞。画面深邃而神秘,充满对未知的渴望与无限可能的想象。");
System.out.println(imagesGenerations);
//https://oaidalleapiprodscus.blob.core.windows.net/private/org-l99H6T0zCZejctB2TqdYrXFB/user-LilDVU1V8cUxJYwVAGRkUwYd/img-yA9kNatHnBiUHU5lZGim1hP2.png?st=2025-03-07T01%3A04%3A18Z&se=2025-03-07T03%3A04%3A18Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=d505667d-d6c1-4a0a-bac7-5c84a87759f8&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-03-06T15%3A04%3A42Z&ske=2025-03-07T15%3A04%3A42Z&sks=b&skv=2024-08-04&sig=rjcRzC5U7Y3pEDZ4ME0CiviAPdIpoGO2rRTXw3m8rHw%3D
}
@Test
@Disabled
void imagesEdits() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.DALL_E_2.getModel()).build(), OpenaiService.class);
File file = FileUtil.file("your imgUrl");
String imagesEdits = openaiService.imagesEdits("茂密的森林中,有一只九色鹿若隐若现",file);
final File file = FileUtil.file("your imgUrl");
final String imagesEdits = openaiService.imagesEdits("茂密的森林中,有一只九色鹿若隐若现",file);
System.out.println(imagesEdits);
}
@Test
@Disabled
void imagesVariations() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.DALL_E_2.getModel()).build(), OpenaiService.class);
File file = FileUtil.file("your imgUrl");
String imagesVariations = openaiService.imagesVariations(file);
final File file = FileUtil.file("your imgUrl");
final String imagesVariations = openaiService.imagesVariations(file);
System.out.println(imagesVariations);
}
@Test
@Disabled
void textToSpeech() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.TTS_1_HD.getModel()).build(), OpenaiService.class);
InputStream inputStream = openaiService.textToSpeech("万里山河一夜白,\n" +
final InputStream inputStream = openaiService.textToSpeech("万里山河一夜白,\n" +
"千峰尽染玉龙哀。\n" +
"长风卷起琼花碎,\n" +
"直上九霄揽月来。", OpenaiCommon.OpenaiSpeech.NOVA);
String filePath = "your filePath";
Path path = Paths.get(filePath);
try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
final String filePath = "your filePath";
final Path path = Paths.get(filePath);
try (final FileOutputStream outputStream = new FileOutputStream(filePath)) {
Files.createDirectories(path.getParent());
byte[] buffer = new byte[1024];
final byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
} catch (final IOException e) {
throw new RuntimeException(e);
}
}
@Test
@Disabled
void speechToText() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.WHISPER_1.getModel()).build(), OpenaiService.class);
File file = FileUtil.file("your filePath");
String speechToText = openaiService.speechToText(file);
final File file = FileUtil.file("your filePath");
final String speechToText = openaiService.speechToText(file);
System.out.println(speechToText);
}
@Test
@Disabled
void embeddingText() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.TEXT_EMBEDDING_3_SMALL.getModel()).build(), OpenaiService.class);
String embeddingText = openaiService.embeddingText("萬里山河一夜白,千峰盡染玉龍哀,長風捲起瓊花碎,直上九霄闌月來");
final String embeddingText = openaiService.embeddingText("萬里山河一夜白,千峰盡染玉龍哀,長風捲起瓊花碎,直上九霄闌月來");
System.out.println(embeddingText);
}
@Test
@Disabled
void moderations() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.OMNI_MODERATION_LATEST.getModel()).build(), OpenaiService.class);
String moderations = openaiService.moderations("你要杀人", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
final String moderations = openaiService.moderations("你要杀人", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
System.out.println(moderations);
}
@Test
@Disabled
void chatReasoning() {
OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
final OpenaiService openaiService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.OPENAI.getValue())
.setApiKey(key).setModel(Models.Openai.O3_MINI.getModel()).build(), OpenaiService.class);
List<Message> messages = new ArrayList<>();
final List<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是现代抽象家"));
messages.add(new Message("user","给我一个KFC疯狂星期四的文案"));
String chatReasoning = openaiService.chatReasoning(messages, OpenaiCommon.OpenaiReasoning.HIGH.getEffort());
final String chatReasoning = openaiService.chatReasoning(messages, OpenaiCommon.OpenaiReasoning.HIGH.getEffort());
System.out.println(chatReasoning);
}
}