This commit is contained in:
choweli
2025-04-15 17:02:41 +08:00
parent b0e37e3ef3
commit 22d487624d
2867 changed files with 9839 additions and 10677 deletions

View File

@@ -7,9 +7,9 @@
<packaging>jar</packaging>
<parent>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-parent</artifactId>
<version>6.0.0-M22</version>
<version>7.0.0.M1</version>
</parent>
<artifactId>hutool-ai</artifactId>
@@ -17,34 +17,34 @@
<description>Hutool AI大模型封装</description>
<properties>
<Automatic-Module-Name>org.dromara.hutool.ai</Automatic-Module-Name>
<Automatic-Module-Name>cn.hutool.v7.ai</Automatic-Module-Name>
</properties>
<dependencies>
<dependency>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-http</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-log</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-json</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara.hutool</groupId>
<groupId>cn.hutool.v7</groupId>
<artifactId>hutool-swing</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>

View File

@@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
import org.dromara.hutool.core.exception.HutoolException;
import cn.hutool.v7.core.exception.HutoolException;
/**
* 异常处理类

View File

@@ -14,12 +14,12 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.core.AIServiceProvider;
import org.dromara.hutool.core.map.concurrent.SafeConcurrentHashMap;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.core.AIServiceProvider;
import cn.hutool.v7.core.map.concurrent.SafeConcurrentHashMap;
import java.util.Map;
import java.util.ServiceLoader;

View File

@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.ai.model.deepseek.DeepSeekService;
import org.dromara.hutool.ai.model.doubao.DoubaoService;
import org.dromara.hutool.ai.model.grok.GrokService;
import org.dromara.hutool.ai.model.openai.OpenaiService;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.ai.model.deepseek.DeepSeekService;
import cn.hutool.v7.ai.model.doubao.DoubaoService;
import cn.hutool.v7.ai.model.grok.GrokService;
import cn.hutool.v7.ai.model.openai.OpenaiService;
import java.util.List;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
/**
* 模型厂商的名称不指具体的模型

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
/**
* 各模型厂商包含的model指具体的模型

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import java.util.Map;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import java.lang.reflect.Constructor;

View File

@@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import org.dromara.hutool.core.map.concurrent.SafeConcurrentHashMap;
import cn.hutool.v7.core.map.concurrent.SafeConcurrentHashMap;
import java.util.Map;
import java.util.ServiceLoader;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import java.util.List;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
/**
* 用于加载AI服务,每一个通过SPI创建的AI服务都要实现此接口

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import org.dromara.hutool.ai.AIException;
import org.dromara.hutool.http.HttpGlobalConfig;
import org.dromara.hutool.http.HttpUtil;
import org.dromara.hutool.http.client.Response;
import org.dromara.hutool.http.meta.HeaderName;
import org.dromara.hutool.http.meta.Method;
import cn.hutool.v7.ai.AIException;
import cn.hutool.v7.http.HttpGlobalConfig;
import cn.hutool.v7.http.HttpUtil;
import cn.hutool.v7.http.client.Response;
import cn.hutool.v7.http.meta.HeaderName;
import cn.hutool.v7.http.meta.Method;
import java.util.Map;

View File

@@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
import org.dromara.hutool.core.map.concurrent.SafeConcurrentHashMap;
import cn.hutool.v7.core.map.concurrent.SafeConcurrentHashMap;
import java.util.Map;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;
/**
* 公共Message类

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.core;
package cn.hutool.v7.ai.core;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
/**
* deepSeek公共类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.BaseConfig;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.BaseConfig;
/**
* DeepSeek配置类初始化API接口地址设置默认的模型

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIServiceProvider;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIServiceProvider;
/**
* 创建DeepSeek服务实现类

View File

@@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
import org.dromara.hutool.ai.core.AIService;
import cn.hutool.v7.ai.core.AIService;
/**
* deepSeek支持的扩展接口

View File

@@ -14,13 +14,13 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.BaseAIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.http.client.Response;
import org.dromara.hutool.json.JSONUtil;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.BaseAIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.http.client.Response;
import cn.hutool.v7.json.JSONUtil;
import java.util.ArrayList;
import java.util.HashMap;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
/**
* doubao公共类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.BaseConfig;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.BaseConfig;
/**
* Doubao配置类初始化API接口地址设置默认的模型

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIServiceProvider;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIServiceProvider;
/**
* 创建Doubap服务实现类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.core.Message;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.core.Message;
import java.util.List;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.BaseAIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.http.client.Response;
import org.dromara.hutool.json.JSONUtil;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.BaseAIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.core.text.StrUtil;
import cn.hutool.v7.http.client.Response;
import cn.hutool.v7.json.JSONUtil;
import java.util.ArrayList;
import java.util.HashMap;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
/**
* grok公共类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.BaseConfig;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.BaseConfig;
/**
* Grok配置类初始化API接口地址设置默认的模型

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIServiceProvider;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIServiceProvider;
/**
* 创建Grok服务实现类

View File

@@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
import org.dromara.hutool.ai.core.AIService;
import cn.hutool.v7.ai.core.AIService;
import java.util.List;

View File

@@ -14,13 +14,13 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.BaseAIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.http.client.Response;
import org.dromara.hutool.json.JSONUtil;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.BaseAIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.http.client.Response;
import cn.hutool.v7.json.JSONUtil;
import java.util.ArrayList;
import java.util.HashMap;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
/**
* openai公共类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
import org.dromara.hutool.ai.Models;
import org.dromara.hutool.ai.core.BaseConfig;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.BaseConfig;
/**
* openai配置类初始化API接口地址设置默认的模型

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.AIServiceProvider;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.AIServiceProvider;
/**
* 创建Openai服务实现类

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.core.Message;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.core.Message;
import java.io.File;
import java.io.InputStream;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
import org.dromara.hutool.ai.core.AIConfig;
import org.dromara.hutool.ai.core.BaseAIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.http.client.Response;
import org.dromara.hutool.json.JSONUtil;
import cn.hutool.v7.ai.core.AIConfig;
import cn.hutool.v7.ai.core.BaseAIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.core.text.StrUtil;
import cn.hutool.v7.http.client.Response;
import cn.hutool.v7.json.JSONUtil;
import java.io.File;
import java.io.InputStream;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai.model;
package cn.hutool.v7.ai.model;

View File

@@ -21,4 +21,4 @@
* @since 6.0.0
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;

View File

@@ -0,0 +1,4 @@
cn.hutool.v7.ai.model.deepseek.DeepSeekConfig
cn.hutool.v7.ai.model.openai.OpenaiConfig
cn.hutool.v7.ai.model.doubao.DoubaoConfig
cn.hutool.v7.ai.model.grok.GrokConfig

View File

@@ -0,0 +1,4 @@
cn.hutool.v7.ai.model.deepseek.DeepSeekProvider
cn.hutool.v7.ai.model.openai.OpenaiProvider
cn.hutool.v7.ai.model.doubao.DoubaoProvider
cn.hutool.v7.ai.model.grok.GrokProvider

View File

@@ -1,4 +0,0 @@
org.dromara.hutool.ai.model.deepseek.DeepSeekConfig
org.dromara.hutool.ai.model.openai.OpenaiConfig
org.dromara.hutool.ai.model.doubao.DoubaoConfig
org.dromara.hutool.ai.model.grok.GrokConfig

View File

@@ -1,4 +0,0 @@
org.dromara.hutool.ai.model.deepseek.DeepSeekProvider
org.dromara.hutool.ai.model.openai.OpenaiProvider
org.dromara.hutool.ai.model.doubao.DoubaoProvider
org.dromara.hutool.ai.model.grok.GrokProvider

View File

@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.model.deepseek.DeepSeekService;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.model.deepseek.DeepSeekService;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

View File

@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.dromara.hutool.ai;
package cn.hutool.v7.ai;
import org.dromara.hutool.ai.core.AIConfigBuilder;
import org.dromara.hutool.ai.core.AIService;
import org.dromara.hutool.ai.core.Message;
import org.dromara.hutool.ai.model.deepseek.DeepSeekService;
import org.dromara.hutool.ai.model.doubao.DoubaoService;
import org.dromara.hutool.ai.model.grok.GrokService;
import org.dromara.hutool.ai.model.openai.OpenaiService;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.AIService;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.ai.model.deepseek.DeepSeekService;
import cn.hutool.v7.ai.model.doubao.DoubaoService;
import cn.hutool.v7.ai.model.grok.GrokService;
import cn.hutool.v7.ai.model.openai.OpenaiService;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;

View File

@@ -14,12 +14,12 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.deepseek;
package cn.hutool.v7.ai.model.deepseek;
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 cn.hutool.v7.ai.AIServiceFactory;
import cn.hutool.v7.ai.ModelName;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.Message;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.doubao;
package cn.hutool.v7.ai.model.doubao;
import org.dromara.hutool.ai.AIServiceFactory;
import org.dromara.hutool.ai.ModelName;
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 cn.hutool.v7.ai.AIServiceFactory;
import cn.hutool.v7.ai.ModelName;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.swing.img.ImgUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.grok;
package cn.hutool.v7.ai.model.grok;
import org.dromara.hutool.ai.AIServiceFactory;
import org.dromara.hutool.ai.ModelName;
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 cn.hutool.v7.ai.AIServiceFactory;
import cn.hutool.v7.ai.ModelName;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.swing.img.ImgUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.dromara.hutool.ai.model.openai;
package cn.hutool.v7.ai.model.openai;
import org.dromara.hutool.ai.AIServiceFactory;
import org.dromara.hutool.ai.ModelName;
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 cn.hutool.v7.ai.AIServiceFactory;
import cn.hutool.v7.ai.ModelName;
import cn.hutool.v7.ai.Models;
import cn.hutool.v7.ai.core.AIConfigBuilder;
import cn.hutool.v7.ai.core.Message;
import cn.hutool.v7.core.io.file.FileUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;