mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-02-07 21:10:05 +08:00
【代码优化】AI:完善 StabilityAiImageModelTests 单测,方便大家快速体验
This commit is contained in:
parent
6e64ae774e
commit
c5ed07a091
@ -20,7 +20,7 @@
|
|||||||
<description>
|
<description>
|
||||||
ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。
|
ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。
|
||||||
目前已接入各种模型,不限于:
|
目前已接入各种模型,不限于:
|
||||||
国内:通义千问、文心一言、讯飞星火
|
国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
|
||||||
国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
|
国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<description>
|
<description>
|
||||||
ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。
|
ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。
|
||||||
目前已接入各种模型,不限于:
|
目前已接入各种模型,不限于:
|
||||||
国内:通义千问、文心一言、讯飞星火
|
国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
|
||||||
国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
|
国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
/**
|
/**
|
||||||
* 从 https://github.com/spring-projects/spring-ai 拷贝。
|
* AI 大模型组件,基于 Spring AI 拓展
|
||||||
*
|
*
|
||||||
* 最大目的:适配 JDK8 兼容性
|
* models 包路径:
|
||||||
*
|
* 1. xinghuo 包:【讯飞】星火,自己实现
|
||||||
* 包路径:
|
* 2. deepseek 包:【深度求索】DeepSeek,自己实现
|
||||||
* 1. chat、parser、model、parser 包:https://github.com/spring-projects/spring-ai/tree/main/spring-ai-core 拷贝
|
* 3. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
|
||||||
* 2. models 包:对标 https://github.com/spring-projects/spring-ai/tree/main/models 拷贝
|
* 4. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
|
||||||
* 2.1 xinghuo 包:【讯飞】星火,自己实现
|
|
||||||
* 2.2 midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
|
|
||||||
* 2.3 suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
|
|
||||||
*/
|
*/
|
||||||
package cn.iocoder.yudao.framework.ai;
|
package cn.iocoder.yudao.framework.ai;
|
@ -35,6 +35,7 @@ public class OpenAiImageModelTests {
|
|||||||
|
|
||||||
// 方法调用
|
// 方法调用
|
||||||
ImageResponse response = imageClient.call(prompt);
|
ImageResponse response = imageClient.call(prompt);
|
||||||
|
// 打印结果
|
||||||
System.out.println(response);
|
System.out.println(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
package cn.iocoder.yudao.framework.ai.image;
|
||||||
|
|
||||||
|
import cn.hutool.core.codec.Base64;
|
||||||
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.ai.image.ImageOptions;
|
||||||
|
import org.springframework.ai.image.ImagePrompt;
|
||||||
|
import org.springframework.ai.image.ImageResponse;
|
||||||
|
import org.springframework.ai.openai.OpenAiImageOptions;
|
||||||
|
import org.springframework.ai.stabilityai.StabilityAiImageModel;
|
||||||
|
import org.springframework.ai.stabilityai.api.StabilityAiApi;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link StabilityAiImageModel} 集成测试类
|
||||||
|
*
|
||||||
|
* @author fansili
|
||||||
|
*/
|
||||||
|
public class StabilityAiImageModelTests {
|
||||||
|
|
||||||
|
private final StabilityAiApi imageApi = new StabilityAiApi(
|
||||||
|
"sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx");
|
||||||
|
private final StabilityAiImageModel imageClient = new StabilityAiImageModel(imageApi);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
public void testCall() {
|
||||||
|
// 准备参数
|
||||||
|
ImageOptions options = OpenAiImageOptions.builder()
|
||||||
|
.withModel("stable-diffusion-v1-6")
|
||||||
|
.withHeight(256).withWidth(256)
|
||||||
|
.build();
|
||||||
|
ImagePrompt prompt = new ImagePrompt("great wall", options);
|
||||||
|
|
||||||
|
// 方法调用
|
||||||
|
ImageResponse response = imageClient.call(prompt);
|
||||||
|
// 打印结果
|
||||||
|
String b64Json = response.getResult().getOutput().getB64Json();
|
||||||
|
System.out.println(response);
|
||||||
|
viewImage(b64Json);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void viewImage(String b64Json) {
|
||||||
|
// 创建一个 JFrame
|
||||||
|
JFrame frame = new JFrame("Byte Image Display");
|
||||||
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
frame.setSize(800, 600);
|
||||||
|
|
||||||
|
// 创建一个 JLabel 来显示图片
|
||||||
|
byte[] imageBytes = Base64.decode(b64Json);
|
||||||
|
JLabel label = new JLabel(new ImageIcon(imageBytes));
|
||||||
|
|
||||||
|
// 将 JLabel 添加到 JFrame
|
||||||
|
frame.getContentPane().add(label, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
// 显示 JFrame
|
||||||
|
frame.setVisible(true);
|
||||||
|
ThreadUtil.sleep(1, TimeUnit.HOURS);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user