From 17baf2e38836a9f564139f079f98922e6c5ce4a5 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 1 Apr 2025 16:57:54 +0800 Subject: [PATCH] fix test --- .../model/deepseek/DeepSeekServiceImpl.java | 23 +++-- .../hutool/ai/AIServiceFactoryTest.java | 4 +- .../org/dromara/hutool/ai/AIUtilTest.java | 18 ++-- .../model/deepseek/DeepSeekServiceTest.java | 18 ++-- .../ai/model/doubao/DoubaoServiceTest.java | 89 +++++++++++-------- .../hutool/ai/model/grok/GrokServiceTest.java | 42 +++++---- .../ai/model/openai/OpenaiServiceTest.java | 72 ++++++++------- 7 files changed, 159 insertions(+), 107 deletions(-) diff --git a/hutool-ai/src/main/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceImpl.java b/hutool-ai/src/main/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceImpl.java index ae891c088..b9897d36d 100644 --- a/hutool-ai/src/main/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceImpl.java +++ b/hutool-ai/src/main/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceImpl.java @@ -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 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 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 paramMap = new HashMap<>(); diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/AIServiceFactoryTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/AIServiceFactoryTest.java index 912cae25e..b87622b52 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/AIServiceFactoryTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/AIServiceFactoryTest.java @@ -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); } } diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/AIUtilTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/AIUtilTest.java index 3e986d879..ab7d46456 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/AIUtilTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/AIUtilTest.java @@ -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 messages = new ArrayList<>(); + final List 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); } } diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceTest.java index 2c1878704..47249046c 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/deepseek/DeepSeekServiceTest.java @@ -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 messages = new ArrayList<>(); + final List 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); } } diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/doubao/DoubaoServiceTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/doubao/DoubaoServiceTest.java index c053eb1a5..f3147f2b4 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/doubao/DoubaoServiceTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/doubao/DoubaoServiceTest.java @@ -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 messages = new ArrayList<>(); + final List 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 messages = new ArrayList<>(); + final ArrayList 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 messages = new ArrayList<>(); + final List 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 messages = new ArrayList<>(); + final List 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 messages = new ArrayList<>(); + final List 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 messages = new ArrayList<>(); + final List 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); } } diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/grok/GrokServiceTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/grok/GrokServiceTest.java index 4a3b63c13..13584798b 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/grok/GrokServiceTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/grok/GrokServiceTest.java @@ -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 messages = new ArrayList<>(); + final List 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); } } diff --git a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/openai/OpenaiServiceTest.java b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/openai/OpenaiServiceTest.java index e5536299d..55a88885d 100644 --- a/hutool-ai/src/test/java/org/dromara/hutool/ai/model/openai/OpenaiServiceTest.java +++ b/hutool-ai/src/test/java/org/dromara/hutool/ai/model/openai/OpenaiServiceTest.java @@ -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 messages = new ArrayList<>(); + final List 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 messages = new ArrayList<>(); + final List 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); } }