feat: Add comprehensive Elasticsearch support to crewai.rag

- Implement ElasticsearchClient with full sync/async operations
- Add ElasticsearchConfig with connection and embedding options
- Create factory pattern following ChromaDB/Qdrant conventions
- Add comprehensive test suite with 26 passing tests (100% coverage)
- Support both sync and async Elasticsearch operations
- Include proper error handling and edge case coverage
- Update type system and factory to support Elasticsearch provider
- Follow existing RAG patterns for consistency

Resolves #3404

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2025-08-27 01:07:57 +00:00
parent 88d2968fd5
commit e3a575920c
18 changed files with 1501 additions and 6 deletions

View File

@@ -0,0 +1,12 @@
"""Constants for Elasticsearch RAG implementation."""
from typing import Final
DEFAULT_HOST: Final[str] = "localhost"
DEFAULT_PORT: Final[int] = 9200
DEFAULT_INDEX_SETTINGS: Final[dict] = {
"number_of_shards": 1,
"number_of_replicas": 0,
}
DEFAULT_EMBEDDING_MODEL: Final[str] = "sentence-transformers/all-MiniLM-L6-v2"
DEFAULT_VECTOR_DIMENSION: Final[int] = 384