mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-10 00:28:31 +00:00
Fix: Implement add() method in BaseFileKnowledgeSource to solve PDFKnowledgeSource instantiation error
Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
@@ -64,6 +64,16 @@ class BaseFileKnowledgeSource(BaseKnowledgeSource, ABC):
|
||||
"""Save the documents to the storage."""
|
||||
self.storage.save(self.chunks)
|
||||
|
||||
def add(self) -> None:
|
||||
"""
|
||||
Process content from files, chunk it, compute embeddings, and save them.
|
||||
This method is called after content is loaded from files.
|
||||
"""
|
||||
for _, text in self.content.items():
|
||||
new_chunks = self._chunk_text(text)
|
||||
self.chunks.extend(new_chunks)
|
||||
self._save_documents()
|
||||
|
||||
def convert_to_path(self, path: Union[Path, str]) -> Path:
|
||||
"""Convert a path to a Path object."""
|
||||
return Path(KNOWLEDGE_DIRECTORY + "/" + path) if isinstance(path, str) else path
|
||||
|
||||
16
tests/knowledge/test_knowledge_source_instantiation.py
Normal file
16
tests/knowledge/test_knowledge_source_instantiation.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from pathlib import Path
|
||||
import pytest
|
||||
from unittest.mock import patch
|
||||
from crewai.knowledge.source.pdf_knowledge_source import PDFKnowledgeSource
|
||||
|
||||
@patch('crewai.knowledge.source.base_file_knowledge_source.BaseFileKnowledgeSource.validate_content')
|
||||
@patch('crewai.knowledge.source.pdf_knowledge_source.PDFKnowledgeSource.load_content')
|
||||
def test_pdf_knowledge_source_instantiation(mock_load_content, mock_validate_content, tmp_path):
|
||||
"""Test that PDFKnowledgeSource can be instantiated without errors."""
|
||||
mock_load_content.return_value = {}
|
||||
|
||||
pdf_path = tmp_path / "test.pdf"
|
||||
pdf_path.touch() # Create the file
|
||||
|
||||
pdf_source = PDFKnowledgeSource(file_paths=[pdf_path])
|
||||
assert isinstance(pdf_source, PDFKnowledgeSource)
|
||||
Reference in New Issue
Block a user