Встраивание с использованием Huggingface и Pinecone
У меня есть список обобщенных PDF-файлов, и я хочу встроить их с помощью модели Huggingface. После этого я хочу сохранить их в базе данных сосновых шишек с пространством имен их исходного имени документа. Я всегда получаю какую-то ошибку ValueError, потому что вектор недействителен. Любые решения, как я могу достичь своей цели?
Это была моя попытка:
class Embedding:
def __init__(self):
self.embeddings = HuggingFaceEmbeddings(model_name="paraphrase-MiniLM-L6-v2")
def initialize_pinecone(self):
pinecone.init(
api_key="apikey",
environment="environment",
)
def load_documents(self, folder_path):
document_loader = DirectoryLoader(path=folder_path)
documents = document_loader.load()
return documents
def split_documents(self, documents, chunk_size=1000, chunk_overlap=100):
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=chunk_size, chunk_overlap=chunk_overlap
)
split_docs = text_splitter.split_documents(documents)
return split_docs
def embed(self):
print()
print("-------EMBEDDING-------")
self.initialize_pinecone()
summarizedTextsPath = os.path.join(os.path.dirname(__file__), "summarizedTexts")
summarizedDocs = self.load_documents(summarizedTextsPath)
summarizedDocsSplit = self.split_documents(summarizedDocs)
index_name = "lecture-index"
# Embed and store each document with its filename as namespace
for i, doc in enumerate(summarizedDocsSplit):
text = doc.page_content
vector = self.embeddings.embed_query(text)
doc_name = os.path.splitext(os.path.basename(doc.metadata["source"]))[0]
index = pinecone.Index(index_name)
index.upsert(ids=[i], vectors=vector, namespaces=[doc_name])
print("Database access successful.")```