mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-05-03 00:02:36 +00:00
chore: ignore deprecation warning from chromadb (#3328)
* chore: ignore deprecation warning from chromadb * adding TODO: in the comment
This commit is contained in:
@@ -11,6 +11,8 @@ import chromadb.errors
|
|||||||
from chromadb.api import ClientAPI
|
from chromadb.api import ClientAPI
|
||||||
from chromadb.api.types import OneOrMany
|
from chromadb.api.types import OneOrMany
|
||||||
from chromadb.config import Settings
|
from chromadb.config import Settings
|
||||||
|
from pydantic.warnings import PydanticDeprecatedSince211
|
||||||
|
import warnings
|
||||||
|
|
||||||
from crewai.knowledge.storage.base_knowledge_storage import BaseKnowledgeStorage
|
from crewai.knowledge.storage.base_knowledge_storage import BaseKnowledgeStorage
|
||||||
from crewai.rag.embeddings.configurator import EmbeddingConfigurator
|
from crewai.rag.embeddings.configurator import EmbeddingConfigurator
|
||||||
@@ -85,6 +87,15 @@ class KnowledgeStorage(BaseKnowledgeStorage):
|
|||||||
raise Exception("Collection not initialized")
|
raise Exception("Collection not initialized")
|
||||||
|
|
||||||
def initialize_knowledge_storage(self):
|
def initialize_knowledge_storage(self):
|
||||||
|
# Suppress deprecation warnings from chromadb, which are not relevant to us
|
||||||
|
# TODO: Remove this once we upgrade chromadb to at least 1.0.8.
|
||||||
|
warnings.filterwarnings(
|
||||||
|
"ignore",
|
||||||
|
category=PydanticDeprecatedSince211,
|
||||||
|
message=r".*'model_fields'.*is deprecated.*",
|
||||||
|
module=r"^chromadb(\.|$)",
|
||||||
|
)
|
||||||
|
|
||||||
self.app = create_persistent_client(
|
self.app = create_persistent_client(
|
||||||
path=os.path.join(db_storage_path(), "knowledge"),
|
path=os.path.join(db_storage_path(), "knowledge"),
|
||||||
settings=Settings(allow_reset=True),
|
settings=Settings(allow_reset=True),
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ from crewai.rag.embeddings.configurator import EmbeddingConfigurator
|
|||||||
from crewai.utilities.chromadb import create_persistent_client
|
from crewai.utilities.chromadb import create_persistent_client
|
||||||
from crewai.utilities.constants import MAX_FILE_NAME_LENGTH
|
from crewai.utilities.constants import MAX_FILE_NAME_LENGTH
|
||||||
from crewai.utilities.paths import db_storage_path
|
from crewai.utilities.paths import db_storage_path
|
||||||
|
import warnings
|
||||||
|
from pydantic.warnings import PydanticDeprecatedSince211
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
@@ -62,6 +64,15 @@ class RAGStorage(BaseRAGStorage):
|
|||||||
def _initialize_app(self):
|
def _initialize_app(self):
|
||||||
from chromadb.config import Settings
|
from chromadb.config import Settings
|
||||||
|
|
||||||
|
# Suppress deprecation warnings from chromadb, which are not relevant to us
|
||||||
|
# TODO: Remove this once we upgrade chromadb to at least 1.0.8.
|
||||||
|
warnings.filterwarnings(
|
||||||
|
"ignore",
|
||||||
|
category=PydanticDeprecatedSince211,
|
||||||
|
message=r".*'model_fields'.*is deprecated.*",
|
||||||
|
module=r"^chromadb(\.|$)",
|
||||||
|
)
|
||||||
|
|
||||||
self._set_embedder_config()
|
self._set_embedder_config()
|
||||||
|
|
||||||
self.app = create_persistent_client(
|
self.app = create_persistent_client(
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from unittest.mock import patch, ANY
|
from unittest.mock import patch, ANY
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from pydantic.warnings import PydanticDeprecatedSince211
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from crewai.agent import Agent
|
from crewai.agent import Agent
|
||||||
@@ -35,10 +36,12 @@ def short_term_memory():
|
|||||||
return ShortTermMemory(crew=Crew(agents=[agent], tasks=[task]))
|
return ShortTermMemory(crew=Crew(agents=[agent], tasks=[task]))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.filterwarnings("error", category=PydanticDeprecatedSince211)
|
||||||
def test_short_term_memory_search_events(short_term_memory):
|
def test_short_term_memory_search_events(short_term_memory):
|
||||||
events = defaultdict(list)
|
events = defaultdict(list)
|
||||||
|
|
||||||
with crewai_event_bus.scoped_handlers():
|
with crewai_event_bus.scoped_handlers():
|
||||||
|
|
||||||
@crewai_event_bus.on(MemoryQueryStartedEvent)
|
@crewai_event_bus.on(MemoryQueryStartedEvent)
|
||||||
def on_search_started(source, event):
|
def on_search_started(source, event):
|
||||||
events["MemoryQueryStartedEvent"].append(event)
|
events["MemoryQueryStartedEvent"].append(event)
|
||||||
@@ -59,33 +62,35 @@ def test_short_term_memory_search_events(short_term_memory):
|
|||||||
assert len(events["MemoryQueryFailedEvent"]) == 0
|
assert len(events["MemoryQueryFailedEvent"]) == 0
|
||||||
|
|
||||||
assert dict(events["MemoryQueryStartedEvent"][0]) == {
|
assert dict(events["MemoryQueryStartedEvent"][0]) == {
|
||||||
'timestamp': ANY,
|
"timestamp": ANY,
|
||||||
'type': 'memory_query_started',
|
"type": "memory_query_started",
|
||||||
'source_fingerprint': None,
|
"source_fingerprint": None,
|
||||||
'source_type': 'short_term_memory',
|
"source_type": "short_term_memory",
|
||||||
'fingerprint_metadata': None,
|
"fingerprint_metadata": None,
|
||||||
'query': 'test value',
|
"query": "test value",
|
||||||
'limit': 3,
|
"limit": 3,
|
||||||
'score_threshold': 0.35
|
"score_threshold": 0.35,
|
||||||
}
|
}
|
||||||
|
|
||||||
assert dict(events["MemoryQueryCompletedEvent"][0]) == {
|
assert dict(events["MemoryQueryCompletedEvent"][0]) == {
|
||||||
'timestamp': ANY,
|
"timestamp": ANY,
|
||||||
'type': 'memory_query_completed',
|
"type": "memory_query_completed",
|
||||||
'source_fingerprint': None,
|
"source_fingerprint": None,
|
||||||
'source_type': 'short_term_memory',
|
"source_type": "short_term_memory",
|
||||||
'fingerprint_metadata': None,
|
"fingerprint_metadata": None,
|
||||||
'query': 'test value',
|
"query": "test value",
|
||||||
'results': [],
|
"results": [],
|
||||||
'limit': 3,
|
"limit": 3,
|
||||||
'score_threshold': 0.35,
|
"score_threshold": 0.35,
|
||||||
'query_time_ms': ANY
|
"query_time_ms": ANY,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.filterwarnings("error", category=PydanticDeprecatedSince211)
|
||||||
def test_short_term_memory_save_events(short_term_memory):
|
def test_short_term_memory_save_events(short_term_memory):
|
||||||
events = defaultdict(list)
|
events = defaultdict(list)
|
||||||
with crewai_event_bus.scoped_handlers():
|
with crewai_event_bus.scoped_handlers():
|
||||||
|
|
||||||
@crewai_event_bus.on(MemorySaveStartedEvent)
|
@crewai_event_bus.on(MemorySaveStartedEvent)
|
||||||
def on_save_started(source, event):
|
def on_save_started(source, event):
|
||||||
events["MemorySaveStartedEvent"].append(event)
|
events["MemorySaveStartedEvent"].append(event)
|
||||||
@@ -105,28 +110,30 @@ def test_short_term_memory_save_events(short_term_memory):
|
|||||||
assert len(events["MemorySaveFailedEvent"]) == 0
|
assert len(events["MemorySaveFailedEvent"]) == 0
|
||||||
|
|
||||||
assert dict(events["MemorySaveStartedEvent"][0]) == {
|
assert dict(events["MemorySaveStartedEvent"][0]) == {
|
||||||
'timestamp': ANY,
|
"timestamp": ANY,
|
||||||
'type': 'memory_save_started',
|
"type": "memory_save_started",
|
||||||
'source_fingerprint': None,
|
"source_fingerprint": None,
|
||||||
'source_type': 'short_term_memory',
|
"source_type": "short_term_memory",
|
||||||
'fingerprint_metadata': None,
|
"fingerprint_metadata": None,
|
||||||
'value': 'test value',
|
"value": "test value",
|
||||||
'metadata': {'task': 'test_task'},
|
"metadata": {"task": "test_task"},
|
||||||
'agent_role': "test_agent"
|
"agent_role": "test_agent",
|
||||||
}
|
}
|
||||||
|
|
||||||
assert dict(events["MemorySaveCompletedEvent"][0]) == {
|
assert dict(events["MemorySaveCompletedEvent"][0]) == {
|
||||||
'timestamp': ANY,
|
"timestamp": ANY,
|
||||||
'type': 'memory_save_completed',
|
"type": "memory_save_completed",
|
||||||
'source_fingerprint': None,
|
"source_fingerprint": None,
|
||||||
'source_type': 'short_term_memory',
|
"source_type": "short_term_memory",
|
||||||
'fingerprint_metadata': None,
|
"fingerprint_metadata": None,
|
||||||
'value': 'test value',
|
"value": "test value",
|
||||||
'metadata': {'task': 'test_task', 'agent': 'test_agent'},
|
"metadata": {"task": "test_task", "agent": "test_agent"},
|
||||||
'agent_role': "test_agent",
|
"agent_role": "test_agent",
|
||||||
'save_time_ms': ANY
|
"save_time_ms": ANY,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.filterwarnings("error", category=PydanticDeprecatedSince211)
|
||||||
def test_save_and_search(short_term_memory):
|
def test_save_and_search(short_term_memory):
|
||||||
memory = ShortTermMemoryItem(
|
memory = ShortTermMemoryItem(
|
||||||
data="""test value test value test value test value test value test value
|
data="""test value test value test value test value test value test value
|
||||||
|
|||||||
Reference in New Issue
Block a user