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