feat: implement crewAI lite version with optional dependencies

- Restructure pyproject.toml to move non-essential dependencies to optional extras
- Add graceful handling for missing optional dependencies in core modules
- Create memory, knowledge, telemetry, visualization, auth, and llm-integrations extras
- Implement helpful ImportError messages directing users to install specific extras
- Add comprehensive test suite for lite installation scenarios
- Maintain backward compatibility with existing installations
- Support minimal core installation with Agent/Crew/Task functionality

Addresses GitHub issue #3026 for lightweight crewAI installation

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2025-06-18 10:13:42 +00:00
parent db1e9e9b9a
commit bccb27ab2e
12 changed files with 692 additions and 52 deletions

View File

@@ -14,20 +14,8 @@ dependencies = [
"litellm==1.72.0",
"instructor>=1.3.3",
# Text Processing
"pdfplumber>=0.11.4",
"regex>=2024.9.11",
# Telemetry and Monitoring
"opentelemetry-api>=1.30.0",
"opentelemetry-sdk>=1.30.0",
"opentelemetry-exporter-otlp-proto-http>=1.30.0",
# Data Handling
"chromadb>=0.5.23",
"tokenizers>=0.20.3",
"onnxruntime==1.22.0",
"openpyxl>=3.1.5",
"pyvis>=0.3.2",
# Authentication and Security
"auth0-python>=4.7.1",
# Security
"python-dotenv>=1.0.0",
# Configuration and Utils
"click>=8.1.7",
@@ -68,6 +56,53 @@ docling = [
aisuite = [
"aisuite>=0.1.10",
]
memory = [
"chromadb>=0.5.23",
"tokenizers>=0.20.3",
"tiktoken~=0.8.0",
"mem0ai>=0.1.94",
]
knowledge = [
"chromadb>=0.5.23",
"pdfplumber>=0.11.4",
"openpyxl>=3.1.5",
"docling>=2.12.0",
"tiktoken~=0.8.0",
]
telemetry = [
"opentelemetry-api>=1.30.0",
"opentelemetry-sdk>=1.30.0",
"opentelemetry-exporter-otlp-proto-http>=1.30.0",
]
visualization = [
"pyvis>=0.3.2",
]
auth = [
"auth0-python>=4.7.1",
]
llm-integrations = [
"aisuite>=0.1.10",
"onnxruntime==1.22.0",
]
all = [
"chromadb>=0.5.23",
"tokenizers>=0.20.3",
"tiktoken~=0.8.0",
"mem0ai>=0.1.94",
"pdfplumber>=0.11.4",
"openpyxl>=3.1.5",
"docling>=2.12.0",
"opentelemetry-api>=1.30.0",
"opentelemetry-sdk>=1.30.0",
"opentelemetry-exporter-otlp-proto-http>=1.30.0",
"pyvis>=0.3.2",
"auth0-python>=4.7.1",
"aisuite>=0.1.10",
"onnxruntime==1.22.0",
"agentops>=0.3.0",
"crewai-tools~=0.47.1",
"pandas>=2.2.3",
]
[tool.uv]
dev-dependencies = [