updating crewai version

This commit is contained in:
João Moura
2024-10-23 17:56:21 -03:00
parent a921828e51
commit 74c1703310
10 changed files with 985 additions and 1063 deletions

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "crewai" name = "crewai"
version = "0.75.1" version = "0.76.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." 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" readme = "README.md"
requires-python = ">=3.10,<=3.13" requires-python = ">=3.10,<=3.13"

View File

@@ -14,5 +14,5 @@ warnings.filterwarnings(
category=UserWarning, category=UserWarning,
module="pydantic.main", module="pydantic.main",
) )
__version__ = "0.75.1" __version__ = "0.76.0"
__all__ = ["Agent", "Crew", "Process", "Task", "Pipeline", "Router", "LLM", "Flow"] __all__ = ["Agent", "Crew", "Process", "Task", "Pipeline", "Router", "LLM", "Flow"]

View File

@@ -32,11 +32,12 @@ def crewai():
@crewai.command() @crewai.command()
@click.argument("type", type=click.Choice(["crew", "pipeline", "flow"])) @click.argument("type", type=click.Choice(["crew", "pipeline", "flow"]))
@click.argument("name") @click.argument("name")
@click.option("--skip-provider", is_flag=True, help="Skip provider validation")
@click.option("--provider", type=str, help="The provider to use for the crew") @click.option("--provider", type=str, help="The provider to use for the crew")
def create(type, name, provider): def create(type, name, provider, skip_provider_validation=False):
"""Create a new crew, pipeline, or flow.""" """Create a new crew, pipeline, or flow."""
if type == "crew": if type == "crew":
create_crew(name, provider) create_crew(name, provider, skip_provider_validation)
elif type == "pipeline": elif type == "pipeline":
create_pipeline(name) create_pipeline(name)
elif type == "flow": elif type == "flow":

View File

