From f11f5e7656c8b2a6b1a4a1dcd857d6675858461e Mon Sep 17 00:00:00 2001 From: v-zhangjc9 Date: Fri, 13 Jun 2025 19:07:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(ai):=20=E8=B0=83=E6=95=B4=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 2 +- ...stSpringAIToolChat.java => TestModel.java} | 31 ++++---- .../service/ai/chat/TestSpringAiTools.java | 73 +++++++++++++++++++ .../service/ai/cli/LlamaSwapTool.java | 2 +- .../src/main/resources/application.yml | 4 +- 5 files changed, 92 insertions(+), 20 deletions(-) rename service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/{TestSpringAIToolChat.java => TestModel.java} (87%) create mode 100644 service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestSpringAiTools.java diff --git a/service-ai/service-ai-chat/src/main/resources/application.yml b/service-ai/service-ai-chat/src/main/resources/application.yml index 9f2a28c..5a98dbc 100644 --- a/service-ai/service-ai-chat/src/main/resources/application.yml +++ b/service-ai/service-ai-chat/src/main/resources/application.yml @@ -9,7 +9,7 @@ spring: api-key: ENC(K+Hff9QGC+fcyi510VIDd9CaeK/IN5WBJ9rlkUsHEdDgIidW+stHHJlsK0lLPUXXREha+ToQZqqDXJrqSE+GUKCXklFhelD8bRHFXBIeP/ZzT2cxhzgKUXgjw3S0Qw2R) chat: options: - model: 'Qwen3-1.7-vllm' + model: 'Qwen3/qwen3-1.7b' mvc: async: request-timeout: 3600000 diff --git a/service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestSpringAIToolChat.java b/service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestModel.java similarity index 87% rename from service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestSpringAIToolChat.java rename to service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestModel.java index e55eb78..94d15c6 100644 --- a/service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestSpringAIToolChat.java +++ b/service-ai/service-ai-chat/src/test/java/com/lanyuanxiaoyao/service/ai/chat/TestModel.java @@ -1,7 +1,9 @@ package com.lanyuanxiaoyao.service.ai.chat; +import cn.hutool.core.util.StrUtil; import java.io.IOException; import java.net.http.HttpClient; +import java.time.Duration; import java.util.Arrays; import java.util.List; import org.noear.solon.ai.rag.Document; @@ -25,12 +27,12 @@ import org.springframework.web.reactive.function.client.WebClient; * @author lanyuanxiaoyao * @version 20250514 */ -public class TestSpringAIToolChat { +public class TestModel { public static void main(String[] args) throws IOException { - testChatModel(); + // testChatModel(); testVisualModel(); - // testEmbeddingModel(); - // testRerankingModel(); + testEmbeddingModel(); + testRerankingModel(); } private static void testChatModel() { @@ -41,12 +43,14 @@ public class TestSpringAIToolChat { "Qwen3/qwen3-4b-q4km", "Qwen3/qwen3-8b-q4km" )) { + System.out.println(model); + long start = System.currentTimeMillis(); ChatClient client = chatClient(model); String content = client.prompt() - .user("你好") + .user("你好,详细介绍一下是谁,能帮我做什么?") .call() .content(); - System.out.println(content); + System.out.println(content.length() * 1000.0 / (System.currentTimeMillis() - start)); } } @@ -55,19 +59,17 @@ public class TestSpringAIToolChat { "Qwen2.5/qwen2.5-vl-7b", "Qwen2.5/qwen2.5-vl-7b-q4km", "Qwen2.5/qwen2.5-vl-3b-instruct", - "Qwen2.5/qwen2.5-vl-3b-instruct-awq", "Qwen2.5/qwen2.5-vl-7b-instruct", - "Qwen2.5/qwen2.5-vl-7b-instruct-awq", "MiniCPM/minicpm-o-2.6-7.6b", "MiniCPM/minicpm-o-2.6-7.6b-q4km" )) { ChatClient client = chatClient(model); String content = client.prompt() - .user(spec -> spec.text("图片中有什么").media(MimeTypeUtils.IMAGE_PNG, new FileSystemResource("/Users/lanyuanxiaoyao/Pictures/deepseek.png"))) + .user(spec -> spec.text("根据图片中的内容编一个童话小故事").media(MimeTypeUtils.IMAGE_PNG, new FileSystemResource("/Users/lanyuanxiaoyao/Pictures/deepseek.png"))) .call() .content(); - System.out.println(content); + System.out.println(StrUtil.trim(content)); } } @@ -78,9 +80,7 @@ public class TestSpringAIToolChat { "Qwen3/qwen3-embedding-4b-q4km", "Qwen3/qwen3-embedding-8b-q4km", "BGE/bge-m3", - "BGE/bge-m3-q4km", - "MiniCPM/minicpm-embedding", - "MiniCPM/minicpm-embedding-light" + "BGE/bge-m3-q4km" )) { EmbeddingModel embeddingModel = embeddingModel(model); float[] worlds = embeddingModel.embed("Hello world"); @@ -90,12 +90,10 @@ public class TestSpringAIToolChat { private static void testRerankingModel() throws IOException { for (String model : List.of( - "BGE/beg-reranker-v2", - "MiniCPM/minicpm-reranker", - "MiniCPM/minicpm-reranker-light", "BGE/beg-reranker-v2", "BGE/beg-reranker-v2-q4km" )) { + System.out.println(model); RerankingModel rerankingModel = rerankingModel(model); List list = rerankingModel.rerank( "你好", @@ -149,6 +147,7 @@ public class TestSpringAIToolChat { return RerankingModel.of("http://132.121.206.65:10086/v1/rerank") .model(model) .apiKey("*XMySqV%>hR&v>>g*NwCs3tpQ5FVMFEF2VHVTjhR&v>>g*NwCs3tpQ5FVMFEF2VHVTj