盘古大模型 PANGULARGEMODELS-Vector:向量库
向量库
向量库用于向量数据存储,提供向量数据检索能力。
- 初始化,以使用华为 CSS 示例。
from pangukitsappdev.api.memory.vector.factory import Vectors from pangukitsappdev.api.memory.vector.vector_config import VectorStoreConfig, ServerInfoCss from pangukitsappdev.api.embeddings.factory import Embeddings vector_store_config = VectorStoreConfig(store_name="css", index_name="your_index_name", embedding=Embeddings.of("css"), text_key="name", vector_fields=["description"], distance_strategy="inner_product", server_info=ServerInfoCss(env_prefix="sdk.memory.css")) vector_api = Vectors.of("css", vector_store_config)
- 数据入库
from pangukitsappdev.vectorstores.bulk_data import BulkData bulk_list = [BulkData(id="1", data={"name": "名称name1", "description": "foo"}), BulkData(id="2", data={"name": "名称name2", "description": "bar"}), BulkData(id="3", data={"name": "名称name3", "description": "baz"})] ] vector_api.add_docs(bulk_list)
- 数据检索
docs = vector_api.similarity_search("bar", top_k=2)
- 数据清理
vector_api.clear()
- CS S插件模式(内部已集成Embedding, 支持多字段组合向量检索)。
CSS插件模式,需要提前手工创建索引(因索引中需要指定embdding/rank模型,SDK不能简单自动创建)。
CSS插件模式,不支持clear删除索引接口(索引外部创建,应由外部删除)。
vector_store_config = VectorStoreConfig(store_name="css", index_name="your_index_name", text_key="name", vector_fields=["name", "description"], server_info=ServerInfoCss(env_prefix="sdk.memory.css")) vector_api = Vectors.of("css", vector_store_config) # 检索 docs = vector_api.similarity_search("bar", top_k=2) # 添加 bulk_list = [BulkData(id="1", data={"name": "名称name1", "description": "foo"}), BulkData(id="2", data={"name": "名称name2", "description": "bar"}), BulkData(id="3", data={"name": "名称name3", "description": "baz"})] ] vector_api.add_docs(bulk_list)
通过vectorStoreConfig判断使用CSS的插件模式和非插件模式。如果配置了embedding模型,则使用非插件模式,否则使用插件模式。注意,在非插件模式下,vectorFields有且只有1个。