创建嵌入并插入 Weaviate 时出现问题

问题描述 投票:0回答:1

我尝试使用矢量数据库进行实验,方法是创建一个和 OpenAI 的

text-embedding-ada-002
模型来生成嵌入并将其存储在 Weaviate 中。这是我的代码:

import weaviate, openai, json
from OpenAI_Key import OpenAI_Key as OpenAI_Key
ROOT_DIR = "Example_Drive"

# Set your OpenAI API key
openai.api_key = OpenAI_Key()

# Connect to Weaviate instance (adjust this URL if using cloud)
client = weaviate.connect_to_local()

# Upload from text files
with open(f"{ROOT_DIR}/Data/Sample_File.txt", 'r', encoding='utf-8') as input_file: 
    documents = [{'content':item.replace("\t",": ")} for item in input_file.read().split("\n")]

# Function to create embeddings and insert into Weaviate
for doc in documents:
    # Generate embeddings using OpenAI
    embedding = openai.embeddings.create(input=doc["content"], model="text-embedding-ada-002").data[0].embedding

    # Add the document to Weaviate with its embedding
    client.data_object.create(data_object={"content": doc["content"],}, class_name="Document", vector=embedding) # Pass the embedding as the vector

print("Documents and embeddings inserted successfully!")
client.close()

但是每次运行这个程序时,我都会收到以下错误:

AttributeError: 'WeaviateClient' object has no attribute 'data_object'

我做错了什么?

vector-database weaviate
1个回答
0
投票

您正在混合 v3 和 v4 语法。我建议坚持使用 v4 语法:

运行

client = weaviate.connect_to_local()
后,需要实例化一个集合

然后,您可以将集合的 data 类调用为

insert
insert_many
或仅使用 批量导入 功能。

© www.soinside.com 2019 - 2024. All rights reserved.