From 76da972ce9b818436d63719fc51ec17d2511c11f Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Tue, 19 Nov 2024 17:42:44 -0800 Subject: [PATCH] put a flag --- src/crewai/agent.py | 8 ++++---- src/crewai/crew.py | 14 ++++++++++---- tests/knowledge/knowledge_test.py | 1 - 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 463550c34..f32aa31f7 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -231,8 +231,8 @@ class Agent(BaseAgent): self._validate_docker_installation() # Initialize the Knowledge object if knowledge_sources are provided - if self.crew and self.crew.knowledge: - self._knowledge = self.crew.knowledge + if self.crew and self.crew.knowledge_store: + self._knowledge = self.crew.knowledge_store else: self._knowledge = None @@ -282,8 +282,8 @@ class Agent(BaseAgent): task_prompt += self.i18n.slice("memory").format(memory=memory) # Integrate the knowledge base - if self.crew and self.crew.knowledge: - knowledge_snippets: List[Dict[str, Any]] = self.crew.knowledge.query( + if self.crew and self.crew.knowledge_store and self._knowledge: + knowledge_snippets: List[Dict[str, Any]] = self.crew.knowledge_store.query( [task.prompt()] ) if knowledge_snippets: diff --git a/src/crewai/crew.py b/src/crewai/crew.py index 59c8fd8d8..d8b283e86 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -199,9 +199,14 @@ class Crew(BaseModel): default=None, description="Knowledge sources for the agent.", ) - knowledge: Optional[Knowledge] = Field( + knowledge_store: Optional[Knowledge] = Field( default=None, description="Knowledge Source for the crew." ) + knowledge: Optional[bool] = Field( + default=False, + description="Whether the crew should use knowledge to store memories of it's execution", + ) + @field_validator("id", mode="before") @classmethod @@ -278,9 +283,10 @@ class Crew(BaseModel): @model_validator(mode="after") def create_crew_knowledge(self) -> "Crew": - self.knowledge = Knowledge( - sources=self.knowledge_sources or [], embedder_config=self.embedder - ) + if self.knowledge: + self.knowledge_store = Knowledge( + sources=self.knowledge_sources or [], embedder_config=self.embedder + ) return self @model_validator(mode="after") diff --git a/tests/knowledge/knowledge_test.py b/tests/knowledge/knowledge_test.py index 90688e8a8..4f506ff16 100644 --- a/tests/knowledge/knowledge_test.py +++ b/tests/knowledge/knowledge_test.py @@ -416,7 +416,6 @@ def test_hybrid_string_and_files(mock_vector_db, tmpdir): mock_vector_db.query.assert_called_once() -@pytest.mark.vcr(filter_headers=["authorization"]) def test_pdf_knowledge_source(mock_vector_db): # Get the directory of the current file current_dir = Path(__file__).parent