Langchain FastEmbed с ChromaDBPython

Программы на Python
Anonymous
Langchain FastEmbed с ChromaDB

Сообщение Anonymous »

Я пытаюсь следовать простому примеру использования Langchain с FastEmbed и ChromaDB, который я нашел. Со временем я также подключу это к автономной модели. Я считаю, что я правильно настроил среду Python и имею правильные зависимости. Просто я делаю что-то не так, используя встраивания, а затем вызывая Chroma.from_documents?
from langchain_community.embeddings.fastembed import FastEmbedEmbeddings
from langchain_community.document_loaders import PyPDFLoader
from langchain_community.vectorstores.utils import filter_complex_metadata
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
import glob

class ChatPDF:
vector_store = None
retriever = None
chain = None

def __init__(self):
self.embeddings = FastEmbedEmbeddings()
self.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1024, chunk_overlap=100)

def ingest(self, file_path: str):

doc = PyPDFLoader(file_path=file_path).load()
chunks = self.text_splitter.split_documents(doc)
chunks = filter_complex_metadata(chunks)

# generate vector store
vector_store = Chroma.from_documents(documents=chunks, embedding=self.embeddings)

new_chat = ChatPDF()
docs_to_process = glob.glob("tmp/*.pdf")

for pdf in docs_to_process:
new_chat.ingest(file_path=pdf)

Однако, когда я запускаю его, я получаю следующее:
Traceback (most recent call last):
File "/Users/c/Documents/Code/embeddings-test.py", line 35, in
new_chat.ingest(file_path=pdf)
File "/Users/c/Documents/Code/embeddings-test.py", line 26, in ingest
vector_store = Chroma.from_documents(documents=chunks, embedding=self.embeddings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/c/Documents/Code/.venv/lib/python3.12/site-packages/langchain_community/vectorstores/chroma.py", line 878, in from_documents
return cls.from_texts(
^^^^^^^^^^^^^^^
File "/Users/c/Documents/Code/.venv/lib/python3.12/site-packages/langchain_community/vectorstores/chroma.py", line 842, in from_texts
chroma_collection.add_texts(texts=texts, metadatas=metadatas, ids=ids)
File "/Users/c/Documents/Code/.venv/lib/python3.12/site-packages/langchain_community/vectorstores/chroma.py", line 277, in add_texts
embeddings = self._embedding_function.embed_documents(texts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/c/Documents/Code/.venv/lib/python3.12/site-packages/langchain_community/embeddings/fastembed.py", line 117, in embed_documents
embeddings = self._model.embed(
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'embed'


Подробнее здесь: https://stackoverflow.com/questions/790 ... h-chromadb

Вернуться в «Python»