mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 04:18:35 +00:00
* Add support for custom LLM implementations Co-Authored-By: Joe Moura <joao@crewai.com> * Fix import sorting and type annotations Co-Authored-By: Joe Moura <joao@crewai.com> * Fix linting issues with import sorting Co-Authored-By: Joe Moura <joao@crewai.com> * Fix type errors in crew.py by updating tool-related methods to return List[BaseTool] Co-Authored-By: Joe Moura <joao@crewai.com> * Enhance custom LLM implementation with better error handling, documentation, and test coverage Co-Authored-By: Joe Moura <joao@crewai.com> * Refactor LLM module by extracting BaseLLM to a separate file This commit moves the BaseLLM abstract base class from llm.py to a new file llms/base_llm.py to improve code organization. The changes include: - Creating a new file src/crewai/llms/base_llm.py - Moving the BaseLLM class to the new file - Updating imports in __init__.py and llm.py to reflect the new location - Updating test cases to use the new import path The refactoring maintains the existing functionality while improving the project's module structure. * Add AISuite LLM support and update dependencies - Integrate AISuite as a new third-party LLM option - Update pyproject.toml and uv.lock to include aisuite package - Modify BaseLLM to support more flexible initialization - Remove unnecessary LLM imports across multiple files - Implement AISuiteLLM with basic chat completion functionality * Update AISuiteLLM and LLM utility type handling - Modify AISuiteLLM to support more flexible input types for messages - Update type hints in AISuiteLLM to allow string or list of message dictionaries - Enhance LLM utility function to support broader LLM type annotations - Remove default `self.stop` attribute from BaseLLM initialization * Update LLM imports and type hints across multiple files - Modify imports in crew_chat.py to use LLM instead of BaseLLM - Update type hints in llm_utils.py to use LLM type - Add optional `stop` parameter to BaseLLM initialization - Refactor type handling for LLM creation and usage * Improve stop words handling in CrewAgentExecutor - Add support for handling existing stop words in LLM configuration - Ensure stop words are correctly merged and deduplicated - Update type hints to support both LLM and BaseLLM types * Remove abstract method set_callbacks from BaseLLM class * Enhance CustomLLM and JWTAuthLLM initialization with model parameter - Update CustomLLM to accept a model parameter during initialization - Modify test cases to include the new model argument - Ensure JWTAuthLLM and TimeoutHandlingLLM also utilize the model parameter in their constructors - Update type hints in create_llm function to support both LLM and BaseLLM types * Enhance create_llm function to support BaseLLM type - Update the create_llm function to accept both LLM and BaseLLM instances - Ensure compatibility with existing LLM handling logic * Update type hint for initialize_chat_llm to support BaseLLM - Modify the return type of initialize_chat_llm function to allow for both LLM and BaseLLM instances - Ensure compatibility with recent changes in create_llm function * Refactor AISuiteLLM to include tools parameter in completion methods - Update the _prepare_completion_params method to accept an optional tools parameter - Modify the chat completion method to utilize the new tools parameter for enhanced functionality - Clean up print statements for better code clarity * Remove unused tool_calls handling in AISuiteLLM chat completion method for cleaner code. * Refactor Crew class and LLM hierarchy for improved type handling and code clarity - Update Crew class methods to enhance readability with consistent formatting and type hints. - Change LLM class to inherit from BaseLLM for better structure. - Remove unnecessary type checks and streamline tool handling in CrewAgentExecutor. - Adjust BaseLLM to provide default implementations for stop words and context window size methods. - Clean up AISuiteLLM by removing unused methods related to stop words and context window size. * Remove unused `stream` method from `BaseLLM` class to enhance code clarity and maintainability. --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Joe Moura <joao@crewai.com> Co-authored-by: Lorenze Jay <lorenzejaytech@gmail.com> Co-authored-by: João Moura <joaomdmoura@gmail.com> Co-authored-by: Brandon Hancock (bhancock_ai) <109994880+bhancockio@users.noreply.github.com>
104 lines
2.3 KiB
TOML
104 lines
2.3 KiB
TOML
[project]
|
|
name = "crewai"
|
|
version = "0.108.0"
|
|
description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10,<3.13"
|
|
authors = [
|
|
{ name = "Joao Moura", email = "joao@crewai.com" }
|
|
]
|
|
dependencies = [
|
|
# Core Dependencies
|
|
"pydantic>=2.4.2",
|
|
"openai>=1.13.3",
|
|
"litellm==1.60.2",
|
|
"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",
|
|
"openpyxl>=3.1.5",
|
|
"pyvis>=0.3.2",
|
|
# Authentication and Security
|
|
"auth0-python>=4.7.1",
|
|
"python-dotenv>=1.0.0",
|
|
# Configuration and Utils
|
|
"click>=8.1.7",
|
|
"appdirs>=1.4.4",
|
|
"jsonref>=1.1.0",
|
|
"json-repair>=0.25.2",
|
|
"uv>=0.4.25",
|
|
"tomli-w>=1.1.0",
|
|
"tomli>=2.0.2",
|
|
"blinker>=1.9.0",
|
|
"json5>=0.10.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://crewai.com"
|
|
Documentation = "https://docs.crewai.com"
|
|
Repository = "https://github.com/crewAIInc/crewAI"
|
|
|
|
[project.optional-dependencies]
|
|
tools = ["crewai-tools>=0.37.0"]
|
|
embeddings = [
|
|
"tiktoken~=0.7.0"
|
|
]
|
|
agentops = ["agentops>=0.3.0"]
|
|
fastembed = ["fastembed>=0.4.1"]
|
|
pdfplumber = [
|
|
"pdfplumber>=0.11.4",
|
|
]
|
|
pandas = [
|
|
"pandas>=2.2.3",
|
|
]
|
|
openpyxl = [
|
|
"openpyxl>=3.1.5",
|
|
]
|
|
mem0 = ["mem0ai>=0.1.29"]
|
|
docling = [
|
|
"docling>=2.12.0",
|
|
]
|
|
aisuite = [
|
|
"aisuite>=0.1.10",
|
|
]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"ruff>=0.8.2",
|
|
"mypy>=1.10.0",
|
|
"pre-commit>=3.6.0",
|
|
"mkdocs>=1.4.3",
|
|
"mkdocstrings>=0.22.0",
|
|
"mkdocstrings-python>=1.1.2",
|
|
"mkdocs-material>=9.5.7",
|
|
"mkdocs-material-extensions>=1.3.1",
|
|
"pillow>=10.2.0",
|
|
"cairosvg>=2.7.1",
|
|
"pytest>=8.0.0",
|
|
"pytest-vcr>=1.0.2",
|
|
"python-dotenv>=1.0.0",
|
|
"pytest-asyncio>=0.23.7",
|
|
"pytest-subprocess>=1.5.2",
|
|
]
|
|
|
|
[project.scripts]
|
|
crewai = "crewai.cli.cli:crewai"
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = true
|
|
disable_error_code = 'import-untyped'
|
|
exclude = ["cli/templates"]
|
|
|
|
[tool.bandit]
|
|
exclude_dirs = ["src/crewai/cli/templates"]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|