zhangwencui
9 天以前 f76bf27bf93e523ae4572d9e10e9ca541c324185
src/main/java/com/ruoyi/ai/config/EmbeddingStoreConfig.java
@@ -3,6 +3,7 @@
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
import dev.langchain4j.store.embedding.pinecone.PineconeEmbeddingStore;
import dev.langchain4j.store.embedding.pinecone.PineconeServerlessIndexConfig;
import io.pinecone.clients.Index;
@@ -26,6 +27,9 @@
    @Value("${pinecone.namespace:knowledge-base}")
    private String namespace;
    @Value("${pinecone.enabled:false}")
    private boolean pineconeEnabled;
    @Bean
    public Pinecone pinecone() {
        return new Pinecone.Builder(pineconeApiKey).build();
@@ -38,6 +42,11 @@
    @Bean
    public EmbeddingStore<TextSegment> embeddingStore(EmbeddingModel embeddingModel) {
        // 项目管理等核心业务不应因外部向量库不可用而无法启动。
        // 生产环境明确配置 pinecone.enabled=true 时仍使用原 Pinecone 存储。
        if (!pineconeEnabled) {
            return new InMemoryEmbeddingStore<>();
        }
        return PineconeEmbeddingStore.builder()
                .apiKey(pineconeApiKey)
                .index(indexName)