package com.ruoyi.ai.config;
|
|
import dev.langchain4j.data.segment.TextSegment;
|
import dev.langchain4j.model.embedding.EmbeddingModel;
|
import dev.langchain4j.store.embedding.EmbeddingStore;
|
import dev.langchain4j.store.embedding.pinecone.PineconeEmbeddingStore;
|
import dev.langchain4j.store.embedding.pinecone.PineconeServerlessIndexConfig;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
/**
|
* @author :yys
|
* @date : 2025/5/2 21:07
|
*/
|
@Configuration
|
public class EmbeddingStoreConfig {
|
|
@Autowired
|
private EmbeddingModel embeddingModel;
|
|
@Bean
|
public EmbeddingStore<TextSegment> embeddingStore() {
|
//创建向量存储
|
return PineconeEmbeddingStore.builder()
|
.apiKey("pcsk_4SJLnh_tNB3wSLJU8tc4E5P28PcXX8eCLdURqZpVhg1FMV8CRYxjneWdzqRdB5Ftqooi9")
|
.index("xiaozhi-index")//如果指定的索引不存在,将创建一个新的索引
|
.nameSpace("xiaozhi-namespace") //如果指定的名称空间不存在,将创建一个新的名称 空间
|
.createIndex(PineconeServerlessIndexConfig.builder()
|
.cloud("AWS") //指定索引部署在 AWS 云服务上。
|
.region("us-east-1") //指定索引所在的 AWS 区域为 us-east-1。
|
.dimension(embeddingModel.dimension()) //指定索引的向量维度,该维度与 embeddedModel 生成的向量维度相同。
|
.build())
|
.build();
|
}
|
}
|