Compare commits

...

4 Commits

Author SHA1 Message Date
Devin AI
bde394024f Fix: Format imports in test file to fix lint error
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-04-16 12:09:46 +00:00
Devin AI
878bbef0e2 Fix: Update import order in test file to fix lint error
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-04-16 12:08:20 +00:00
Devin AI
71569a20da Fix: Sort imports in test file to fix lint error
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-04-16 12:07:23 +00:00
Devin AI
205e778d74 Fix: Implement add() method in BaseFileKnowledgeSource to solve PDFKnowledgeSource instantiation error
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-04-16 12:05:39 +00:00
2 changed files with 29 additions and 0 deletions

View File

@@ -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

View File

@@ -0,0 +1,19 @@
from pathlib import Path
from unittest.mock import patch
import pytest
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)