我尝试使用矢量数据库进行实验,方法是创建一个和 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'
我做错了什么?