Task 4.1: 包名统一重构 - 重命名 41 个 Java 文件的包名 - 更新所有 import 语句 - 恢复枚举类(FaultCategory、DiagnosisStatus、SourceType) - 更新测试类的 import 重构范围: - domain/entity: 3 个实体类 - domain/model: 2 个数据类 - domain/enums: 3 个枚举类 - repository: 3 个接口 - service/session: 2 个类(接口 + 实现) - config: 9 个配置类 - controller: 2 个控制器 - agent/tool: 4 个工具类 - client: 1 个客户端 - Main.java: 主类 验证结果: - 编译成功,无错误 - 所有测试通过 (27/27) - ApiDocumentRepositoryTest: 7/7 ✅ - CaseLibraryRepositoryTest: 6/6 ✅ - DiagnosisRecordRepositoryTest: 6/6 ✅ - RedisSessionManagerTest: 8/8 ✅ Progress: 21/33 tasks completed (64%)
55 lines
2.0 KiB
Java
55 lines
2.0 KiB
Java
package com.superbiz.agent.config;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.ai.document.MetadataMode;
|
|
import org.springframework.ai.embedding.EmbeddingModel;
|
|
import org.springframework.ai.openai.OpenAiEmbeddingModel;
|
|
import org.springframework.ai.openai.OpenAiEmbeddingOptions;
|
|
import org.springframework.ai.openai.api.OpenAiApi;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.web.client.RestClient;
|
|
import org.springframework.web.reactive.function.client.WebClient;
|
|
|
|
/**
|
|
* SiliconFlow Embedding 配置(BGE-M3, OpenAI 兼容协议, 1024维)
|
|
* <p>
|
|
* Chat 走 DeepSeek、Embedding 走 SiliconFlow,两者都是 OpenAI 兼容但地址不同,
|
|
* 因此单独为 SiliconFlow 创建 OpenAiApi + EmbeddingModel Bean。
|
|
*/
|
|
@Configuration
|
|
public class SiliconFlowEmbeddingConfig {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(SiliconFlowEmbeddingConfig.class);
|
|
|
|
@Value("${siliconflow.api-key}")
|
|
private String apiKey;
|
|
|
|
@Value("${siliconflow.base-url}")
|
|
private String baseUrl;
|
|
|
|
@Value("${siliconflow.embedding.model}")
|
|
private String model;
|
|
|
|
@Bean
|
|
public OpenAiApi siliconFlowApi(RestClient.Builder restClientBuilder, WebClient.Builder webClientBuilder) {
|
|
log.info("创建 SiliconFlow OpenAiApi: {}", baseUrl);
|
|
return OpenAiApi.builder()
|
|
.baseUrl(baseUrl)
|
|
.apiKey(apiKey)
|
|
.restClientBuilder(restClientBuilder)
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
public EmbeddingModel siliconFlowEmbeddingModel(OpenAiApi siliconFlowApi) {
|
|
log.info("创建 SiliconFlow EmbeddingModel, model: {}", model);
|
|
return new OpenAiEmbeddingModel(siliconFlowApi, MetadataMode.EMBED,
|
|
OpenAiEmbeddingOptions.builder()
|
|
.model(model)
|
|
.build());
|
|
}
|
|
}
|