Я пытаюсь следовать простому примеру использования 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