spring-ai-azure-cosmos-db-store-spring-boot-starter
依赖项添加到您的 pom.xml
文件中:
EmbeddingClient
实现来为您的文档生成向量嵌入。例如,您可以添加 spring-ai-openai-spring-boot-starter
以使用 OpenAI 的嵌入模型:
application.properties
或 application.yml
文件中配置 Azure Cosmos DB 和嵌入客户端属性。
create-container-if-not-exists
设置为 true
,则当容器尚不存在时,将使用提供的 indexing-policy
创建它。
如果容器已存在,则现有索引策略将保持不变,并且提供的 indexing-policy
配置将被忽略。
确保嵌入客户端输出的维度与索引策略中配置的 dimensions
匹配。VectorStore
VectorStore
bean 注入到您的组件中以与之交互:
CosmosDBVectorStore
Bean (可选)CosmosDBVectorStore
bean。但是,如果您需要自定义配置,可以定义自己的 bean:
vector-ivf
和 vector-hnsw
。索引的选择取决于您的特定用例和性能要求。
vector-ivf
(Inverted File Index):适用于大型数据集,并在准确性和查询速度之间提供良好的平衡。它将向量空间划分为簇,并在查询时仅搜索最相关的簇。vector-hnsw
(Hierarchical Navigable Small World):一种基于图的索引,以其高查询召回率和低延迟而闻名,尤其适用于高维数据。application.properties
中的 spring.ai.vectorstore.cosmosdb.indexing-policy.vector-indexes
下或在以编程方式配置 CosmosDBVectorStoreConfig
时配置索引类型、维度、距离函数和特定于类型的参数 (例如 num-lists
for IVF)。
genre
和 year
的文档,则可以按如下方式进行过滤:
EQ
, NE
, GT
, GTE
, LT
, LTE
)、逻辑运算符 (AND
, OR
, NOT
) 和 IN
/ NIN
。CosmosDBVectorStore
支持通过文档 ID 删除数据。