mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-01 13:18:10 +00:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import subprocess
|
|
|
|
import click
|
|
from crewai_core.constants import CREWAI_TRAINED_AGENTS_FILE_ENV
|
|
|
|
from crewai_cli.utils import build_env_with_all_tool_credentials
|
|
|
|
|
|
def evaluate_crew(
|
|
n_iterations: int, model: str, trained_agents_file: str | None = None
|
|
) -> None:
|
|
"""Test and Evaluate the crew by running a command in the UV environment.
|
|
|
|
Args:
|
|
n_iterations: The number of iterations to test the crew.
|
|
model: The model to test the crew with.
|
|
trained_agents_file: Optional trained-agents pickle path forwarded to
|
|
the subprocess via the ``CREWAI_TRAINED_AGENTS_FILE`` env var.
|
|
"""
|
|
command = ["uv", "run", "test", str(n_iterations), model]
|
|
env = build_env_with_all_tool_credentials()
|
|
if trained_agents_file:
|
|
env[CREWAI_TRAINED_AGENTS_FILE_ENV] = trained_agents_file
|
|
|
|
try:
|
|
if n_iterations <= 0:
|
|
raise ValueError("The number of iterations must be a positive integer.")
|
|
|
|
result = subprocess.run( # noqa: S603
|
|
command, capture_output=False, text=True, check=True, env=env
|
|
)
|
|
|
|
if result.stderr:
|
|
click.echo(result.stderr, err=True)
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
click.echo(f"An error occurred while testing the crew: {e}", err=True)
|
|
click.echo(e.output, err=True)
|
|
|
|
except Exception as e:
|
|
click.echo(f"An unexpected error occurred: {e}", err=True)
|