@@ -81,77 +81,84 @@ def copy_template_files(folder_path, name, class_name, parent_folder):
copy_template(src_file, dst_file, name, class_name, folder_path.name) copy_template(src_file, dst_file, name, class_name, folder_path.name)
def create_crew(name, parent_folder=None): def create_crew(
name, provider=None, skip_provider_validation=False, parent_folder=None
):
folder_path, folder_name, class_name = create_folder_structure(name, parent_folder) folder_path, folder_name, class_name = create_folder_structure(name, parent_folder)
env_vars = load_env_vars(folder_path) env_vars = load_env_vars(folder_path)
if not skip_provider_validation:
if not provider:
provider_models = get_provider_data()
if not provider_models:
return
existing_provider = None existing_provider = None
for provider, env_keys in ENV_VARS.items(): for provider, env_keys in ENV_VARS.items():
if any(key in env_vars for key in env_keys): if any(key in env_vars for key in env_keys):
existing_provider = provider existing_provider = provider
break break
if existing_provider: if existing_provider:
if not click.confirm( if not click.confirm(
f"Found existing environment variable configuration for {existing_provider.capitalize()}. Do you want to override it?" f"Found existing environment variable configuration for {existing_provider.capitalize()}. Do you want to override it?"
): ):
click.secho("Keeping existing provider configuration.", fg="yellow") click.secho("Keeping existing provider configuration.", fg="yellow")
return
provider_models = get_provider_data()
if not provider_models:
return return
provider_models = get_provider_data() while True:
if not provider_models: selected_provider = select_provider(provider_models)
return if selected_provider is None: # User typed 'q'
click.secho("Exiting...", fg="yellow")
sys.exit(0)
if selected_provider: # Valid selection
break
click.secho(
"No provider selected. Please try again or press 'q' to exit.", fg="red"
)
while True: while True:
selected_provider = select_provider(provider_models) selected_model = select_model(selected_provider, provider_models)
if selected_provider is None: # User typed 'q' if selected_model is None: # User typed 'q'
click.secho("Exiting...", fg="yellow") click.secho("Exiting...", fg="yellow")
sys.exit(0) sys.exit(0)
if selected_provider: # Valid selection if selected_model: # Valid selection
break break
click.secho( click.secho(
"No provider selected. Please try again or press 'q' to exit.", fg="red" "No model selected. Please try again or press 'q' to exit.", fg="red"
) )
while True: if selected_provider in PROVIDERS:
selected_model = select_model(selected_provider, provider_models) api_key_var = ENV_VARS[selected_provider][0]
if selected_model is None: # User typed 'q' else:
click.secho("Exiting...", fg="yellow") api_key_var = click.prompt(
sys.exit(0) f"Enter the environment variable name for your {selected_provider.capitalize()} API key",
if selected_model: # Valid selection type=str,
break default="",
click.secho( )
"No model selected. Please try again or press 'q' to exit.", fg="red"
)
if selected_provider in PROVIDERS:
api_key_var = ENV_VARS[selected_provider][0]
else:
api_key_var = click.prompt(
f"Enter the environment variable name for your {selected_provider.capitalize()} API key",
type=str,
default="",
)
api_key_value = ""
click.echo(
f"Enter your {selected_provider.capitalize()} API key (press Enter to skip): ",
nl=False,
)
try:
api_key_value = input()
except (KeyboardInterrupt, EOFError):
api_key_value = "" api_key_value = ""
click.echo(
f"Enter your {selected_provider.capitalize()} API key (press Enter to skip): ",
nl=False,
)
try:
api_key_value = input()
except (KeyboardInterrupt, EOFError):
api_key_value = ""
if api_key_value.strip(): if api_key_value.strip():
env_vars = {api_key_var: api_key_value} env_vars = {api_key_var: api_key_value}
write_env_file(folder_path, env_vars) write_env_file(folder_path, env_vars)
click.secho("API key saved to .env file", fg="green") click.secho("API key saved to .env file", fg="green")
else: else:
click.secho("No API key provided. Skipping .env file creation.", fg="yellow") click.secho("No API key provided. Skipping .env file creation.", fg="yellow")
env_vars["MODEL"] = selected_model env_vars["MODEL"] = selected_model
click.secho(f"Selected model: {selected_model}", fg="green") click.secho(f"Selected model: {selected_model}", fg="green")
package_dir = Path(__file__).parent package_dir = Path(__file__).parent
templates_dir = package_dir / "templates" / "crew" templates_dir = package_dir / "templates" / "crew"

View File

@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }] authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<=3.13" requires-python = ">=3.10,<=3.13"
dependencies = [ dependencies = [
"crewai[tools]>=0.75.1,<1.0.0" "crewai[tools]>=0.76.0,<1.0.0"
] ]
[project.scripts] [project.scripts]

View File

@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }] authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<=3.13" requires-python = ">=3.10,<=3.13"
dependencies = [ dependencies = [
"crewai[tools]>=0.75.1,<1.0.0", "crewai[tools]>=0.76.0,<1.0.0",
] ]
[project.scripts] [project.scripts]

View File

@@ -6,7 +6,7 @@ authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = ">=3.10,<=3.13" python = ">=3.10,<=3.13"
crewai = { extras = ["tools"], version = ">=0.75.1,<1.0.0" } crewai = { extras = ["tools"], version = ">=0.76.0,<1.0.0" }
asyncio = "*" asyncio = "*"
[tool.poetry.scripts] [tool.poetry.scripts]

View File

@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
authors = ["Your Name <you@example.com>"] authors = ["Your Name <you@example.com>"]
requires-python = ">=3.10,<=3.13" requires-python = ">=3.10,<=3.13"
dependencies = [ dependencies = [
"crewai[tools]>=0.75.1,<1.0.0" "crewai[tools]>=0.76.0,<1.0.0"
] ]
[project.scripts] [project.scripts]

View File

@@ -5,6 +5,6 @@ description = "Power up your crews with {{folder_name}}"
readme = "README.md" readme = "README.md"
requires-python = ">=3.10,<=3.13" requires-python = ">=3.10,<=3.13"
dependencies = [ dependencies = [
"crewai[tools]>=0.75.1" "crewai[tools]>=0.76.0"
] ]

1904
uv.lock generated

File diff suppressed because it is too large Load Diff