You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weaviate命名向量使用及自定义向量数据集导入方法问询

向Weaviate命名向量集合导入数据的方案

你的集合named_vec_class包含两种命名向量:

  • openai:由Weaviate调用OpenAI API自动生成(基于text字段)
  • cohere:需要你自行生成后传入

步骤1:准备待导入数据

先构造符合集合字段要求的数据列表,示例如下:

sample_data = [
    {
        "tokens": 150,
        "text": "这是一段测试文本内容",
        "uid": "123e4567-e89b-12d3-a456-426614174000",
        "parent_uid": "123e4567-e89b-12d3-a456-426614174001",
        "author": "测试作者",
        "book_name": "测试书籍",
        "creation_date": "2024-05-20",
        "chunk_type": "段落"
    },
    # 可添加更多数据条目
]

步骤2:批量生成Cohere向量

利用你已定义的get_embed_cohere函数批量生成向量,提升效率:

# 提取所有需要生成向量的text内容
texts_to_embed = [item["text"] for item in sample_data]
# 批量生成Cohere嵌入向量
cohere_vectors = get_embed_cohere(texts_to_embed)

步骤3:构造导入条目并批量插入

将数据与对应的Cohere向量绑定,通过Weaviate的批量插入接口导入:

from weaviate.classes import data as wvc_data

# 构造带命名向量的导入对象
import_items = []
for data, cohere_vec in zip(sample_data, cohere_vectors):
    import_items.append(
        wvc_data.DataObject(
            properties=data,
            vectors={"cohere": cohere_vec}  # 指定cohere命名向量
        )
    )

# 执行批量插入
insert_result = collection.data.insert_many(import_items)

# 检查插入结果
print(f"成功插入 {insert_result.successful} 条数据")
if insert_result.failed:
    print("失败条目:", insert_result.failed)

关键说明

  • openai向量无需手动传入:Weaviate会自动根据集合配置,使用text字段调用OpenAI API生成该命名向量。
  • 单个数据插入:如果只需要插入一条数据,可使用collection.data.insert_one(),构造单个DataObject即可:
    single_item = wvc_data.DataObject(
        properties={
            "tokens": 100,
            "text": "单条测试文本",
            # 其他字段...
        },
        vectors={"cohere": get_embed_cohere("单条测试文本")}
    )
    collection.data.insert_one(single_item)
    
  • 向量维度一致性:确保Cohere生成的向量维度与集合中cohere向量的维度一致(第一次插入时Weaviate会自动设置维度,后续插入需匹配)。

内容的提问来源于stack exchange,提问作者figs_and_nuts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:36:00