feat(ai): 新增AI对话与知识库功能模块
- 集成Fastjson2依赖优化JSON处理性能 - 配置专用文档处理异步线程池,提升任务并发处理能力 - 实现基于Spring AI的PgVectorStore向量存储配置 - 新增AI对话控制器,支持SSE流式对话及会话管理接口 - 新增AI知识库控制器,支持文件上传、文档管理及重新索引功能 - 定义AI对话和知识库相关的数据传输对象DTO与视图对象VO - 建立AI对话消息和文档向量的数据库实体与MyBatis Mapper - 实现AI对话服务接口及其具体业务逻辑,包括会话管理和RAG检索 - 完善安全校验和错误处理,确保接口调用的用户权限和参数有效性 - 提供对话消息流式响应机制,支持实时传输用户互动内容和引用文档信息
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
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 {
|
||||
@@ -20,4 +26,22 @@ public class SpringAiConfig {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user