chore: refactor llms to base models

This commit is contained in:
Greyson LaLonde
2025-11-10 14:22:09 -05:00
parent 0f1c173d02
commit 46785adf58
60 changed files with 706 additions and 612 deletions

View File

@@ -14,7 +14,7 @@ from crewai.knowledge.knowledge_config import KnowledgeConfig
from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
from crewai.llm.base_llm import BaseLLM
from crewai.process import Process
from crewai.tools.tool_calling import InstructorToolCalling
from crewai.tools.tool_usage import ToolUsage

View File

@@ -9,7 +9,7 @@ from crewai.events.types.agent_events import LiteAgentExecutionStartedEvent
from crewai.events.types.tool_usage_events import ToolUsageStartedEvent
from crewai.lite_agent import LiteAgent
from crewai.lite_agent_output import LiteAgentOutput
from crewai.llms.base_llm import BaseLLM
from crewai.llm.base_llm import BaseLLM
from pydantic import BaseModel, Field
import pytest

View File

@@ -590,7 +590,7 @@ interactions:
"<function BaseTool.<lambda> at 0x107389260>", "result_as_answer": "False",
"max_usage_count": "None", "current_usage_count": "0"}], "max_iter": 2, "agent_executor":
"<crewai.agents.crew_agent_executor.CrewAgentExecutor object at 0x130de6540>",
"llm": "<crewai.llms.providers.openai.completion.OpenAICompletion object at
"llm": "<crewai.llm.providers.openai.completion.OpenAICompletion object at
0x130db6de0>", "crew": {"parent_flow": null, "name": "crew", "cache": true,
"tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0, ''i18n'':
{''prompt_file'': None}, ''name'': None, ''prompt_context'': '''', ''description'':
@@ -605,7 +605,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107389260>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x130de6540>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x130de6540>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x130db6de0>, ''crew'': Crew(id=991ac83f-9a29-411f-b0a0-0a335c7a2d0e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -634,7 +634,7 @@ interactions:
''abc.Learn_About_Ai''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'': False, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x130de6540>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x130de6540>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x130db6de0>, ''crew'': Crew(id=991ac83f-9a29-411f-b0a0-0a335c7a2d0e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -657,7 +657,7 @@ interactions:
{"fingerprint": {"metadata": "{}"}}, "callbacks": [], "adapted_agent": false,
"knowledge_config": null, "max_execution_time": null, "agent_ops_agent_name":
"test role", "agent_ops_agent_id": null, "step_callback": null, "use_system_prompt":
true, "function_calling_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
true, "function_calling_llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x130db7020>", "system_template": null, "prompt_template": null, "response_template":
null, "allow_code_execution": false, "respect_context_window": true, "max_retry_limit":
2, "multimodal": false, "inject_date": false, "date_format": "%Y-%m-%d", "code_execution_mode":
@@ -1068,7 +1068,7 @@ interactions:
"<function BaseTool.<lambda> at 0x107e394e0>", "result_as_answer": "False",
"max_usage_count": "None", "current_usage_count": "0"}], "max_iter": 2, "agent_executor":
"<crewai.agents.crew_agent_executor.CrewAgentExecutor object at 0x13b37c980>",
"llm": "<crewai.llms.providers.openai.completion.OpenAICompletion object at
"llm": "<crewai.llm.providers.openai.completion.OpenAICompletion object at
0x13b7563c0>", "crew": {"parent_flow": null, "name": "crew", "cache": true,
"tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0, ''i18n'':
{''prompt_file'': None}, ''name'': None, ''prompt_context'': '''', ''description'':
@@ -1083,7 +1083,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13b37c980>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13b37c980>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13b7563c0>, ''crew'': Crew(id=f38365e9-3206-45b6-8754-950cb03fe57e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1112,7 +1112,7 @@ interactions:
''abc.Learn_About_Ai''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13b37c980>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13b37c980>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13b7563c0>, ''crew'': Crew(id=f38365e9-3206-45b6-8754-950cb03fe57e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1135,7 +1135,7 @@ interactions:
{"fingerprint": {"metadata": "{}"}}, "callbacks": [], "adapted_agent": false,
"knowledge_config": null, "max_execution_time": null, "agent_ops_agent_name":
"test role", "agent_ops_agent_id": null, "step_callback": null, "use_system_prompt":
true, "function_calling_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
true, "function_calling_llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13b756690>", "system_template": null, "prompt_template": null, "response_template":
null, "allow_code_execution": false, "respect_context_window": true, "max_retry_limit":
2, "multimodal": false, "inject_date": false, "date_format": "%Y-%m-%d", "code_execution_mode":

View File

@@ -1274,7 +1274,7 @@ interactions:
"b6cf723e-04c8-40c5-a927-e2078cfbae59", "role": "test role", "goal": "test goal",
"backstory": "test backstory", "cache": true, "verbose": true, "max_rpm": null,
"allow_delegation": false, "tools": [], "max_iter": 6, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1285,7 +1285,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1309,7 +1309,7 @@ interactions:
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1491,7 +1491,7 @@ interactions:
"goal": "test goal", "backstory": "test backstory", "cache": true, "verbose":
true, "max_rpm": null, "allow_delegation": false, "tools": [], "max_iter": 6,
"agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor object
at 0x13ab0abd0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
at 0x13ab0abd0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 2, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1502,7 +1502,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1528,7 +1528,7 @@ interactions:
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1660,7 +1660,7 @@ interactions:
role", "goal": "test goal", "backstory": "test backstory", "cache": true, "verbose":
true, "max_rpm": null, "allow_delegation": false, "tools": [], "max_iter": 6,
"agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor object
at 0x13ab0abd0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
at 0x13ab0abd0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 3, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1671,7 +1671,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1698,7 +1698,7 @@ interactions:
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1839,7 +1839,7 @@ interactions:
"goal": "test goal", "backstory": "test backstory", "cache": true, "verbose":
true, "max_rpm": null, "allow_delegation": false, "tools": [], "max_iter": 6,
"agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor object
at 0x13ab0abd0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
at 0x13ab0abd0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 4, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1850,7 +1850,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1879,7 +1879,7 @@ interactions:
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -2029,7 +2029,7 @@ interactions:
"goal": "test goal", "backstory": "test backstory", "cache": true, "verbose":
true, "max_rpm": null, "allow_delegation": false, "tools": [], "max_iter": 6,
"agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor object
at 0x13ab0abd0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
at 0x13ab0abd0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 5, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -2040,7 +2040,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -2070,7 +2070,7 @@ interactions:
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 6, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab0abd0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab0abd0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab0b050>, ''crew'': Crew(id=004dd8a0-dd87-43fa-bdc8-07f449808028,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler

View File

@@ -1082,7 +1082,7 @@ interactions:
"role": "test role", "goal": "test goal", "backstory": "test backstory", "cache":
true, "verbose": true, "max_rpm": 10, "allow_delegation": false, "tools": [],
"max_iter": 4, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133d41100>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133d41100>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x133d40500>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1093,7 +1093,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': 10, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 4, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133d41100>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133d41100>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x133d40500>, ''crew'': Crew(id=4c6d502e-f6ec-446a-8f76-644563c4aa94,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1117,7 +1117,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': 10, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 4, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133d41100>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133d41100>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x133d40500>, ''crew'': Crew(id=4c6d502e-f6ec-446a-8f76-644563c4aa94,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1910,7 +1910,7 @@ interactions:
"role": "test role", "goal": "test goal", "backstory": "test backstory", "cache":
true, "verbose": true, "max_rpm": 10, "allow_delegation": false, "tools": [],
"max_iter": 4, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10308d610>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10308d610>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x129201640>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1921,7 +1921,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': 10, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 4, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10308d610>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10308d610>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x129201640>, ''crew'': Crew(id=1a07d718-fed5-49fa-bee2-de2db91c9f33,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1945,7 +1945,7 @@ interactions:
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': True, ''max_rpm'': 10, ''allow_delegation'': False, ''tools'':
[], ''max_iter'': 4, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10308d610>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10308d610>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x129201640>, ''crew'': Crew(id=1a07d718-fed5-49fa-bee2-de2db91c9f33,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler

View File

@@ -937,7 +937,7 @@ interactions:
"description_updated": "False", "cache_function": "<function BaseTool.<lambda>
at 0x10614d3a0>", "result_as_answer": "False", "max_usage_count": "None", "current_usage_count":
"0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10f6c3bc0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10f6c3bc0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6c27e0>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -977,7 +977,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x10614d3a0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10f6c3bc0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10f6c3bc0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6c27e0>, ''crew'': Crew(id=49cbb747-f055-4636-bbca-9e8a450c05f6,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -996,7 +996,7 @@ interactions:
''First Agent'', ''goal'': ''First goal'', ''backstory'': ''First backstory'',
''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x11059ca10>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x11059ca10>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6e6ae0>, ''crew'': Crew(id=49cbb747-f055-4636-bbca-9e8a450c05f6,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1007,7 +1007,7 @@ interactions:
''role'': ''Second Agent'', ''goal'': ''Second goal'', ''backstory'': ''Second
backstory'', ''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10f6c3500>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10f6c3500>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6d2000>, ''crew'': Crew(id=49cbb747-f055-4636-bbca-9e8a450c05f6,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1017,7 +1017,7 @@ interactions:
False, ''knowledge_config'': None}"], "process": "hierarchical", "verbose":
false, "memory": false, "short_term_memory": null, "long_term_memory": null,
"entity_memory": null, "external_memory": null, "embedder": null, "usage_metrics":
null, "manager_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
null, "manager_llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6c27e0>", "manager_agent": {"id": "UUID(''b0898472-5e3b-45bb-bd90-05bad0b5a8ce'')",
"role": "''Crew Manager''", "goal": "''Manage the team to complete the task
in the best way possible.''", "backstory": "\"You are a seasoned manager with
@@ -1053,7 +1053,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x10614d3a0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x10f6c3bc0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x10f6c3bc0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x10f6c27e0>", "crew": "Crew(id=49cbb747-f055-4636-bbca-9e8a450c05f6,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1)", "i18n":
"{''prompt_file'': None}", "cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler
@@ -1805,7 +1805,7 @@ interactions:
"description_updated": "False", "cache_function": "<function BaseTool.<lambda>
at 0x107e394e0>", "result_as_answer": "False", "max_usage_count": "None", "current_usage_count":
"0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1388bedb0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1388bedb0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bf710>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -1845,7 +1845,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1388bedb0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1388bedb0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bf710>, ''crew'': Crew(id=4d744f3e-0589-4d1d-b1c1-6aa8b52478ac,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1864,7 +1864,7 @@ interactions:
''First Agent'', ''goal'': ''First goal'', ''backstory'': ''First backstory'',
''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1388d5c70>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1388d5c70>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bde80>, ''crew'': Crew(id=4d744f3e-0589-4d1d-b1c1-6aa8b52478ac,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1875,7 +1875,7 @@ interactions:
''role'': ''Second Agent'', ''goal'': ''Second goal'', ''backstory'': ''Second
backstory'', ''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1388bf7d0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1388bf7d0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bfb90>, ''crew'': Crew(id=4d744f3e-0589-4d1d-b1c1-6aa8b52478ac,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -1885,7 +1885,7 @@ interactions:
False, ''knowledge_config'': None}"], "process": "hierarchical", "verbose":
false, "memory": false, "short_term_memory": null, "long_term_memory": null,
"entity_memory": null, "external_memory": null, "embedder": null, "usage_metrics":
null, "manager_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
null, "manager_llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bf710>", "manager_agent": {"id": "UUID(''09794b42-447f-4b7a-b634-3a861f457357'')",
"role": "''Crew Manager''", "goal": "''Manage the team to complete the task
in the best way possible.''", "backstory": "\"You are a seasoned manager with
@@ -1921,7 +1921,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1388bedb0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1388bedb0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x1388bf710>", "crew": "Crew(id=4d744f3e-0589-4d1d-b1c1-6aa8b52478ac,
process=Process.hierarchical, number_of_agents=2, number_of_tasks=1)", "i18n":
"{''prompt_file'': None}", "cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler

View File

@@ -126,7 +126,7 @@ interactions:
a freelancer and is now working on doing research and analysis for a new customer.\",
''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b973fe0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b973fe0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b910290>, ''crew'': None, ''i18n'': {''prompt_file'': None}, ''cache_handler'':
{}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler object at 0x12b9934d0>,
''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'':
@@ -149,7 +149,7 @@ interactions:
writing content for a new customer.\", ''cache'': True, ''verbose'': False,
''max_rpm'': None, ''allow_delegation'': False, ''tools'': [], ''max_iter'':
25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b7bbbf0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b7bbbf0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b9903b0>, ''crew'': None, ''i18n'': {''prompt_file'': None}, ''cache_handler'':
{}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler object at 0x12b631bb0>,
''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'':
@@ -169,7 +169,7 @@ interactions:
a freelancer and is now working on doing research and analysis for a new customer.\"",
"cache": "True", "verbose": "False", "max_rpm": "None", "allow_delegation":
"False", "tools": "[]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b973fe0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b973fe0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b910290>", "crew": "None", "i18n": "{''prompt_file'': None}",
"cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler
object at 0x12b9934d0>", "tools_results": "[]", "max_tokens": "None", "knowledge":
@@ -182,7 +182,7 @@ interactions:
You work as a freelancer and are now working on writing content for a new customer.\"",
"cache": "True", "verbose": "False", "max_rpm": "None", "allow_delegation":
"False", "tools": "[]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b7bbbf0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b7bbbf0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b9903b0>", "crew": "None", "i18n": "{''prompt_file'': None}",
"cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler
object at 0x12b631bb0>", "tools_results": "[]", "max_tokens": "None", "knowledge":
@@ -214,7 +214,7 @@ interactions:
a freelancer and is now working on doing research and analysis for a new customer.\",
''cache'': True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'':
False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b973fe0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b973fe0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b910290>, ''crew'': None, ''i18n'': {''prompt_file'': None}, ''cache_handler'':
{}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler object at 0x12b9934d0>,
''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'':
@@ -237,7 +237,7 @@ interactions:
writing content for a new customer.\", ''cache'': True, ''verbose'': False,
''max_rpm'': None, ''allow_delegation'': False, ''tools'': [], ''max_iter'':
25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b7bbbf0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b7bbbf0>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b9903b0>, ''crew'': None, ''i18n'': {''prompt_file'': None}, ''cache_handler'':
{}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler object at 0x12b631bb0>,
''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'':
@@ -257,7 +257,7 @@ interactions:
a freelancer and is now working on doing research and analysis for a new customer.\"",
"cache": "True", "verbose": "False", "max_rpm": "None", "allow_delegation":
"False", "tools": "[]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b973fe0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b973fe0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b910290>", "crew": "None", "i18n": "{''prompt_file'': None}",
"cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler
object at 0x12b9934d0>", "tools_results": "[]", "max_tokens": "None", "knowledge":
@@ -270,7 +270,7 @@ interactions:
You work as a freelancer and are now working on writing content for a new customer.\"",
"cache": "True", "verbose": "False", "max_rpm": "None", "allow_delegation":
"False", "tools": "[]", "max_iter": "25", "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x12b7bbbf0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x12b7bbbf0>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x12b9903b0>", "crew": "None", "i18n": "{''prompt_file'': None}",
"cache_handler": "{}", "tools_handler": "<crewai.agents.tools_handler.ToolsHandler
object at 0x12b631bb0>", "tools_results": "[]", "max_tokens": "None", "knowledge":

View File

@@ -468,7 +468,7 @@ interactions:
"description_updated": "False", "cache_function": "<function BaseTool.<lambda>
at 0x107ff9440>", "result_as_answer": "True", "max_usage_count": "None", "current_usage_count":
"0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e030>", "llm": "<crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>", "crew": {"parent_flow": null, "name": "crew", "cache":
true, "tasks": ["{''used_tools'': 0, ''tools_errors'': 0, ''delegations'': 0,
''i18n'': {''prompt_file'': None}, ''name'': None, ''prompt_context'': '''',
@@ -484,7 +484,7 @@ interactions:
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107ff9440>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e030>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>, ''crew'': Crew(id=f74956dd-60d0-402a-a703-2cc3d767397f,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
@@ -512,7 +512,7 @@ interactions:
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107ff9440>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e030>, ''llm'': <crewai.llm.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>, ''crew'': Crew(id=f74956dd-60d0-402a-a703-2cc3d767397f,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler

View File

@@ -34,7 +34,7 @@ def test_anthropic_completion_is_used_when_claude_provider():
"""
llm = LLM(model="claude/claude-3-5-sonnet-20241022")
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.provider == "anthropic"
assert llm.model == "claude-3-5-sonnet-20241022"
@@ -47,7 +47,7 @@ def test_anthropic_tool_use_conversation_flow():
Test that the Anthropic completion properly handles tool use conversation flow
"""
from unittest.mock import Mock, patch
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
from anthropic.types.tool_use_block import ToolUseBlock
# Create AnthropicCompletion instance
@@ -123,7 +123,7 @@ def test_anthropic_completion_module_is_imported():
"""
Test that the completion module is properly imported when using Anthropic provider
"""
module_name = "crewai.llms.providers.anthropic.completion"
module_name = "crewai.llm.providers.anthropic.completion"
# Remove module from cache if it exists
if module_name in sys.modules:
@@ -175,7 +175,7 @@ def test_anthropic_completion_initialization_parameters():
api_key="test-key"
)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.model == "claude-3-5-sonnet-20241022"
assert llm.temperature == 0.7
@@ -195,7 +195,7 @@ def test_anthropic_specific_parameters():
timeout=60
)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.stop_sequences == ["Human:", "Assistant:"]
assert llm.stream == True
@@ -390,7 +390,7 @@ def test_anthropic_raises_error_when_model_not_supported():
"""Test that AnthropicCompletion raises ValueError when model not supported"""
# Mock the Anthropic client to raise an error
with patch('crewai.llms.providers.anthropic.completion.Anthropic') as mock_anthropic_class:
with patch('crewai.llm.providers.anthropic.completion.Anthropic') as mock_anthropic_class:
mock_client = MagicMock()
mock_anthropic_class.return_value = mock_client
@@ -427,7 +427,7 @@ def test_anthropic_client_params_setup():
client_params=custom_client_params
)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.client_params == custom_client_params
@@ -462,7 +462,7 @@ def test_anthropic_client_params_override_defaults():
)
# Verify this is actually AnthropicCompletion, not LiteLLM fallback
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
merged_params = llm._get_client_params()
@@ -487,7 +487,7 @@ def test_anthropic_client_params_none():
client_params=None
)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.client_params is None
@@ -515,7 +515,7 @@ def test_anthropic_client_params_empty_dict():
client_params={}
)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion)
assert llm.client_params == {}
@@ -538,7 +538,7 @@ def test_anthropic_model_detection():
for model_name in anthropic_test_cases:
llm = LLM(model=model_name)
from crewai.llms.providers.anthropic.completion import AnthropicCompletion
from crewai.llm.providers.anthropic.completion import AnthropicCompletion
assert isinstance(llm, AnthropicCompletion), f"Failed for model: {model_name}"

View File

@@ -37,7 +37,7 @@ def test_azure_completion_is_used_when_azure_openai_provider():
"""
llm = LLM(model="azure_openai/gpt-4")
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
assert llm.provider == "azure"
assert llm.model == "gpt-4"
@@ -47,7 +47,7 @@ def test_azure_tool_use_conversation_flow():
"""
Test that the Azure completion properly handles tool use conversation flow
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
from azure.ai.inference.models import ChatCompletionsToolCall
# Create AzureCompletion instance
@@ -105,7 +105,7 @@ def test_azure_completion_module_is_imported():
"""
Test that the completion module is properly imported when using Azure provider
"""
module_name = "crewai.llms.providers.azure.completion"
module_name = "crewai.llm.providers.azure.completion"
# Remove module from cache if it exists
if module_name in sys.modules:
@@ -160,7 +160,7 @@ def test_azure_completion_initialization_parameters():
endpoint="https://test.openai.azure.com"
)
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
assert llm.model == "gpt-4"
assert llm.temperature == 0.7
@@ -182,7 +182,7 @@ def test_azure_specific_parameters():
endpoint="https://test.openai.azure.com"
)
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
assert llm.stop == ["Human:", "Assistant:"]
assert llm.stream == True
@@ -374,7 +374,7 @@ def test_azure_completion_with_tools():
def test_azure_raises_error_when_endpoint_missing():
"""Test that AzureCompletion raises ValueError when endpoint is missing"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
# Clear environment variables
with patch.dict(os.environ, {}, clear=True):
@@ -383,7 +383,7 @@ def test_azure_raises_error_when_endpoint_missing():
def test_azure_raises_error_when_api_key_missing():
"""Test that AzureCompletion raises ValueError when API key is missing"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
# Clear environment variables
with patch.dict(os.environ, {}, clear=True):
@@ -400,7 +400,7 @@ def test_azure_endpoint_configuration():
}):
llm = LLM(model="azure/gpt-4")
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
assert llm.endpoint == "https://test1.openai.azure.com/openai/deployments/gpt-4"
@@ -426,7 +426,7 @@ def test_azure_api_key_configuration():
}):
llm = LLM(model="azure/gpt-4")
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
assert llm.api_key == "test-azure-key"
@@ -437,7 +437,7 @@ def test_azure_model_capabilities():
"""
# Test GPT-4 model (supports function calling)
llm_gpt4 = LLM(model="azure/gpt-4")
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm_gpt4, AzureCompletion)
assert llm_gpt4.is_openai_model == True
assert llm_gpt4.supports_function_calling() == True
@@ -466,7 +466,7 @@ def test_azure_completion_params_preparation():
max_tokens=1000
)
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
messages = [{"role": "user", "content": "Hello"}]
@@ -494,7 +494,7 @@ def test_azure_model_detection():
for model_name in azure_test_cases:
llm = LLM(model=model_name)
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion), f"Failed for model: {model_name}"
@@ -662,7 +662,7 @@ def test_azure_streaming_completion():
"""
Test that streaming completions work properly
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
from azure.ai.inference.models import StreamingChatCompletionsUpdate
llm = LLM(model="azure/gpt-4", stream=True)
@@ -698,7 +698,7 @@ def test_azure_api_version_default():
"""
llm = LLM(model="azure/gpt-4")
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
assert isinstance(llm, AzureCompletion)
# Should use default or environment variable
assert llm.api_version is not None
@@ -721,7 +721,7 @@ def test_azure_openai_endpoint_url_construction():
"""
Test that Azure OpenAI endpoint URLs are automatically constructed correctly
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -738,7 +738,7 @@ def test_azure_openai_endpoint_url_with_trailing_slash():
"""
Test that trailing slashes are handled correctly in endpoint URLs
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -804,7 +804,7 @@ def test_non_azure_openai_model_parameter_included():
"""
Test that model parameter IS included for non-Azure OpenAI endpoints
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -824,7 +824,7 @@ def test_azure_message_formatting_with_role():
"""
Test that messages are formatted with both 'role' and 'content' fields
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
llm = LLM(model="azure/gpt-4")
@@ -886,7 +886,7 @@ def test_azure_improved_error_messages():
"""
Test that improved error messages are provided for common HTTP errors
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
from azure.core.exceptions import HttpResponseError
llm = LLM(model="azure/gpt-4")
@@ -918,7 +918,7 @@ def test_azure_api_version_properly_passed():
"""
Test that api_version is properly passed to the client
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -940,7 +940,7 @@ def test_azure_timeout_and_max_retries_stored():
"""
Test that timeout and max_retries parameters are stored
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -960,7 +960,7 @@ def test_azure_complete_params_include_optional_params():
"""
Test that optional parameters are included in completion params when set
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -992,7 +992,7 @@ def test_azure_endpoint_validation_with_azure_prefix():
"""
Test that 'azure/' prefix is properly stripped when constructing endpoint
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
with patch.dict(os.environ, {
"AZURE_API_KEY": "test-key",
@@ -1009,7 +1009,7 @@ def test_azure_message_formatting_preserves_all_roles():
"""
Test that all message roles (system, user, assistant) are preserved correctly
"""
from crewai.llms.providers.azure.completion import AzureCompletion
from crewai.llm.providers.azure.completion import AzureCompletion
llm = LLM(model="azure/gpt-4")

View File

@@ -19,7 +19,7 @@ def mock_aws_credentials():
"AWS_DEFAULT_REGION": "us-east-1"
}):
# Mock boto3 Session to prevent actual AWS connections
with patch('crewai.llms.providers.bedrock.completion.Session') as mock_session_class:
with patch('crewai.llm.providers.bedrock.completion.Session') as mock_session_class:
# Create mock session instance
mock_session_instance = MagicMock()
mock_client = MagicMock()
@@ -67,7 +67,7 @@ def test_bedrock_completion_module_is_imported():
"""
Test that the completion module is properly imported when using Bedrock provider
"""
module_name = "crewai.llms.providers.bedrock.completion"
module_name = "crewai.llm.providers.bedrock.completion"
# Remove module from cache if it exists
if module_name in sys.modules:
@@ -124,7 +124,7 @@ def test_bedrock_completion_initialization_parameters():
region_name="us-west-2"
)
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm, BedrockCompletion)
assert llm.model == "anthropic.claude-3-5-sonnet-20241022-v2:0"
assert llm.temperature == 0.7
@@ -145,7 +145,7 @@ def test_bedrock_specific_parameters():
region_name="us-east-1"
)
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm, BedrockCompletion)
assert llm.stop_sequences == ["Human:", "Assistant:"]
assert llm.stream == True
@@ -369,7 +369,7 @@ def test_bedrock_aws_credentials_configuration():
}):
llm = LLM(model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0")
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm, BedrockCompletion)
assert llm.region_name == "us-east-1"
@@ -390,7 +390,7 @@ def test_bedrock_model_capabilities():
"""
# Test Claude model
llm_claude = LLM(model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0")
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm_claude, BedrockCompletion)
assert llm_claude.is_claude_model == True
assert llm_claude.supports_tools == True
@@ -413,7 +413,7 @@ def test_bedrock_inference_config():
max_tokens=1000
)
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm, BedrockCompletion)
# Test config preparation
@@ -444,7 +444,7 @@ def test_bedrock_model_detection():
for model_name in bedrock_test_cases:
llm = LLM(model=model_name)
from crewai.llms.providers.bedrock.completion import BedrockCompletion
from crewai.llm.providers.bedrock.completion import BedrockCompletion
assert isinstance(llm, BedrockCompletion), f"Failed for model: {model_name}"

View File

@@ -34,7 +34,7 @@ def test_gemini_completion_is_used_when_gemini_provider():
"""
llm = LLM(model="gemini/gemini-2.0-flash-001")
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
assert llm.provider == "gemini"
assert llm.model == "gemini-2.0-flash-001"
@@ -47,7 +47,7 @@ def test_gemini_tool_use_conversation_flow():
Test that the Gemini completion properly handles tool use conversation flow
"""
from unittest.mock import Mock, patch
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
# Create GeminiCompletion instance
completion = GeminiCompletion(model="gemini-2.0-flash-001")
@@ -102,7 +102,7 @@ def test_gemini_completion_module_is_imported():
"""
Test that the completion module is properly imported when using Google provider
"""
module_name = "crewai.llms.providers.gemini.completion"
module_name = "crewai.llm.providers.gemini.completion"
# Remove module from cache if it exists
if module_name in sys.modules:
@@ -159,7 +159,7 @@ def test_gemini_completion_initialization_parameters():
api_key="test-key"
)
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
assert llm.model == "gemini-2.0-flash-001"
assert llm.temperature == 0.7
@@ -186,7 +186,7 @@ def test_gemini_specific_parameters():
location="us-central1"
)
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
assert llm.stop_sequences == ["Human:", "Assistant:"]
assert llm.stream == True
@@ -382,7 +382,7 @@ def test_gemini_raises_error_when_model_not_supported():
"""Test that GeminiCompletion raises ValueError when model not supported"""
# Mock the Google client to raise an error
with patch('crewai.llms.providers.gemini.completion.genai') as mock_genai:
with patch('crewai.llm.providers.gemini.completion.genai') as mock_genai:
mock_client = MagicMock()
mock_genai.Client.return_value = mock_client
@@ -420,7 +420,7 @@ def test_gemini_vertex_ai_setup():
location="us-west1"
)
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
assert llm.project == "test-project"
@@ -435,7 +435,7 @@ def test_gemini_api_key_configuration():
with patch.dict(os.environ, {"GOOGLE_API_KEY": "test-google-key"}):
llm = LLM(model="google/gemini-2.0-flash-001")
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
assert llm.api_key == "test-google-key"
@@ -453,7 +453,7 @@ def test_gemini_model_capabilities():
"""
# Test Gemini 2.0 model
llm_2_0 = LLM(model="google/gemini-2.0-flash-001")
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm_2_0, GeminiCompletion)
assert llm_2_0.is_gemini_2 == True
assert llm_2_0.supports_tools == True
@@ -477,7 +477,7 @@ def test_gemini_generation_config():
max_output_tokens=1000
)
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion)
# Test config preparation
@@ -504,7 +504,7 @@ def test_gemini_model_detection():
for model_name in gemini_test_cases:
llm = LLM(model=model_name)
from crewai.llms.providers.gemini.completion import GeminiCompletion
from crewai.llm.providers.gemini.completion import GeminiCompletion
assert isinstance(llm, GeminiCompletion), f"Failed for model: {model_name}"

View File

@@ -6,7 +6,7 @@ import httpx
import pytest
from crewai.llm import LLM
from crewai.llms.hooks.base import BaseInterceptor
from crewai.llm.hooks.base import BaseInterceptor
@pytest.fixture(autouse=True)

View File

@@ -3,7 +3,7 @@
import httpx
import pytest
from crewai.llms.hooks.base import BaseInterceptor
from crewai.llm.hooks.base import BaseInterceptor
class SimpleInterceptor(BaseInterceptor[httpx.Request, httpx.Response]):

View File

@@ -4,7 +4,7 @@ import httpx
import pytest
from crewai.llm import LLM
from crewai.llms.hooks.base import BaseInterceptor
from crewai.llm.hooks.base import BaseInterceptor
class OpenAITestInterceptor(BaseInterceptor[httpx.Request, httpx.Response]):

View File

@@ -5,8 +5,8 @@ from unittest.mock import Mock
import httpx
import pytest
from crewai.llms.hooks.base import BaseInterceptor
from crewai.llms.hooks.transport import AsyncHTTPTransport, HTTPTransport
from crewai.llm.hooks.base import BaseInterceptor
from crewai.llm.hooks.transport import AsyncHTTPTransport, HTTPTransport
class TrackingInterceptor(BaseInterceptor[httpx.Request, httpx.Response]):

View File

@@ -6,7 +6,7 @@ import httpx
import pytest
from crewai.llm import LLM
from crewai.llms.hooks.base import BaseInterceptor
from crewai.llm.hooks.base import BaseInterceptor
@pytest.fixture(autouse=True)

View File

@@ -6,7 +6,7 @@ import openai
import pytest
from crewai.llm import LLM
from crewai.llms.providers.openai.completion import OpenAICompletion
from crewai.llm.providers.openai.completion import OpenAICompletion
from crewai.crew import Crew
from crewai.agent import Agent
from crewai.task import Task
@@ -29,7 +29,7 @@ def test_openai_completion_is_used_when_no_provider_prefix():
"""
llm = LLM(model="gpt-4o")
from crewai.llms.providers.openai.completion import OpenAICompletion
from crewai.llm.providers.openai.completion import OpenAICompletion
assert isinstance(llm, OpenAICompletion)
assert llm.provider == "openai"
assert llm.model == "gpt-4o"
@@ -63,7 +63,7 @@ def test_openai_completion_module_is_imported():
"""
Test that the completion module is properly imported when using OpenAI provider
"""
module_name = "crewai.llms.providers.openai.completion"
module_name = "crewai.llm.providers.openai.completion"
# Remove module from cache if it exists
if module_name in sys.modules:
@@ -114,7 +114,7 @@ def test_openai_completion_initialization_parameters():
api_key="test-key"
)
from crewai.llms.providers.openai.completion import OpenAICompletion
from crewai.llm.providers.openai.completion import OpenAICompletion
assert isinstance(llm, OpenAICompletion)
assert llm.model == "gpt-4o"
assert llm.temperature == 0.7
@@ -335,7 +335,7 @@ def test_openai_completion_call_returns_usage_metrics():
def test_openai_raises_error_when_model_not_supported():
"""Test that OpenAICompletion raises ValueError when model not supported"""
with patch('crewai.llms.providers.openai.completion.OpenAI') as mock_openai_class:
with patch('crewai.llm.providers.openai.completion.OpenAI') as mock_openai_class:
mock_client = MagicMock()
mock_openai_class.return_value = mock_client

View File

@@ -2,7 +2,7 @@ from typing import Any, Dict, List, Optional, Union
import pytest
from crewai import Agent, Crew, Process, Task
from crewai.llms.base_llm import BaseLLM
from crewai.llm.base_llm import BaseLLM
from crewai.utilities.llm_utils import create_llm

View File

@@ -743,7 +743,7 @@ def test_llm_emits_call_failed_event():
error_message = "OpenAI API call failed: Simulated API failure"
with patch(
"crewai.llms.providers.openai.completion.OpenAICompletion._handle_completion"
"crewai.llm.providers.openai.completion.OpenAICompletion._handle_completion"
) as mock_handle_completion:
mock_handle_completion.side_effect = Exception("Simulated API failure")

View File

@@ -4,7 +4,7 @@ from unittest.mock import patch
from crewai.cli.constants import DEFAULT_LLM_MODEL
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
from crewai.llm.base_llm import BaseLLM
from crewai.utilities.llm_utils import create_llm
import pytest