Files
ylhp-ai-project-manager/src/main/java/cn/yinlihupo/common/config/SpringAiConfig.java
JiaoTianBo d338490640 feat(ai): 新增AI对话与知识库功能模块
- 集成Fastjson2依赖优化JSON处理性能
- 配置专用文档处理异步线程池,提升任务并发处理能力
- 实现基于Spring AI的PgVectorStore向量存储配置
- 新增AI对话控制器,支持SSE流式对话及会话管理接口
- 新增AI知识库控制器,支持文件上传、文档管理及重新索引功能
- 定义AI对话和知识库相关的数据传输对象DTO与视图对象VO
- 建立AI对话消息和文档向量的数据库实体与MyBatis Mapper
- 实现AI对话服务接口及其具体业务逻辑,包括会话管理和RAG检索
- 完善安全校验和错误处理,确保接口调用的用户权限和参数有效性
- 提供对话消息流式响应机制,支持实时传输用户互动内容和引用文档信息
2026-03-30 16:33:47 +08:00

48 lines
1.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package cn.yinlihupo.common.config;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.ai.vectorstore.pgvector.PgVectorStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
/**
* Spring AI 配置类
* 配置ChatClient和向量存储
*/
@Configuration
public class SpringAiConfig {
/**
* 配置ChatClient
*
* @param builder ChatClient.Builder
* @return ChatClient
*/
@Bean
public ChatClient chatClient(ChatClient.Builder builder) {
return builder.build();
}
/**
* 配置PgVectorStore向量存储
* 使用@Primary标记覆盖Spring AI的自动配置
*
* @param jdbcTemplate JDBC模板
* @param embeddingModel 嵌入模型
* @return VectorStore
*/
@Bean
@Primary
public VectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel) {
return PgVectorStore.builder(jdbcTemplate, embeddingModel)
.dimensions(1536) // 向量维度,与配置一致
.distanceType(PgVectorStore.PgDistanceType.COSINE_DISTANCE)
.initializeSchema(true) // 自动初始化schema
.build();
}
}