diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index 9d1d0beab..5e302cf1c 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -397,6 +397,53 @@ result = crew.kickoff(inputs={"question": "What city does John live in and how o John is 30 years old and lives in San Francisco. ``` + +## Query Rewriting + +CrewAI implements an intelligent query rewriting mechanism to optimize knowledge retrieval. When an agent needs to search through knowledge sources, the raw task prompt is automatically transformed into a more effective search query. + +### How Query Rewriting Works + +1. When an agent executes a task with knowledge sources available, the `_get_knowledge_search_query` method is triggered +2. The agent's LLM is used to transform the original task prompt into an optimized search query +3. This optimized query is then used to retrieve relevant information from knowledge sources + +### Benefits of Query Rewriting + + + + By focusing on key concepts and removing irrelevant content, query rewriting helps retrieve more relevant information. + + + The rewritten queries are designed to be more specific and context-aware for vector database retrieval. + + + +### Implementation Details + +Query rewriting happens transparently using a system prompt that instructs the LLM to: + +- Focus on key words of the intended task +- Make the query more specific and context-aware +- Remove irrelevant content like output format instructions +- Generate only the rewritten query without preamble or postamble + + + This mechanism is fully automatic and requires no configuration from users. The agent's LLM is used to perform the query rewriting, so using a more capable LLM can improve the quality of rewritten queries. + + +### Example + +```python +# Original task prompt +task_prompt = "Answer the following questions about the user's favorite movies: What movie did John watch last week? Format your answer in JSON." + +# Behind the scenes, this might be rewritten as: +rewritten_query = "What movies did John watch last week?" +``` + +The rewritten query is more focused on the core information need and removes irrelevant instructions about output formatting. + ## Clearing Knowledge If you need to clear the knowledge stored in CrewAI, you can use the `crewai reset-memories` command with the `--knowledge` option. diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 73fbcd2fb..dc637967f 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -31,6 +31,14 @@ from crewai.utilities.events.agent_events import ( AgentExecutionStartedEvent, ) from crewai.utilities.events.crewai_event_bus import crewai_event_bus +from crewai.utilities.events.knowledge_events import ( + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeQueryStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeRetrievalStartedEvent, + KnowledgeSearchQueryFailedEvent, +) from crewai.utilities.llm_utils import create_llm from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.training_handler import CrewTrainingHandler @@ -122,6 +130,10 @@ class Agent(BaseAgent): default=None, description="Knowledge context for the crew.", ) + knowledge_search_query: Optional[str] = Field( + default=None, + description="Knowledge search query for the agent dynamically generated by the agent.", + ) @model_validator(mode="after") def post_init_setup(self): @@ -185,7 +197,7 @@ class Agent(BaseAgent): self, task: Task, context: Optional[str] = None, - tools: Optional[List[BaseTool]] = None + tools: Optional[List[BaseTool]] = None, ) -> str: """Execute a task with the agent. @@ -245,27 +257,65 @@ class Agent(BaseAgent): knowledge_config = ( self.knowledge_config.model_dump() if self.knowledge_config else {} ) - if self.knowledge: - agent_knowledge_snippets = self.knowledge.query( - [task.prompt()], **knowledge_config - ) - if agent_knowledge_snippets: - self.agent_knowledge_context = extract_knowledge_context( - agent_knowledge_snippets - ) - if self.agent_knowledge_context: - task_prompt += self.agent_knowledge_context - if self.crew: - knowledge_snippets = self.crew.query_knowledge( - [task.prompt()], **knowledge_config + if self.knowledge: + crewai_event_bus.emit( + self, + event=KnowledgeRetrievalStartedEvent( + agent=self, + ), ) - if knowledge_snippets: - self.crew_knowledge_context = extract_knowledge_context( - knowledge_snippets + try: + self.knowledge_search_query = self._get_knowledge_search_query( + task_prompt + ) + if self.knowledge_search_query: + agent_knowledge_snippets = self.knowledge.query( + [self.knowledge_search_query], **knowledge_config + ) + if agent_knowledge_snippets: + self.agent_knowledge_context = extract_knowledge_context( + agent_knowledge_snippets + ) + if self.agent_knowledge_context: + task_prompt += self.agent_knowledge_context + if self.crew: + knowledge_snippets = self.crew.query_knowledge( + [self.knowledge_search_query], **knowledge_config + ) + if knowledge_snippets: + self.crew_knowledge_context = extract_knowledge_context( + knowledge_snippets + ) + if self.crew_knowledge_context: + task_prompt += self.crew_knowledge_context + + crewai_event_bus.emit( + self, + event=KnowledgeRetrievalCompletedEvent( + query=self.knowledge_search_query, + agent=self, + retrieved_knowledge=( + (self.agent_knowledge_context or "") + + ( + "\n" + if self.agent_knowledge_context + and self.crew_knowledge_context + else "" + ) + + (self.crew_knowledge_context or "") + ), + ), + ) + except Exception as e: + crewai_event_bus.emit( + self, + event=KnowledgeSearchQueryFailedEvent( + query=self.knowledge_search_query or "", + agent=self, + error=str(e), + ), ) - if self.crew_knowledge_context: - task_prompt += self.crew_knowledge_context tools = tools or self.tools or [] self.create_agent_executor(tools=tools, task=task) @@ -288,12 +338,19 @@ class Agent(BaseAgent): # Determine execution method based on timeout setting if self.max_execution_time is not None: - if not isinstance(self.max_execution_time, int) or self.max_execution_time <= 0: - raise ValueError("Max Execution time must be a positive integer greater than zero") - result = self._execute_with_timeout(task_prompt, task, self.max_execution_time) + if ( + not isinstance(self.max_execution_time, int) + or self.max_execution_time <= 0 + ): + raise ValueError( + "Max Execution time must be a positive integer greater than zero" + ) + result = self._execute_with_timeout( + task_prompt, task, self.max_execution_time + ) else: result = self._execute_without_timeout(task_prompt, task) - + except TimeoutError as e: # Propagate TimeoutError without retry crewai_event_bus.emit( @@ -345,54 +402,46 @@ class Agent(BaseAgent): ) return result - def _execute_with_timeout( - self, - task_prompt: str, - task: Task, - timeout: int - ) -> str: + def _execute_with_timeout(self, task_prompt: str, task: Task, timeout: int) -> str: """Execute a task with a timeout. - + Args: task_prompt: The prompt to send to the agent. task: The task being executed. timeout: Maximum execution time in seconds. - + Returns: The output of the agent. - + Raises: TimeoutError: If execution exceeds the timeout. RuntimeError: If execution fails for other reasons. """ import concurrent.futures + with concurrent.futures.ThreadPoolExecutor() as executor: future = executor.submit( - self._execute_without_timeout, - task_prompt=task_prompt, - task=task + self._execute_without_timeout, task_prompt=task_prompt, task=task ) - + try: return future.result(timeout=timeout) except concurrent.futures.TimeoutError: future.cancel() - raise TimeoutError(f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task.") + raise TimeoutError( + f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task." + ) except Exception as e: future.cancel() raise RuntimeError(f"Task execution failed: {str(e)}") - def _execute_without_timeout( - self, - task_prompt: str, - task: Task - ) -> str: + def _execute_without_timeout(self, task_prompt: str, task: Task) -> str: """Execute a task without a timeout. - + Args: task_prompt: The prompt to send to the agent. task: The task being executed. - + Returns: The output of the agent. """ @@ -560,6 +609,61 @@ class Agent(BaseAgent): def set_fingerprint(self, fingerprint: Fingerprint): self.security_config.fingerprint = fingerprint + def _get_knowledge_search_query(self, task_prompt: str) -> str | None: + """Generate a search query for the knowledge base based on the task description.""" + crewai_event_bus.emit( + self, + event=KnowledgeQueryStartedEvent( + task_prompt=task_prompt, + agent=self, + ), + ) + query = self.i18n.slice("knowledge_search_query").format( + task_prompt=task_prompt + ) + rewriter_prompt = self.i18n.slice("knowledge_search_query_system_prompt") + if not isinstance(self.llm, BaseLLM): + self._logger.log( + "warning", + f"Knowledge search query failed: LLM for agent '{self.role}' is not an instance of BaseLLM", + ) + crewai_event_bus.emit( + self, + event=KnowledgeQueryFailedEvent( + agent=self, + error="LLM is not compatible with knowledge search queries", + ), + ) + return None + + try: + rewritten_query = self.llm.call( + [ + { + "role": "system", + "content": rewriter_prompt, + }, + {"role": "user", "content": query}, + ] + ) + crewai_event_bus.emit( + self, + event=KnowledgeQueryCompletedEvent( + query=query, + agent=self, + ), + ) + return rewritten_query + except Exception as e: + crewai_event_bus.emit( + self, + event=KnowledgeQueryFailedEvent( + agent=self, + error=str(e), + ), + ) + return None + def kickoff( self, messages: Union[str, List[Dict[str, str]]], diff --git a/src/crewai/translations/en.json b/src/crewai/translations/en.json index c220e2279..74cdbb032 100644 --- a/src/crewai/translations/en.json +++ b/src/crewai/translations/en.json @@ -27,7 +27,9 @@ "feedback_instructions": "User feedback: {feedback}\nInstructions: Use this feedback to enhance the next output iteration.\nNote: Do not respond or add commentary.", "lite_agent_system_prompt_with_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\n{tools}\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: you should always think about what to do\nAction: the action to take, only one name of [{tool_names}], just the name, exactly as it's written.\nAction Input: the input to the action, just a simple JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce all necessary information is gathered, return the following format:\n\n```\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n```", "lite_agent_system_prompt_without_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nTo give my best complete final answer to the task respond using the exact following format:\n\nThought: I now can give a great answer\nFinal Answer: Your final answer must be the great and the most complete as possible, it must be outcome described.\n\nI MUST use these formats, my job depends on it!", - "lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python." + "lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python.", + "knowledge_search_query": "The original query is: {task_prompt}.", + "knowledge_search_query_system_prompt": "Your goal is to rewrite the user query so that it is optimized for retrieval from a vector database. Consider how the query will be used to find relevant documents, and aim to make it more specific and context-aware. \n\n Do not include any other text than the rewritten query, especially any preamble or postamble and only add expected output format if its relevant to the rewritten query. \n\n Focus on the key words of the intended task and to retrieve the most relevant information. \n\n There will be some extra context provided that might need to be removed such as expected_output formats structured_outputs and other instructions." }, "errors": { "force_final_answer_error": "You can't keep going, here is the best final answer you generated:\n\n {formatted_answer}", diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index 3b837d842..a76b87964 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -8,6 +8,14 @@ from crewai.telemetry.telemetry import Telemetry from crewai.utilities import Logger from crewai.utilities.constants import EMITTER_COLOR from crewai.utilities.events.base_event_listener import BaseEventListener +from crewai.utilities.events.knowledge_events import ( + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeQueryStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeRetrievalStartedEvent, + KnowledgeSearchQueryFailedEvent, +) from crewai.utilities.events.llm_events import ( LLMCallCompletedEvent, LLMCallFailedEvent, @@ -57,6 +65,8 @@ class EventListener(BaseEventListener): execution_spans: Dict[Task, Any] = Field(default_factory=dict) next_chunk = 0 text_stream = StringIO() + knowledge_retrieval_in_progress = False + knowledge_query_in_progress = False def __new__(cls): if cls._instance is None: @@ -342,5 +352,59 @@ class EventListener(BaseEventListener): def on_crew_test_failed(source, event: CrewTestFailedEvent): self.formatter.handle_crew_test_failed(event.crew_name or "Crew") + @crewai_event_bus.on(KnowledgeRetrievalStartedEvent) + def on_knowledge_retrieval_started( + source, event: KnowledgeRetrievalStartedEvent + ): + if self.knowledge_retrieval_in_progress: + return + + self.knowledge_retrieval_in_progress = True + + self.formatter.handle_knowledge_retrieval_started( + self.formatter.current_agent_branch, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(KnowledgeRetrievalCompletedEvent) + def on_knowledge_retrieval_completed( + source, event: KnowledgeRetrievalCompletedEvent + ): + if not self.knowledge_retrieval_in_progress: + return + + self.knowledge_retrieval_in_progress = False + self.formatter.handle_knowledge_retrieval_completed( + self.formatter.current_agent_branch, + self.formatter.current_crew_tree, + event.retrieved_knowledge, + ) + + @crewai_event_bus.on(KnowledgeQueryStartedEvent) + def on_knowledge_query_started(source, event: KnowledgeQueryStartedEvent): + pass + + @crewai_event_bus.on(KnowledgeQueryFailedEvent) + def on_knowledge_query_failed(source, event: KnowledgeQueryFailedEvent): + self.formatter.handle_knowledge_query_failed( + self.formatter.current_agent_branch, + event.error, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(KnowledgeQueryCompletedEvent) + def on_knowledge_query_completed(source, event: KnowledgeQueryCompletedEvent): + pass + + @crewai_event_bus.on(KnowledgeSearchQueryFailedEvent) + def on_knowledge_search_query_failed( + source, event: KnowledgeSearchQueryFailedEvent + ): + self.formatter.handle_knowledge_search_query_failed( + self.formatter.current_agent_branch, + event.error, + self.formatter.current_crew_tree, + ) + event_listener = EventListener() diff --git a/src/crewai/utilities/events/knowledge_events.py b/src/crewai/utilities/events/knowledge_events.py new file mode 100644 index 000000000..e512ca575 --- /dev/null +++ b/src/crewai/utilities/events/knowledge_events.py @@ -0,0 +1,56 @@ +from typing import TYPE_CHECKING, Any + +from crewai.agents.agent_builder.base_agent import BaseAgent +from crewai.utilities.events.base_events import BaseEvent + +if TYPE_CHECKING: + from crewai.agents.agent_builder.base_agent import BaseAgent + + +class KnowledgeRetrievalStartedEvent(BaseEvent): + """Event emitted when a knowledge retrieval is started.""" + + type: str = "knowledge_search_query_started" + agent: BaseAgent + + +class KnowledgeRetrievalCompletedEvent(BaseEvent): + """Event emitted when a knowledge retrieval is completed.""" + + query: str + type: str = "knowledge_search_query_completed" + agent: BaseAgent + retrieved_knowledge: Any + + +class KnowledgeQueryStartedEvent(BaseEvent): + """Event emitted when a knowledge query is started.""" + + task_prompt: str + type: str = "knowledge_query_started" + agent: BaseAgent + + +class KnowledgeQueryFailedEvent(BaseEvent): + """Event emitted when a knowledge query fails.""" + + type: str = "knowledge_query_failed" + agent: BaseAgent + error: str + + +class KnowledgeQueryCompletedEvent(BaseEvent): + """Event emitted when a knowledge query is completed.""" + + query: str + type: str = "knowledge_query_completed" + agent: BaseAgent + + +class KnowledgeSearchQueryFailedEvent(BaseEvent): + """Event emitted when a knowledge search query fails.""" + + query: str + type: str = "knowledge_search_query_failed" + agent: BaseAgent + error: str diff --git a/src/crewai/utilities/events/utils/console_formatter.py b/src/crewai/utilities/events/utils/console_formatter.py index c274a6413..b9adc9fda 100644 --- a/src/crewai/utilities/events/utils/console_formatter.py +++ b/src/crewai/utilities/events/utils/console_formatter.py @@ -783,3 +783,202 @@ class ConsoleFormatter: self.update_lite_agent_status( self.current_lite_agent_branch, lite_agent_role, status, **fields ) + + def handle_knowledge_retrieval_started( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + ) -> Optional[Tree]: + """Handle knowledge retrieval started event.""" + if not self.verbose: + return None + + branch_to_use = agent_branch or self.current_lite_agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None or tree_to_use is None: + # If we don't have a valid branch, use crew_tree as the branch if available + if crew_tree is not None: + branch_to_use = tree_to_use = crew_tree + else: + return None + + knowledge_branch = branch_to_use.add("") + self.update_tree_label( + knowledge_branch, "🔍", "Knowledge Retrieval Started", "blue" + ) + + self.print(tree_to_use) + self.print() + return knowledge_branch + + def handle_knowledge_retrieval_completed( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + retrieved_knowledge: Any, + ) -> None: + """Handle knowledge retrieval completed event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None and tree_to_use is not None: + branch_to_use = tree_to_use + + if branch_to_use is None or tree_to_use is None: + if retrieved_knowledge: + knowledge_text = str(retrieved_knowledge) + if len(knowledge_text) > 500: + knowledge_text = knowledge_text[:497] + "..." + + knowledge_panel = Panel( + Text(knowledge_text, style="white"), + title="📚 Retrieved Knowledge", + border_style="green", + padding=(1, 2), + ) + self.print(knowledge_panel) + self.print() + return None + + knowledge_branch_found = False + for child in branch_to_use.children: + if "Knowledge Retrieval Started" in str(child.label): + self.update_tree_label( + child, "✅", "Knowledge Retrieval Completed", "green" + ) + knowledge_branch_found = True + break + + if not knowledge_branch_found: + for child in branch_to_use.children: + if ( + "Knowledge Retrieval" in str(child.label) + and "Started" not in str(child.label) + and "Completed" not in str(child.label) + ): + self.update_tree_label( + child, "✅", "Knowledge Retrieval Completed", "green" + ) + knowledge_branch_found = True + break + + if not knowledge_branch_found: + knowledge_branch = branch_to_use.add("") + self.update_tree_label( + knowledge_branch, "✅", "Knowledge Retrieval Completed", "green" + ) + + self.print(tree_to_use) + + if retrieved_knowledge: + knowledge_text = str(retrieved_knowledge) + if len(knowledge_text) > 500: + knowledge_text = knowledge_text[:497] + "..." + + knowledge_panel = Panel( + Text(knowledge_text, style="white"), + title="📚 Retrieved Knowledge", + border_style="green", + padding=(1, 2), + ) + self.print(knowledge_panel) + + self.print() + + def handle_knowledge_query_started( + self, + agent_branch: Optional[Tree], + task_prompt: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query generated event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + if branch_to_use is None or tree_to_use is None: + return None + + query_branch = branch_to_use.add("") + self.update_tree_label( + query_branch, "🔎", f"Query: {task_prompt[:50]}...", "yellow" + ) + + self.print(tree_to_use) + self.print() + + def handle_knowledge_query_failed( + self, + agent_branch: Optional[Tree], + error: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query failed event.""" + if not self.verbose: + return + + tree_to_use = self.current_lite_agent_branch or crew_tree + branch_to_use = self.current_lite_agent_branch or agent_branch + + if branch_to_use and tree_to_use: + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "❌", "Knowledge Query Failed", "red") + self.print(tree_to_use) + self.print() + + # Show error panel + error_content = self.create_status_content( + "Knowledge Query Failed", "Query Error", "red", Error=error + ) + self.print_panel(error_content, "Knowledge Error", "red") + + def handle_knowledge_query_completed( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query completed event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None or tree_to_use is None: + return None + + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "✅", "Knowledge Query Completed", "green") + + self.print(tree_to_use) + self.print() + + def handle_knowledge_search_query_failed( + self, + agent_branch: Optional[Tree], + error: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge search query failed event.""" + if not self.verbose: + return + + tree_to_use = self.current_lite_agent_branch or crew_tree + branch_to_use = self.current_lite_agent_branch or agent_branch + + if branch_to_use and tree_to_use: + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "❌", "Knowledge Search Failed", "red") + self.print(tree_to_use) + self.print() + + # Show error panel + error_content = self.create_status_content( + "Knowledge Search Failed", "Search Error", "red", Error=error + ) + self.print_panel(error_content, "Search Error", "red") diff --git a/tests/agent_test.py b/tests/agent_test.py index b3d243a53..faad4ca84 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -9,7 +9,6 @@ import pytest from crewai import Agent, Crew, Task from crewai.agents.cache import CacheHandler from crewai.agents.crew_agent_executor import AgentFinish, CrewAgentExecutor -from crewai.agents.parser import CrewAgentParser, OutputParserException from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.knowledge_config import KnowledgeConfig from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource @@ -73,6 +72,7 @@ def test_agent_creation(): assert agent.goal == "test goal" assert agent.backstory == "test backstory" + def test_agent_with_only_system_template(): """Test that an agent with only system_template works without errors.""" agent = Agent( @@ -88,6 +88,7 @@ def test_agent_with_only_system_template(): assert agent.goal == "Test Goal" assert agent.backstory == "Test Backstory" + def test_agent_with_only_prompt_template(): """Test that an agent with only system_template works without errors.""" agent = Agent( @@ -119,7 +120,8 @@ def test_agent_with_missing_response_template(): assert agent.role == "Test Role" assert agent.goal == "Test Goal" assert agent.backstory == "Test Backstory" - + + def test_agent_default_values(): agent = Agent(role="test role", goal="test goal", backstory="test backstory") assert agent.llm.model == "gpt-4o-mini" @@ -1630,13 +1632,10 @@ def test_agent_with_knowledge_sources(): # Create a knowledge source with some content content = "Brandon's favorite color is red and he likes Mexican food." string_source = StringKnowledgeSource(content=content) - - with patch( - "crewai.knowledge.storage.knowledge_storage.KnowledgeStorage" - ) as MockKnowledge: + with patch("crewai.knowledge") as MockKnowledge: mock_knowledge_instance = MockKnowledge.return_value mock_knowledge_instance.sources = [string_source] - mock_knowledge_instance.query.return_value = [{"content": content}] + mock_knowledge_instance.search.return_value = [{"content": content}] agent = Agent( role="Information Agent", @@ -1690,7 +1689,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold(): assert agent.knowledge is not None mock_knowledge_query.assert_called_once_with( - [task.prompt()], + ["Brandon's favorite color"], **knowledge_config.model_dump(), ) @@ -1727,7 +1726,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_defau assert agent.knowledge is not None mock_knowledge_query.assert_called_once_with( - [task.prompt()], + ["Brandon's favorite color"], **knowledge_config.model_dump(), ) @@ -1737,9 +1736,7 @@ def test_agent_with_knowledge_sources_extensive_role(): content = "Brandon's favorite color is red and he likes Mexican food." string_source = StringKnowledgeSource(content=content) - with patch( - "crewai.knowledge.storage.knowledge_storage.KnowledgeStorage" - ) as MockKnowledge: + with patch("crewai.knowledge") as MockKnowledge: mock_knowledge_instance = MockKnowledge.return_value mock_knowledge_instance.sources = [string_source] mock_knowledge_instance.query.return_value = [{"content": content}] @@ -1803,6 +1800,40 @@ def test_agent_with_knowledge_sources_works_with_copy(): assert isinstance(agent_copy.llm, LLM) +@pytest.mark.vcr(filter_headers=["authorization"]) +def test_agent_with_knowledge_sources_generate_search_query(): + content = "Brandon's favorite color is red and he likes Mexican food." + string_source = StringKnowledgeSource(content=content) + + with patch("crewai.knowledge") as MockKnowledge: + mock_knowledge_instance = MockKnowledge.return_value + mock_knowledge_instance.sources = [string_source] + mock_knowledge_instance.query.return_value = [{"content": content}] + + agent = Agent( + role="Information Agent with extensive role description that is longer than 80 characters", + goal="Provide information based on knowledge sources", + backstory="You have access to specific knowledge sources.", + llm=LLM(model="gpt-4o-mini"), + knowledge_sources=[string_source], + ) + + task = Task( + description="What is Brandon's favorite color?", + expected_output="The answer to the question, in a format like this: `{{name: str, favorite_color: str}}`", + agent=agent, + ) + + crew = Crew(agents=[agent], tasks=[task]) + result = crew.kickoff() + + # Updated assertion to check the JSON content + assert "Brandon" in str(agent.knowledge_search_query) + assert "favorite color" in str(agent.knowledge_search_query) + + assert "red" in result.raw.lower() + + @pytest.mark.vcr(filter_headers=["authorization"]) def test_litellm_auth_error_handling(): """Test that LiteLLM authentication errors are handled correctly and not retried.""" @@ -1940,3 +1971,57 @@ def test_litellm_anthropic_error_handling(): # Verify the LLM call was only made once (no retries) mock_llm_call.assert_called_once() + + +@pytest.mark.vcr(filter_headers=["authorization"]) +def test_get_knowledge_search_query(): + """Test that _get_knowledge_search_query calls the LLM with the correct prompts.""" + from crewai.utilities.i18n import I18N + + content = "The capital of France is Paris." + string_source = StringKnowledgeSource(content=content) + + agent = Agent( + role="Information Agent", + goal="Provide information based on knowledge sources", + backstory="I have access to knowledge sources", + llm=LLM(model="gpt-4"), + knowledge_sources=[string_source], + ) + + task = Task( + description="What is the capital of France?", + expected_output="The capital of France is Paris.", + agent=agent, + ) + + i18n = I18N() + task_prompt = task.prompt() + + with patch.object(agent, "_get_knowledge_search_query") as mock_get_query: + mock_get_query.return_value = "Capital of France" + + crew = Crew(agents=[agent], tasks=[task]) + crew.kickoff() + + mock_get_query.assert_called_once_with(task_prompt) + + with patch.object(agent.llm, "call") as mock_llm_call: + agent._get_knowledge_search_query(task_prompt) + + mock_llm_call.assert_called_once_with( + [ + { + "role": "system", + "content": i18n.slice( + "knowledge_search_query_system_prompt" + ).format(task_prompt=task.description), + }, + { + "role": "user", + "content": i18n.slice("knowledge_search_query").format( + task_prompt=task_prompt + ), + }, + ] + ) diff --git a/tests/cassettes/test_agent_with_knowledge_sources.yaml b/tests/cassettes/test_agent_with_knowledge_sources.yaml index cbc8bbdae..009e61261 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources.yaml @@ -16,7 +16,7 @@ interactions: host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -26,25 +26,132 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-read-timeout: + - '600' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAA1SaWc+6Srvmz99PsbJO7R2ZpKrWGZPIJIWAip1OBxAVEJGhCqid/d07+H+zu/vE + 5OGpOFTdw++67vrPf/31199tVhX5+Pc/f/39Lofx7/+xPrunY/r3P3/9z3/99ddff/3n7/X/W1k0 + WXG/l5/nb/nvn+XnXsx///MX999P/u+if/762/QYoUd0U4F4OuelTB9bG6ubqGfj662ZCB/eHD6T + +RTxT3QSUH2anjTYJQEQY6rGqDzaAnXvnl4JL5Y3YOvVPj5/Ga0Wfgkv6Hv3U/oIijRbeP2Zo1uD + JR8cdN5dplfMIVHPM2q80QBmcDm0QNmPBTY+RQ/GVwQ1+Mkfkr85zIM7Hc1+keGsaWS3O/mAK5q2 + QZV9bMj2k2wr4oqygYLAIhgXKQIs4ZccZboR4RuSlahnhmLB3/vvH9ne5U+fbwI9U3hQPXGbaubU + nkDjLcU0NC6mPhqPaoKb+2uDnTIu++lRLxskdWce+6MdRGJysBpIhjLHFn202XKq3wIqtP0Rp+O8 + j8j5ofoo2dy/1LsxlM2j09doj44WtcQTyGbDVlskZINH45uYVFRW4hg9koNCNTs+MEHnRCjXBy7H + 3gZ9qoVWWoGerSJiZ8++jMlf2QHr59Hr98G7TLhiBRZ1F9HQk17uSJZsgl43ND53E5OelfI7gfMH + 89QnHY64ui4T1NyKNz1+01pnzI59eBS/iOrNodPJTS98qJ/hnWo9tl1xAt8Yakpq0FRop4p5wUlB + j641SQEdL5u40jWh9v54RH5bDAyLmtcwdtuZXmxJrdidf8no/d3HNBNsXZ8lKxfgdr4i7Nz7WWfP + uBTA+RodKJZyHvAV15Xw9ghjf3o97YqLUSWgaXtvqG2/lEzIy6sBEEkW/OBboxeJEQwgIEmIT8hn + /fhO3w46v8vBPzvDI2MWegugVes99cYF6NPkuDK0rpqMFavq3Fmalw5tpOFAPWHKGW+e2gSIfadT + 07uWFcMev6CwMRNqcJuWLfPEh+hKXgvOSgCzuaziAhXK5OGwMPKKm2dowojaH3pI7RYwUEo5GAfX + 9QXvWvb8I+9jGM2EYDUScDbUdZfAtPnY1I23EpvKZVzkpz2H2K6PCZtzoR2gTuUnVapLwsSBkzz4 + ShLLBxKKI+EREhPO1x6Tx9CVgIkiKqFZb69U82+KK4jfSoOzlzrUzbSQLZ9z66HnECf4wErqsvTy + 0hA3cyHNP2lQLfuGa8CQyhE9pf4OkOp98yFxxxmf9MxhvPmdLPTa8xp9BLbjim/d86HrvRy8rmd0 + vj4aoGidhlNn7vuFK2cJqNAssSJFST+et88aart7hK371q3E943E8MTTA3VqPeunp1d5cLxAHWdi + p7kcCZmPnGLYYpUcxWoJ77WDPm5zonafqxU/cmqC7m1T+b0gy/o06OkEf/l3nMQGLDVgF9RO9ES1 + 3B8jdt5XJXyJkNDkexbZyJvbCapFcKU3S1EjYeh3E2QvKaOFdNKY8HYzDjiC1GKFS6nLcKFzKOAU + nmbRO9DZzcs7UFICsW8ODAzOpxTQJQR3rC1My3g5fPmo5bWFLGH4rZYNvpuwNkRIte9eqha05Zo/ + 53U8iaPOZtfm4Cb3EdXp3gXi45Lk0HuebZxmXqALFvdJEST6C+t2M2dkypUFJCbNsDaSTp9eXJRA + v1V98pR3FDCN3CEc8+ZNzeflGS33ixpDfPhwVM2TrmfHhjlI492FTOeUz+YuzWsgh4+z/2SKGS26 + smioeG9jevzSOPpiU5bg92WWWBc/DZuM71eBLz83cNC8X4y5eTNBd+8cCavHVzX4JNsAP7YPWIuu + L9bC7hbAbyggfHwLDhDtp6PI6dF8+LvAB+4S4+eEHjxwqR97ARubZFv+WX9QPTvinekbwj/nrx63 + LnujyUA3adrgo/ZSGHflYAnlwmVY359UV5BOUQD117GkRvF0dEG1XxfkKPeMumRQsknFnAeUJKjx + NW9tIIz1ZCKu23b0uIyCu3w9SYYmXnzqGfuG0RfMFMgAV9A4evgu1YLFQTdm5dTbbfdsgt0pRHEl + pNT0hhC0ziVf4FcPrjRVbmr2yx853u4Laq71sa35KUf5xJ2x6oVCxnwhaxAMpzu9uGQC86Z7JqhU + rCu9VI3kLtr7+oRPhLd0f9l17tj1Zfur//iSLweX2ULtwKvT99jdbyDL9zs7BxuJHLABlhvjKs0P + YZzhK8bkubhT5oEJKlN+pFev5KvpamodmreC6AuvyQLLMWlbmBCgYyfg9myRylf8i39stPmR8U0i + lr/4WusJ1ucInmX4Ul8v+via32oSCyqAvT1l+Hp2D66IPTTBiTHLZ8B9utzSySlQ0GOgauBuwWje + BQut8U62/fBksw+bHJ7A+UuVQ7EWFMk34En/ZFgNc5Nxhyl15OXzMbFfYAeIR8n20K173XChfkA1 + pf43hddi62Ev5rO+9axTilyvcvytdHhXM5o7E3iD/iGoGmS37Z9CDbn9VNKA5keXX5xIQ6ZY3qlX + vT76kh7LGvZedPcZfLdskRd1QkKDTj5c+zUjRkJgtG83OOt0H8x3wC1o4bme+gOnuJOWKjXaNqZE + D3H20GcQsBpu5zPyaxNF+hJyfgBWHqNmdTqw5aYXHvCrcaSZqgB35akCFZy3w1G0yXrhze1auOYr + dq5R05O40STkJ0VLlaepuuJVbE1w3m9M7Hrq1WW7KNCg/YoxNs/nOuK4LZFAhN8qSYnJ93N0rDVU + HeQ39sPF0rnMYwuybafBazyzafeSn3B3S/fUMUIHzKUnX2B4FRje10SMWianAjCr9oLzG7tn4sBN + HiJWe8bGubSysal3T7C1P4TEN/NVjdjzIXSwdcO2GYoRQ6ltofpebMguPZ31yUqcFKJyiGk2flp3 + AnMIkfUOH/7uGeOMVS4rEZWsBR9uRtCzkj/FKNs6GnmZ21rvvZHj/tRPHco7feCf5wLGj1Iiyz3a + 9zN3Azk8bS421hzeBLOYJSVMs4uBFbvVIkE5iyZk7Jj77bCbdXItaQeCTPSoVi1mRJqAStD9KjFW + 3ZjL5tlTWviheUKzq/2NiFR+Y2jdTQF7Is/ri5XMPjx1hYaN9KNU7HTOn3C5fzUCPrtCZ8+N0sH4 + cA18fry2gL1vzQUG11dP0+2p1Htvq0nIqa+lv7STFXHBu+7g7RHERJKfRjTdxy6Ec+edadE+C/bb + Tzg/g5CmFa9WJOPTCW7HO48to9ln7K17HhAHZOCV53vxRqQJSuPlTPj6dtAbziktdPi2No3m3V0f + syG/wPX3k3kv94ApVpbCwAsaepEqkS3B4zQhy2Jn/1sfE7DEjSajNO/3hH/Jjcv8w2tAb7jNsHq/ + l0CI8XNBEukvFKP9J6IFaT3knQ2Dpo/9rZ+O/L0Fxqtm+HQOJJ32YWzCk/7O8KFNIZjb9roBlgxU + /20yHrD3u72gPOkGeqznpZ9iVHG//aT7SHlWHBpFAj8eCOn+9Hj1JIgeE1z5FLsmMZgAHqYJNs/9 + HofDd/7x1BNiEe3pSdpVGX9otRKUS6BjXFsfNqZE3aAbc3LsGXsTTPgTBqBTvhY9CYLtrjw3wVJx + rmRSM7Gf3DfyYe+d7kTScq5np0ApkFNpL3q0dn02511DIGiGkT5O1dLXh4dnwt5sAY3c6cXY/ljI + cDs+eF9uh9Htdjs3B/sq2mP8PirudD+nJYBnfufXkhhmy7WkLVx5ksbOa4i6a/lp4cr/WBHPwu/7 + eGDdf+zv+j4jrh+HUJyDBj/+1EfLCKCn81u/xiAGLFBaDW6C5wNbX+XTE014N3CjBTKOH28tY8cB + e/BeRxo9aKdXtVwZIrJOpSeNr/ohEuTFnmDh5R0N1no+JseogHt7yWiWaQuj8qlLoMtFN7LtPlZf + z7rm/3iT7JZdHc3trlHgWGKLepw8Vgv/8gJ42sQ2Tpiu9tNhCq0/9b388ko133i9Aw+ucbAGurFa + +3OAkCHb2HhuXX3c3MIYfY1PQsDsviJ67YkBOHpyfUnVBpdiepLhTVo22NCNbzX3X16BzH0csVo7 + qGdaIFtwd7m9Cds+p2zEU0KADT8R2UTVw52rndDARR+2NHT2BZjmmTORbYh7glY+HW24VX7x5O8e + +AI4IvcJ/PHibDz1aILFI4Q3NzkSR8NTPxG5ShB0Gg4f13418qa4oLV//NELy76BNTxiQP6td989 + 8MBjUx4JvyeoWtBJI6jyfJOwkx7rLLg6Flz1C02c80afV/0E+6f99tH+vOgsdT4K7Lg9T51rZPYz + ET8ctI/FARsfBnXyOIbKr97TH19MydaS4TvKF2zUUtx/zfvGgYCDIY3v2cwWXm9zeNhPmg/wYPbi + BF4xys1Dg41VD89Nt2/Qqv+oGbxhxBbJNMA42K6/FFxdUfm7WAiZRwffEQn1BdwWBQxdscN7lY91 + jnNbCHtp+eC9JnsRe1ySAr7K2MPJ6T5VzEKjALHTxNQunE3frX6FnKSfEiu3aAOGqkkUNFpDgYOV + n+dZlksQdOb8Ry8OmiWX4Hb5hviIbi8w//rXopOtP38xz1r+ec/lbGgg9VHNsVkSzQGIla4SZu2X + aOEzyYdUSWqcBIkUjfqG9//UI0Xpnj3baSqEMvdR/c17OFbTMpkFXPmQqv3NjCbjdAvAhiw6NWa6 + BUNXDh7M/GmmJrCxzq/7B9f4o7YtTP23tq8mXHnUZ5N+BLN2kiA8yyOHj89ci5Yizgh847qjxxC+ + o3n5bATYtdzk81T49ly5vBf4FUYDm6FQZav+ssBgnY80uEUFWyR5Z0CRrw8Yf3QcjWN7SOCHFgne + e8KkL664GDAqLYveuUzRedvaGdDcp7Mvwe07YiztArjWL7+IqofehmbkwTB6hdjDpR0Jxm4K4GsX + UYyJ+2JzdBw00FpIo750KtmQc/0G+q3uU7/+8NkUa9sN5B7kTd01n1lZuwFE7RLg4zJeXEZvRx+I + 2NrhQ95+QXeYLQiqXS3i7FOPYNypkSW+YIiphplVDT8+d13PpkpwvuvzV19yOHPOzQex/2LT1ich + TNVExTY9u/r0LrkFrH4CjuzmlLEGOjlc/SlanJtdRIZ+t8Bzw48EXraDzu7mpEBjjE5kwlfgLlOu + TFCvfQ0ranatONkuFySfrBjb9uuZzfBzJ9DYclefr8k1W4xrbKE1n6iz8Www91Eoo02Xl/SuzhL4 + frzXAnaqd6eaJ730eeTUFBrgKdCDoAY6NyxGC8cIVdhP+DJahD7o0OUeyv5UXSQw4E8awqMQ/+I5 + ZvMV2waMqrtNXU8V9T/89/PHnHt/0pe0mFp4eH5GMnVFn7F5BwbgUe2ArbNqg+lEdwoyvZngg4ur + iInLq4AN3R+wjranjN/dShn+zveA73f9TfSvDCnMI1wkvBZxivO0UCYLL6xxZlzxBjrUsLW2GplW + /bkIj6KDj/nT+QYBpJ+3siXArDw+6F7fGtUiybOJiBFzROZ9y+WSc2/C43NI8UP7jjrdHQoNNvXY + YSfzJnd+n28GVJ0koHuTncHit7YBn2F6pvqaz8PlMIVw7W9Y3cs9W1oUpCjadxvyeXq6zuynpqAv + 0N7UN4cIdPOEwj/+hCn5n2rlu/jP/qujtc2mU1FukJhmG6omj5fLQOuV8LTtHXpsu9wdnykaoA3f + EbZUzXPHMZtbyKJOICy0huh13ra1/OPv9IW7bODcdgPak9WvfHZlYnJQGmRtvZLiTWNGd/f+rqEp + 8QV2pbZ2h2/kLn/49WKx77/z/RoFhPo/PVX5VgjSnYOpfxoxo2LzyaHTfnV6yLrPv+v/z2/4+cML + jzcelOUW0bU/V+KYPwso7a0Rx46Q91MWYg7ed6CmxihcMi4ZZQE8bRZikw1D1r2rqoFfeG78cuWx + IWKPHG4nDfrcyjffzS28IPE0KP5kt1pGhD5p0Se/Syvv3/Sfnwb4kO6wflF5QPz9sIF8dgE+/8je + 7tRn5ROuPI0Nt6krcn7YPjT4XMaaZ930cdO1KWAfeMUnN+aiBapdAB6yP1CrDbbVfHNHDsilDvw3 + SzXGPl9/gTT7tj6sXgedFffUAn/07OpXs+331cDZMr7r+Q3uQhQSg3bIqC9V4b0Xf36GmN42+GA6 + rj5fhlqG+3tb+tDW22oJFesi4+wOsPfZKxF3vQYESrfcxxdtono76OGCVn1Hj0vyZtyFtgXsD1vo + c5+iZ8P73hJoqoeAqudAcukvPn/8vfJcRbSnm8MZvC4UD53G+AtaIFy/H94HdFctuiJr8GGLGfYg + E/U+yAsPHK3n7M/nINEnbeoGuFla9+dHuay6qw0krQfIrJ7kbMLS84KamnZYOe33+qrXLlAuVYBX + P0efC/cewqpTTj9/W++zGKz1qhSwDfnWZafAyuHOxxA7x8DrJ/ukkF89xYp5u0VCv7AcartHRFVy + vPYsvrMAvMeEx5odf8BIlmiB2jGr8L5HT3fK97IBVUVhVI82oJ/sb1DAtHnbKw8UjJRzswGnz6Mk + r9V/nOXw68HACxtsiacsGvY7tYCGfXPwwfp67uJNUiLbDZypzfy4n9McSPJL3BBsf4FWieLyytFR + 7u5ENqVSnwPSG+BzCCe6nme29IbdQKUp7Z+/o39O57j8+YfUv1zUjLSR3MDIDxV/S99OJD72TgLz + AR4prq0DYB9emX7+ul9+egwGHh9S8KvnAvlwbp1VZwnqmnlZeYHqo+g4OXzrkucPT4DZuOwMGZ2P + V32db1jZjevVElZsc8augmu9blU0QPngB9hzLIXxyqyl8KfvvW/9ylh/tDSkxYGLL1znZ0PDORw0 + HzGHw9V/HVe/FsY36YKz8WO5U5MBA7a8smC/qIFb905cQP3UQh/8+ou+QR4kih5h66m9wbJEpwJ8 + E2lHD4/qFM3VblND9VvlPhx0LRILxoVQyZs9+fHi8NH7GK79nlzfTV+xEBkDlLm3ShXztovWfj3B + l/FUsb36j9PPv7+dLyciTHPNlnW+BVf/iuqr/v0M7Wb1C8Pa5+L7pLP8OBM0aau+X+cLTHB2AaCw + iHx2OEwZ+xrfQDbszKH26i8z5UgLeDrxCnUW+tFnV7GnP36CaUuvfklFJYXgZbg+Wudz3Dg9NPAE + 0oYajgD76bOcPfjlUx1rO3cAjEazA9veIPQXX7yYBSV6WsWJLJrHZ90xaTvoKI+M/vxTbtXTUEH3 + Ad/8R+nOlesNIFceBvUfX5Yt1FnIn/PWXOfqLuAmayC0wqM/a5ewWpSgUtDKW/jQ9DqYldlJ/uiv + CLiKK3KzkcCC83dEpu7IRgsvE9qcxKffeMPCiBL0ivzTR6xTWD9e370H2G1YqFo790rYOaca3qFk + 0Muzn/p7LjwJQnFB/Qq4T31JBk5D1tYvf36dPsl2N4EL1s/UOqtfMAvuZKLhChjVx9oDvB64sbzZ + xF9avFitT5LshKBfSE9g/Oyj4devcGrJODBvt2wynzsC222CqXFUxoz+5ikbfvyQXZ+rvXggxwTy + tMupqfYCoKufKatOGpBwu0WA0YNogZXX/FkEr2gyxUiA1Bj2+PS6DNF87cQQ4trYYGUMYT/TPjTQ + ratuZNlPpF+eZhLD4bpjRFAvTd8G77qF1Ik/P71dzUibPHTeQxOb+CNnC0yMBB6ypKYHmxgZF8RF + Da1TmmB92fDZ/F2GC/QrOlI3HbW+HtXRgsvnbeKjkzoR9YWshms8U8+sDz3veNcSinxzIGD1r371 + GfQ3T8Vubx1cUUebBDZV8sVX6+vp3Ng7EHZSdsE+ixQgILl9QmJ1Z6xKOz1b5w8boN+vqb95McNd + xG+lIHuSecIUtAWM3vYeehrORNCS7MG0zgvgOh8mzPAswNtiuf5dZPiQ2hZb54EcOoY5T/XSVyrx + l09GqBzxPb4Qtz1ZigDJYm3x7XrXweJswAQ9rdxQE4edy/a3QEbr/Awf3Jr9/O4WuTVhK3/O0cyp + 1YBWPYdtJCvZHJDKgNW2ZfhynHv3T77i+Jn88UsGN6YWTA9ahff8rgL9vqg34OeHBEuwiabf/JLf + 1c9V/2/YWNtXQ179L4pbdc6GI39uofxWMpwJcqrPl08goDap2l+/YuPloi1/9JBiGl/3xw9o5XFs + TnMN5tNGL2GORA7vpcQAUzt9ajhvORHnafXOqHplHIzc6ElYDO8VK8jTh3//bgX817/++ut//W4Y + NO29eK8XA8ZiHv/jv68K/If4H0OTvt9/riGQIX0Wf//z7xsIf3/7tvmO/3ts6+Iz/P3PX7zw567B + 32M7pu//9/m/1o/6r3/9HwAAAP//AwBCId2m4CAAAA== headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042f3ac7867dd-SJC + - 93bd2df2cdb6ceb1-SJC Connection: - keep-alive Content-Encoding: @@ -52,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:37 GMT + - Wed, 07 May 2025 02:10:11 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=PyJpKeiIPAL09jhZ7TAVgnQ5YB7Ha4MplnRyZkvQvDs-1734033217-1.0.1.1-mA.DBohqAynypzvd3K.0J2JY6_HWQcv6SdHAowE18qI9SJ2IsiSScEKWTGPAC3erWYzVwkYFa.cETaf9EhpyAA; - path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos; + path=/; expires=Wed, 07-May-25 02:40:11 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=o.8CU3JYqdXlO9ULnGn2to.2TlmlWc6i1_64SoVhZFA-1734033217203-0.0.1.1-604800000; + - _cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -71,16 +178,22 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '104' + - '123' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-678b766599-cgwjk + x-envoy-upstream-service-time: + - '98' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -94,12 +207,24 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_85d126466fc11bbf5ef4ee743d0c157a - http_version: HTTP/1.1 - status_code: 200 + - req_97dfa15ce72eff259ad90bd7bc9b5742 + status: + code: 200 + message: OK - request: - body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."], - "model": "text-embedding-3-small", "encoding_format": "base64"}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json @@ -108,13 +233,13 @@ interactions: connection: - keep-alive content-length: - - '137' + - '992' content-type: - application/json host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -124,25 +249,35 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST - uri: https://api.openai.com/v1/embeddings + uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFLRbtQwEHzPV1j7fEG53JW73uOBKiFOIIRKhVAVufYmMXW8xt5UoOr+ + HTm5XlIoEi9+8OyMZ8b7mAkBRsNOgGolq87bfH/98UbGN1f379vDdf3jqj58/vDua/lpf/hy8xYW + iUF331HxE+uVos5bZENuhFVAyZhUl5v164vtarssB6AjjTbRGs/5mvLOOJOXRbnOi02+3J7YLRmF + EXbiWyaEEI/DmXw6jT9hJ4rF002HMcoGYXceEgIC2XQDMkYTWTqGxQQqcoxusL4P0mlyopYPFAyj + UGQpzIcD1n2UybDrrZ0B0jlimQIPNm9PyPFszFLjA93FP6hQG2diWwWUkVwyEZk8DOgxE+J2KKB/ + lgl8oM5zxXSPw3PLzWrUg6n3Cb04YUws7Zy0XbwgV2lkaWycNQhKqhb1RJ3qlr02NAOyWei/zbyk + PQY3rvkf+QlQCj2jrnxAbdTzwNNYwLSV/xo7lzwYhojhwSis2GBIH6Gxlr0ddwXir8jYVbVxDQYf + zLgwta+K1WW5LcvisoDsmP0GAAD//wMApUG7jD4DAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8f1042f89e85cf2b-SJC + - 93bd2df8e9db3023-SJC Connection: - keep-alive Content-Encoding: @@ -150,55 +285,52 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:37 GMT + - Wed, 07 May 2025 02:10:12 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg; - path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE; + path=/; expires=Wed, 07-May-25 02:40:12 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000; + - _cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked X-Content-Type-Options: - nosniff - access-control-allow-origin: - - '*' access-control-expose-headers: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - openai-model: - - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '75' + - '138' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '140' x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '10000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '9999986' + - '149999783' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_531afeb97985d1513eb1c8f311a1d62a - http_version: HTTP/1.1 - status_code: 200 + - req_bd031dddb84a21749dbe09f42b3f8c00 + status: + code: 200 + message: OK - request: - body: '{"input": ["What is Brandon''s favorite color? This is the expect criteria - for your final answer: Brandon''s favorite color. you MUST return the actual - complete content as the final answer, not a summary."], "model": "text-embedding-3-small", + body: '{"input": ["Brandon favorite color"], "model": "text-embedding-3-small", "encoding_format": "base64"}' headers: accept: @@ -208,16 +340,16 @@ interactions: connection: - keep-alive content-length: - - '270' + - '101' content-type: - application/json cookie: - - __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg; - _cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000 + - __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos; + _cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -227,25 +359,132 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-read-timeout: + - '600' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 39,\n \"total_tokens\": 39\n }\n}\n" + body: + string: !!binary | + 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 + r/8DAAD//wMAhvFupN4gAAA= headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042fb580acf2b-SJC + - 93bd2dfc5889ceb1-SJC Connection: - keep-alive Content-Encoding: @@ -253,7 +492,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:38 GMT + - Wed, 07 May 2025 02:10:13 GMT Server: - cloudflare Transfer-Encoding: @@ -266,16 +505,22 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '85' + - '189' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6b78fbf94c-rkptb + x-envoy-upstream-service-time: + - '192' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -283,29 +528,30 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '9999953' + - '9999994' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_52a59c31ea2beb8578511f56da5ea2dd - http_version: HTTP/1.1 - status_code: 200 + - req_91abc313f74bce8daaf5f8d411143f28 + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are Information Agent. You have access to specific knowledge sources.\nYour personal goal is: Provide information based on knowledge sources\nTo give my best complete final answer - to the task use the exact following format:\n\nThought: I now can give a great - answer\nFinal Answer: Your final answer must be the great and the most complete - as possible, it must be outcome described.\n\nI MUST use these formats, my job - depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s - favorite color?\n\nThis is the expect criteria for your final answer: Brandon''s - favorite color.\nyou MUST return the actual complete content as the final answer, - not a summary.Additional Information: Brandon''s favorite color is red and he - likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available - and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": - "gpt-4o-mini", "stop": ["\nObservation:"], "stream": false}' + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.Additional Information: Brandon''s + favorite color is red and he likes Mexican food.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json @@ -314,13 +560,16 @@ interactions: connection: - keep-alive content-length: - - '1013' + - '1008' content-type: - application/json + cookie: + - __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE; + _cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -330,35 +579,34 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 x-stainless-raw-response: - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AdjXeg7urmMdz087X2AhPdSsqamzb\",\n \"object\": - \"chat.completion\",\n \"created\": 1734033218,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: Brandon's favorite color is red.\",\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 182,\n \"completion_tokens\": 18,\n - \ \"total_tokens\": 200,\n \"prompt_tokens_details\": {\n \"cached_tokens\": - 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n - \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"system_fingerprint\": - \"fp_bba3c8e70b\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAA4xSTW/bMAy9+1cQuuwSF7aTLYlv66FDTz1twz4Kg5FoR60sCpKSbi3y3wc5aex2 + HbCLAfPxUe898ikDEFqJGoTcYpS9M/nl55uvm+J+effti68qGa6+4/pT+Yjba3nzKGaJwZs7kvGZ + dSG5d4aiZnuEpSeMlKaWy8WH96v5qpwPQM+KTKJ1LuYLznttdV4V1SIvlnm5OrG3rCUFUcOPDADg + afgmnVbRL1FDMXuu9BQCdiTqcxOA8GxSRWAIOkS0UcxGULKNZAfp12D5ASRa6PSeAKFLsgFteCAP + 8NNeaYsGPg7/NVx6tIrtuwAt7tnrSCDZsAcdwJO6mL7iqd0FTE7tzpgJgNZyxJTU4O/2hBzOjgx3 + zvMmvKKKVlsdto0nDGyT+hDZiQE9ZAC3Q3K7F2EI57l3sYl8T8Nz5Wp+nCfGhU3Q9QmMHNGM9aqo + Zm/MaxRF1CZMshcS5ZbUSB0XhTuleQJkE9d/q3lr9tG5tt3/jB8BKclFUo3zpLR86Xhs85Tu+V9t + 55QHwSKQ32tJTdTk0yYUtbgzxysT4XeI1Detth155/Xx1FrXFPN1taqqYl2I7JD9AQAA//8DACIr + 2O54AwAA headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042fffca367e8-SJC + - 93bd2dffffbc3023-SJC Connection: - keep-alive Content-Encoding: @@ -366,15 +614,9 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:39 GMT + - Wed, 07 May 2025 02:10:13 GMT Server: - cloudflare - Set-Cookie: - - __cf_bm=klZf7yZ0CFfDo9eLCfStVSScD0mVgsmNrSz6Ud9on_I-1734033219-1.0.1.1-ar.FWpGgFvtFOTAbByMA5fp9JAycsUeRzBSv6anze.RFpxDOtJVYWslYhhCFIdPyPiHAZGPcuQJxlRbkyr8vRw; - path=/; expires=Thu, 12-Dec-24 20:23:39 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=xecEkmr_qTiKn7EKC7aeGN5bpsbPM9ofyIsipL4VCYM-1734033219265-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked X-Content-Type-Options: @@ -383,14 +625,18 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '412' + - '334' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '336' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -398,13 +644,14 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999769' + - '149999782' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_15b9d1b27239c538a259e964b502f4d9 - http_version: HTTP/1.1 - status_code: 200 + - req_ceae74c516df806c888d819e14ca9da3 + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml b/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml index bfa969b12..946f2a710 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -18,7 +18,7 @@ interactions: user-agent: - OpenAI/Python 1.68.2 x-stainless-arch: - - x64 + - arm64 x-stainless-async: - 'false' x-stainless-lang: @@ -38,13 +38,120 @@ interactions: method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"ixDvvEJkB70jXsC6Pg/KPAdQsDvIoCG9/4t0PYfART2AAR69rN0fvQxnQ71CrxU9WrN2vIMlDj1Bfsi74rsOPQebvjxPpCW9lviavZnMaLwySwc9smv6OyUG1bx2lU09phEbvBCLs7xvmHs7sdVdPCrxrrsjXsC8VkT4O5Uxsbyet8K6IdWAu+5GO729vYm9oKplu8dQ/zvn0qE9fN0tPBfg97yqyyc9yFUTPUlCBDq/zwE8MJ5ePOQYFb3gqZY8fJKfvPn9mTzfLbu8dWkUvZ3WFzvr1zw8x1B/PCttiryJhy+9G092PLE/QT2Ocom84gadPAcForySo129F/9MPfxsGDvXbhO9+GJpvH1U9byjOLk9gOJIvG9N7bwIFxo9h5QMvcopYTsZEUU9YsLAvF1gHz0l5386NPMbPM9+njxrZye95gs4PIqZpzxGaaK7VmNNvac91LyIofA8qCOTvTkphLsLCr08e4AnO8e6Yrxh+1Y8fVT1vFmHPT3NbCY9T6SlvN5MkDztNEO8bCl9vCiUqDvHuuK8IWsdvKGQJL1i4ZU8GveDvW9swjy/GhA9AoQrufTHMbxWzbC8OqDLuzPCzruA4sg85K4xvePNBjz+yR69BtRUveUqDTwX/8y8i1v9PNqsxDxRASy7s5zHvGH71r13Eam8YuGVO54hJj15uT29fQlnvH9rAb0GanE7odsyPUmNEr1Lnwo7edgSPdQrzrtMFlK9fjq0OYtbfbyONF+7uPEEvJLu6zwXtL68cH66PKrLp7yDuyq9QmQHvEFfcz02uoU7Ct6DvCttijyVEly9DIaYvNRKozzmoVS9AvtyPUXO8bzDtUe9GOULPcOWcj0Q1sG8WmhovPR8o7y0goY72JrMO+wIir2K5LU8rCiuPLgdPrvtnqY8v0bJvAYf4zwCZda6LORRPCVRYzwIzIs8KqagvITnYz1ZW4Q81LQGO+1/UT3KKeG8T++zuao1i7yc8Ni8gC3XvAGjAL02mzC8HFSKvFrSSzy7YIM9HJ8YPMulvLzPMxC9GkISvX6FQjy810q7FtOTvVpo6LvIVZO8JZxxPTHPKz0tfwI9X1NCvbrkJ7296cK8nKVKPdyf5ztQZvu7/jOCPRrYrrxlmyI7tBijPOpbYbuOcgk8KXVTPOuMLj1hRuU8hFHHvI9/bbyh2zI8u2ADPT/1CL0AcjO9ta4/PG8C3zxvbEK9u6uRvAMABz3gqRY9TUefOpnM6Dwxz6s8N8dpvJb4mrx7yzW9junQvPwCtTwFPji8vEEuvQ393zvtYPw8re8XvccKBT2jopw81lwbvYoDCz0Oebs7KJQoPD3Eu7xZhz09LE41vSNeQDz+qsm7Kjy9PHImz7s9eS29Mw3dPL29Cb2oIxO94D+zu+2epjxvt9C8zi78vIdW4jx9c0q8oF/XvK6FtDzyH508ebm9vLjSL70jMoc8oBRJPVKpQD1as3a9SPLhPIfAxbscVAq7+BfbPPlIqDz5kzY8rhtRuhNFwLzNmN88fu+lvFAggTyktBQ8oPXzvFRwqryCqTK9wCf0u2Rq1bxBfsg7v5HXOihJGjy79h+9aNnTvLGKTzqsKK48Fx6iPAWomzwtypA8uPEEPZHhhzyyIGw8lq2Mu1XshTuSDcG79m9GPCoQhDqktJQ8Cwq9PAKEK72Mq586RmmiO9FS7LxnYgw9Gm7LvMFYQTt2dvi8Cwq9PB9ZJT3U/5S8u6uRvM4u/Ly/zwE9idI9POqrAz1hsMi8gcPzPHiNBL2OUzQ8h1ZivDitKD3U/xS9+BdbvN4BAry2C0Y7sakkPTscJ72vtgG91cHqvF2M2LyycI684ruOvKOinDs2m7A8Hvwevc23NLsXHiK9FcEbvE9ZFzyVmxS9V5SavDFlSLqZNsy8LycXvbjxBL1JQgQ6LC9gvPGJADqR4Qc9A0sVPNtU2bwhAbq90u0cvVvkw7y0ggY9D/UWvcop4bxWRHg85oL/vFjfqLuzBis8uDyTPYNwHLzdG0O8M1jrPOLnxzcMhpg7ca+HPBsEaD2E5+O8gC3XPIDiyLxd9rs85SoNvaPO1TwVDCq9ozi5O8QxI7wrbYo8W+TDPPDCFjwjfRU9PGc1PFgqNz30Pnm8T6SlPH0oPDxvAl+8qvdgvY4IpjzOLvy7JdobPVQlHL30qNw8AhrIOyHVgL38t6a7ELfsvMq//buniGI9w7VHuwregzwbBGg8N8dpvDyyw7poJOI8F0rbPBXBGz0jyKO6JbvGPAKEK70W05M9G7lZPSx67jxy+pW8F//MPJw7Z7qBExa9+zvLO3L6lTxGaaK73J/nu/GE7Lq5/mg8Rmkivc23NL3nHTC9MYSdvLO7nDw4rSg8rmbfO7QYozzC1Bw9LORRO/7JnjyaHIu852g+Pb/7Orz3zEy9wh8rvBG8ALyOcgk9FVe4vA2TfDxk1Dg8pGRyOlZjTTzDS+Q7XUHKvMsPIDyE5+M7MOlsvbIg7LwTGQe9s1E5PWvebr13xpo8JQbVPJpnmbvbcy49SMaovBr3A70NTYK7482GPHbgW7zHUP+74rsOPIxgkT0seu47ZjE/uQJl1rz0EkC9L3KlPBqNID1tDzy97Z6mPBpuSzwJYqg8FoiFvKPtKrw/i6W8EIuzPHJx3Toq8a67gRMWPZ2Gdb0K3gM9M5YVPJhVIbvsU5g72OXaufPmhjtMrO486eQZPLHV3Tw5dJI994G+uwbUVDytOqa8JuwTvdsooLyouS89yw+gO9u+PLwFPji90SYzPE86QryBExY9vb2Juk38kDqVx008v0ZJPGS14zseKFi8BT64uyN9FbxnQ7c8/CGKPJb4GrwAkYi8mL+EPI5yCT2EMnK89KhcOl9TwjswNPu7F//MvE9ZFzsJJP48hYIUPEwW0rwMOwo8axwZvR9ZpTtCr5U8Ca22PEU41TznhxO8PZiCPOqrAzwSM8g8zQJDu5aoeDwY5Qu8cibPO8Qxo7wi4mS8U4prvSEgjzpKIy89RYPjO3kjIT0+D0q8bosXu8vEETzBwqS8E2QVvVBmezxZppI8CikSvRMZBzu/sKw8WrN2PPMxFbx+hcI7WHVFPJM+Dr2WrYw8M5aVu8SbBjk2UCI9nYsJvaD1czun8sW8NzHNu2lVr7y6L7a8DNEmvW8C3zyDcBw9//XXOse6Yrz7pS69h8DFu/xsmLyW+Bo9Vq7bPLlOi704Fwy9QcnWvFC2nTvqq4M9SUIEvV3XZrx5T9o70SYzPYvF4DvBWEG8+BdbPOPI8rwRvIC7YsLAOr+R17wmoYW9kGWsvF1ByrzINj48ECHQvE2xgj2Pynu8qqzSvIU3hrvtYPw8BtRUPPegEz0GH2O7GRFFPTXUxrx9vtg8aI5FveUqjb3Gjim7q0cDPGDPnTuMqx+9RAycPLYqG7yFzSI74udHvdDbJLwU29w87FOYuxBs3rwpddO8Uz9du6qs0rwySwe9qG6hvP4UrbxyvGu8PXktvWuytbnhisG8HpI7vdBFiDzO4+28OoH2Oyrxrrqnp7c7SFzFPPGJALxIxqi7euV2Or9GSbzxz/o8i3pSvd3QtDqya3o8btalPPgX27xo2dM7QcnWPN/irLsoKkW8niEmPZEsljx7FkQ8zuiBOocLVLzCPoC8DuMePN6XnruZgVq8MRo6PewICryBw/M8X1PCvKRphjx5T9q6SdggvWDPHT2TiZw8g7sqvUF+yLso3za85XWbvRpuyzu9U6Y8eU/au2IsJLm0GCO9PyFCu4xgkTyLxWA8IUzIvOl6tjzarMQ8vb0JPTJLB7yFzSI9F//MOg1NAjxtDzy7DDuKPFgqtzyFghQ9nYuJPAKEKzsfWSU9PlrYu8cKhTspwOE7Pg9KO+cdsLv+yR68idK9PBzqpjwwU1A8tfnNPBtP9rx1tKI85uxiuz8hwrso/ou7DLLRu4tbfbw3x2m8hWM/vRACe7wvCEK93RvDuzhimrspC/A76qsDO3bgW70o37Y8oduyuySPDTz/i/S8SPLht29swrw4+DY9roW0PHma6Luu/Hu9TPd8PObsYjy/Rsk8ixDvPNT/FL0AcrM7UGuPuzqB9jzSOCu9ZQWGu2+3UDwmN6I8OBcMvZao+DzK3lK8x7piOyFMyDwpC3A8PvB0vGetGryrjX08ofqHPCWc8Tu4hyE70JAWvNyfZzwxOY+8sfQyPAyyUbrHuuK8OXQSvXQ4xzzjzYY8cFIBO4ffGr1SyBU9/0DmPObsYjwbuVm9VjeUvKfT8DyniGI7Gm5LO1mmkjt1tCI9Pg9KPSFMSDwajSA78rW5PDBTUD0hII88a2enPCMTMjxCZIe8KP4LPb3pwjzxOd681P+UvKuN/boM0Sa6p4jiPFPV+bvxiYA9v2UePbWuv7yHKqm7tWOxPGf4qLvZFqi7LORRPAMAh7yLEO88xMe/O4t60jpo2dM62768vAlD0zwUJms7ENbBu79GyTy7YIO8QvojPWuT4DvmoVS86RDTvM7ogbw9Lh88sT/BO4rkNTzcn2e8lZsUvKqAGTwHupM7KhCEvKce/7ssmcM8xHwxvOvXPD28Ilm8SKfTvKphxLrmN3G8lviaO+l6NrwhII88vLh1PI5yCTwekru8g7sqvEKvlTzO4+28gqkyOywDp71TP128CfhEPGTzjbxSqUA7VmNNvdGdejzr9pE8pGkGPFmHPTtas3Y8qoCZPCNewDxGaSI8ofoHvaMMAD0945A8Q0WyO/MxlTzBwqQ8h8DFOdh7dzqh2zI8DLJRPJ4hJj3HCgU86qbvPCMyhzySDcG7nrdCvIoDizullb+8E5DOvAbU1Lzmgv+8niGmvPdVhTxuIbQ8DpiQPD5aWLyLetK7As85PHAzrLqPz487tsA3PTWJuLsXlWm2UGuPvGkKITuxEwg93O8JvMAndDwM0SY8ejWZO+PNhjzDS+S8AaMAPO77LDx5BEy7gcgHPThDRbzJ/ac8nA8uvUEU5Tuzu5y87RVuu1bNsDwl5/87a0jSuzDp7LxXSQw8HWaCPDCeXj2ATCy9pLQUPFAggbw3fNu87FMYO/SoXLxPOkI93gECvNkWKLysKC69dbQivWFG5bqjohy7IWsdvCoQhDwP9Ra8xtk3vGLCQD2810o8Bh9jPG5AiTxbuAq9zxS7OyVR47uCXqS8vIw8vEinUzxsLpE8oBRJvJUS3DwQQKW8nYZ1PIsvRDwcVAo8TKzuux5Hrbw9xLs7sROIPFtOJ7wtypA9a95uPETBjTxPWRe8IUxIPFh1Rb2cDy68b2xCvNzqdTmQGp68B7oTPV4nCT3+MwI917mhPGtIUj1zB3o8LJnDu1J9hzyVXeq88h8dOYCXuryDJY68T9BevPegEzzr9hG9fjo0uwp0IL21Y7G8CBcaPX46tDvtyt+8VvlpPGLCwLxdFZE83kwQvN/DV7yrkpE85BiVvKAUyTsa9wO8KqYgPImHrzzz5ga9Dnm7utmACzwKdCA9btalvBpuS7oG1NS8ditqvJAanjygqmU8Bh9jPItb/byJhy+9KVb+vDkphLwhTMi8vNfKvM7jbbs3fNs8SKdTPFbNMLv5/Rk82WG2u90bwziaHIs6kSwWPVjfqLviu4670jgrvY40Xz1eJwm9tBgjvEEzurbbVFk8sdVdPJ/oj7ucWry8S+oYvRBApbz9TUM7nA8uvCx67jxZW4S7YISPvMFYQTvYe3c83RtDvMsPoDzy1I68T6SlvNKiDjwlUeM8aaA9vcSbBj2ByAe8PXktPUFfc7zKv/08433kvPuGWb2M9q27qqzSPJUxsbqDBjm8lV1qOqODx7vYe/c8/l+7O/s7S7ovciW9iOz+Or29CbtbuIo91Qx5PKMZZDzUdty71Qz5PKBf17uSWM+8HpK7O+QYlbzZFig8h1biPIjxkjuYCpO8kLA6PAYfYzsDAIe7fqQXPUwW0jyRd6Q7r5esvClW/jyVEtw7VkT4OslnCzwQt+y8PqVmO/IfHTxlm6I7w7VHu4js/jyaZxm81qcpPCaCsLzDS+Q7LHruO3rldr3uGgI9aLp+PA4uLTz0XU688A0lO0ZpojyR4Ye67WB8PK+2AT0o/gu8snAOPV32uzpRASy9Ae4OvH6klz1xr4e87WD8O1bNsDvZgIu88O7PvExh4LsqpiA9IpfWvKzdnzuHdbc8oF9XvJocCz15bi886qbvPB5z5jy79p+8N3zbPLVE3DpFg+M7EIszOw39XzwRnas8yWcLPOkvqLzZyxm82748u7n+6LxlBQa9divqPGVQFDyBExa8EAJ7PM4u/DyHC9S8290RvSl10zrKSLa8+ZO2PKzdn7wTGYc8LMX8PKHbMrzZgAu8DUhuPKCqZT31JDg8KXXTvJKjXbxSXjI7iuQ1PF1gn7uMQTy8RYPjPCHVgLxpCqE8MywyvGve7ryR4Qe833hJPMq/fTvmN3G7ArDkuk/Q3jznh5M8DNGmPJVdajvsUxi8XUFKPEa0MLwtf4I6tWMxvO1/UbzBWME6vEGuPDuGCj2OvRc9c1ecu04OiTxSXrI7F2mwvP4zArxrHJm8flmJvImHrzkxZUi9Ul6yvJwuA7vWp6m8YDmBOxUMKj2eIaY8VNoNvO6wHryWrQw8px7/Os0CQ7tas3a7ozi5O64b0bkQbF48cvqVvInSvTssA6c8y3kDOkb/PjtT9E69iy/EPP/1V7cIFxq8E2SVPKjYhDkXSts8/n6QPLtgAz3tnia8UsgVPOc8hbyyJYC9uU4LPXTtOLttxK08/AI1Pe3ptDsfDhc84KkWPSqmILz0x7E8YncyPPTz6rmjg0e87kY7O3bg2zyHC9Q8yt7SPADclryt7xe78rU5vKfyRTw3x+k8lRLcO04OCT0J+ES8ExmHu+eHkzscNbU8idI9ubxBrjx5BEw8ENZBvMDc5Ty4aEw8YDkBPLIg7Lwg78G8u6uRu7g8kzwe3cm8BagbvIcLVDmE5+M7A5ajO8THvzy2Khu9ui+2PNFS7DxlUJQ7NgWUOxDWwbxlUJQ6nKXKvIimBDyZF/e8UqlAvNLtnDzS7Zw7F//MvKRphrxSfQe8D6oIO0JkB73jyPK7B5s+vOPI8rxo2VM8nC6DPB+ks7waQhK8OgovvCttCj3wdwi9292RuwJl1rocVIq8uLPavB9ZJT24s9o8MOlsPfB3iLz+qsk7mkjEvJXHzbyzBiu8E2SVPLVEXLz6WqC7o1eOO11BSjz3NjA99F3OPJ/oD7wc6qY8raQJPTHuAL2Takc8BT64u+YLuDuATCw97crfOh7dyTulSrE6hwvUu5XHzbtSXrI7cpAyvPscdj1rHBk8uPEEvQw7Crg4Fwy9df+wOjHugDxiwkC9tBiju7n+6DzPyaw7o87VvEs1p7xgOQG9YZHzvAByM71RTLo6ND4qvd5MkDyOCKa7UQGsu2AarDviu468gJc6PYB4ZbzldZu8rwEQvIrktbtdjNi8PqVmuxMZB70il9Y8wtScvLiz2rtTP90617mhuVZE+Lyn03A7ZVAUOwdvhTyZ6z285zwFPbVjsTwevnS8F7Q+PKRk8ry4hyE9OuvZu4CXurzHCoU8w5Zyu70ImLrbCUs86S8oPJAanjxs4wI9tIIGPHYr6rwVokY80NskvJx5Eb0Xlek8zSGYPISc1bx3p8W8b03tvKuSEblrSNI8xiRGPAliKDvinLk80NukvN6XHr1WRHi8AwCHu44IpjzzMRW7r7YBPKOiHL1d1+Y8l0MpPdgEMD2Jh688AmXWPAreA70fw4g8I32VPPVDDbztyt+7Wh3aOy3KELxGtDA9jlO0u+aC/7wpdVM9F2mwu70IGLzEx7+8GDAau6X/Ir240i+8phGbPAOWIz2Z6z09DBw1vE2xAj25Sfe8xvgMPbNRubrG+Ay8ZjE/PZ/oD7waI708uB2+vEjGqLyycA69D6oIPHImzzw0Pio9wQ2zPGiOxTy/+zo9dkq/PP4zArxSXjI8T+8zPYBMrLzC1Jw7ndYXPP4UrbukZPI8E6+jPJ/oj7qSWE+7QTM6PXMH+jyZ6z29Go0gvc4u/DuPf206duDbvGiOxbsXSls8xkMbPXmaaDw0qA29OjboPB78nju/sCy8CUNTPKGQpLyqgBm9nFo8PLg8k7yjODm8PvD0PPegE7xT1Xk89SQ4PTYFlLtKbj08TGHgu1qzdjyrRwO8\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + 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 + AP//AwDiS0D64CAAAA== headers: CF-RAY: - - 92606d69df737e05-GRU + - 93bd4e5fa8affa9e-SJC Connection: - keep-alive Content-Encoding: @@ -52,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Tue, 25 Mar 2025 18:21:21 GMT + - Wed, 07 May 2025 02:32:19 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU; - path=/; expires=Tue, 25-Mar-25 18:51:21 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8; + path=/; expires=Wed, 07-May-25 03:02:19 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000; + - _cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -78,15 +185,15 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '111' + - '554' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-678fbc785b-244c7 + - envoy-router-548b76db4d-24xct x-envoy-upstream-service-time: - - '82' + - '557' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -100,191 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_eec876b36a4e41890b2123c7595d82bf - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"input": ["What is Brandon''s favorite color? This is the expected criteria - for your final answer: Brandon''s favorite color. you MUST return the actual - complete content as the final answer, not a summary."], "model": "text-embedding-3-small", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate, zstd - connection: - - keep-alive - content-length: - - '272' - content-type: - - application/json - cookie: - - __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU; - _cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.68.2 - x-stainless-arch: - - x64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.68.2 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.9 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 39,\n \"total_tokens\": 39\n }\n}\n" - headers: - CF-RAY: - - 92606d71fadd7e05-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 25 Mar 2025 18:21:22 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - openai-model: - - text-embedding-3-small - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '176' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-84d4976dd6-kn9b2 - x-envoy-upstream-service-time: - - '76' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999951' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_4a397f4ae14d9fcb88333d9ecb5be969 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: !!binary | - CocLCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS3goKEgoQY3Jld2FpLnRl - bGVtZXRyeRK2CAoQro1thsfReS7yOp6MTxegrxIItR6JoTTghDkqDENyZXcgQ3JlYXRlZDABOZgk - XbC/HjAYQdgJurC/HjAYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl - cnNpb24SCAoGMy4xMi45Si4KCGNyZXdfa2V5EiIKIDU1MjczOGJmMDQwZTcxZGEyMjJmOWQzNjU1 - MjIzMjdjSjEKB2NyZXdfaWQSJgokMmUzMGJhOWQtZWNkOS00MDg5LTk5YTctMGIwYTE0ODk5ODdh - ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3 - X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUqaAwoLY3Jl - d19hZ2VudHMSigMKhwNbeyJrZXkiOiAiYTk2YTQyMjM1Y2U0M2RiZDgwNzc0ZWIyODhhNzM3MzUi - LCAiaWQiOiAiZjU5NjZlYTktODk2Zi00MDRmLWIwOGUtZDk1MWI4OWNmZTM3IiwgInJvbGUiOiAi - SW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlwdGlvbiB0aGF0IGlz - IGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAidmVyYm9zZT8iOiBmYWxzZSwgIm1heF9pdGVy - IjogMjUsICJtYXhfcnBtIjogbnVsbCwgImZ1bmN0aW9uX2NhbGxpbmdfbGxtIjogIiIsICJsbG0i - OiAiZ3B0LTRvLW1pbmkiLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29k - ZV9leGVjdXRpb24/IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMi - OiBbXX1dSsgCCgpjcmV3X3Rhc2tzErkCCrYCW3sia2V5IjogIjg2ZmU1NTY3ZDFmNDFiMWY4NDQ1 - ZTRmOGQ0YmY0MGU2IiwgImlkIjogImM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3 - NCIsICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFn - ZW50X3JvbGUiOiAiSW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlw - dGlvbiB0aGF0IGlzIGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAiYWdlbnRfa2V5IjogImE5 - NmE0MjIzNWNlNDNkYmQ4MDc3NGViMjg4YTczNzM1IiwgInRvb2xzX25hbWVzIjogW119XXoCGAGF - AQABAAASjgIKELNeNWDbp5Ua0wTFrxxeOrASCIhmnaGTrxBNKgxUYXNrIENyZWF0ZWQwATkQlzso - wB4wGEE4Kz4owB4wGEouCghjcmV3X2tleRIiCiA1NTI3MzhiZjA0MGU3MWRhMjIyZjlkMzY1NTIy - MzI3Y0oxCgdjcmV3X2lkEiYKJDJlMzBiYTlkLWVjZDktNDA4OS05OWE3LTBiMGExNDg5OTg3YUou - Cgh0YXNrX2tleRIiCiA4NmZlNTU2N2QxZjQxYjFmODQ0NWU0ZjhkNGJmNDBlNkoxCgd0YXNrX2lk - EiYKJGM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3NHoCGAGFAQABAAA= - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, zstd - Connection: - - keep-alive - Content-Length: - - '1418' - Content-Type: - - application/x-protobuf - User-Agent: - - OTel-OTLP-Exporter-Python/1.31.1 - method: POST - uri: https://telemetry.crewai.com:4319/v1/traces - response: - body: - string: "\n\0" - headers: - Content-Length: - - '2' - Content-Type: - - application/x-protobuf - Date: - - Tue, 25 Mar 2025 18:21:24 GMT + - req_61a2cd23c379f8ce51385df82ba1c744 status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent - with extensive role description that is longer than 80 characters. You have - access to specific knowledge sources.\nYour personal goal is: Provide information - based on knowledge sources\nTo give my best complete final answer to the task - respond using the exact following format:\n\nThought: I now can give a great - answer\nFinal Answer: Your final answer must be the great and the most complete - as possible, it must be outcome described.\n\nI MUST use these formats, my job - depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s - favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s - favorite color.\nyou MUST return the actual complete content as the final answer, - not a summary.Additional Information: Brandon''s favorite color is red and he - likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available - and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": - "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '1074' + - '987' content-type: - application/json host: @@ -292,7 +241,7 @@ interactions: user-agent: - OpenAI/Python 1.68.2 x-stainless-arch: - - x64 + - arm64 x-stainless-async: - 'false' x-stainless-lang: @@ -314,21 +263,21 @@ interactions: method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-BF3Br9QWbmiaKiPLFd5URBfj1B7NQ\",\n \"object\": - \"chat.completion\",\n \"created\": 1742926883,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: Brandon's favorite color is red.\",\n \"refusal\": null,\n \"annotations\": - []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n - \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 194,\n \"completion_tokens\": - 19,\n \"total_tokens\": 213,\n \"prompt_tokens_details\": {\n \"cached_tokens\": - 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n - \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": - \"default\",\n \"system_fingerprint\": \"fp_27322b4e16\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAA4xSwW7UMBS85yssX7gQlC1pNtpjJZA4IA6IE6oir/2Sdev4WX4vBVTtvyM76SZb + QOLig+fNeGb8ngshpDXyIKQ+KdZjcOXdty9U/YjgTN183FefPkSwYQf8uf46sXybGHh8AM0vrHca + x+CALfoZ1hEUQ1Ld7evmtr3d1VUGRjTgEm0IXNZY3lQ3dVm1ZdUsxBNaDSQP4nshhBDP+UwWvYGf + 8iCyTL4ZgUgNIA+XISFkRJdupCKyxMrPdhdQo2fw2fVdVN6gf0OiV08YLYPQ6DAK63uMo7pEedGF + fiKVnPvJuQ2gvEfO49n0/YKcLzYdDiHikV5RZW+9pVMXQRH6ZIkYg8zouRDiPtcxXSWUIeIYuGN8 + hPzcbv9+1pPrB6zofsEYWbkNqV06vJbrDLCyjjZ9Sq30CcxKXctXk7G4AYpN6D/N/E17Dm798D/y + K6A1BAbThQjG6uvA61iEtJ7/GruUnA1LgvhkNXRsIaaPMNCryS2LTr+IYex66weIIdp5ffrQmbZt + 6r49NkdZnIvfAAAA//8DADqQ5CxHAwAA headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 92606d78cdcb7def-GRU + - 93bd4e648bb75850-SJC Connection: - keep-alive Content-Encoding: @@ -336,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Tue, 25 Mar 2025 18:21:24 GMT + - Wed, 07 May 2025 02:32:20 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=akSDYPP.eTuyDBep9apt00XQn2By0q4quUKYKaowxB4-1742926884-1.0.1.1-nmj4tC9iquLz9Y4C_Lm9AYbMb7_yjKru3.wztYGzcO7o4_kIFqmjYjAAdLL2ZOWQUXzhWiH_XRvDTY94ubficIUm7WB.5o4CQ41GRGDc6c0; - path=/; expires=Tue, 25-Mar-25 18:51:24 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI; + path=/; expires=Wed, 07-May-25 03:02:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=eJkVy2yBJBQb66LFc5ao3Y_Xwek6ZYZdKM7l5_pxS_E-1742926884663-0.0.1.1-604800000; + - _cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -353,30 +302,357 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '316' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '319' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '30000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '29999784' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_c87b9fbb3b92014f978845e5773a01c6 + status: + code: 200 + message: OK +- request: + body: '{"input": ["Brandon''s favorite color information"], "model": "text-embedding-3-small", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '115' + content-type: + - application/json + cookie: + - __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8; + _cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + zGXeIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93bd4e67791dfa9e-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:32:21 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '268' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-7d545f8f56-xh67c + x-envoy-upstream-service-time: + - '233' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999991' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_aee72a2d476c61f01211fa5b25537740 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent + with extensive role description that is longer than 80 characters. You have + access to specific knowledge sources.\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s + favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s + favorite color.\nyou MUST return the actual complete content as the final answer, + not a summary.Additional Information: Brandon''s favorite color is red and he + likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": + "gpt-4o", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1069' + content-type: + - application/json + cookie: + - __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI; + _cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFKxbtswEN31FQcuXezAUhU71uYMNToUHZqiRdNAoMmTxIbiESTlOAj8 + 7wUlx1LaBMgiQPfuPb57d08JAFOSFcBEw4NorZ5ff//q02X362ZjJG1/7B6X6dYefm623xrM2Cwy + aPcHRXhmXQhqrcagyAywcMgDRtV0lS8vry7TPO2BliTqSKttmOc0zxZZPl9czRfLE7EhJdCzAm4T + AICn/hstGokHVsBi9lxp0XteIyvOTQDMkY4Vxr1XPnAT2GwEBZmApnd901BXN6GAz2DoAQQ3UKs9 + Aoc6Wgdu/AM6gN/mkzJcw6b/L+DacSPJfPBQ8T05FRAEaXKgPDiUM+BGQoOg1T16+IIHFaUrInkx + deKw6jyPQZhO6wnAjaHAY5B9Bncn5HieWlNtHe38P1RWKaN8Uzrknkyc0AeyrEePCcBdn273IjBm + HbU2lIHusX8uXeeDHhv3OaLZ6gQGClxP6lk6e0WvlBi40n6yHya4aFCO1HGZvJOKJkAymfp/N69p + D5MrU79HfgSEQBtQltahVOLlxGObw3jub7WdU+4NM49urwSWQaGLm5BY8U4Pl8j8ow/YlpUyNTrr + 1HCOlS3XizTL5Hr1UbDkmPwFAAD//wMAUYDw9pcDAAA= + headers: + CF-RAY: + - 93bd4e6c1f115850-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:32:21 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '1351' + - '290' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '294' x-ratelimit-limit-requests: - - '30000' + - '10000' x-ratelimit-limit-tokens: - - '150000000' + - '30000000' x-ratelimit-remaining-requests: - - '29999' + - '9999' x-ratelimit-remaining-tokens: - - '149999765' + - '29999765' x-ratelimit-reset-requests: - - 2ms + - 6ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_126a3481ff4c4d9e8e75ed2dacbe3719 - http_version: HTTP/1.1 - status_code: 200 + - req_e0c3819ab814496d457e48eacc4df51f + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml b/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml new file mode 100644 index 000000000..794f071c3 --- /dev/null +++ b/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml @@ -0,0 +1,660 @@ +interactions: +- request: + body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."], + "model": "text-embedding-3-small", "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '137' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-RAY: + - 93bd468618792506-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:58 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk; + path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '271' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6fcbcbb5fd-rlx2b + x-envoy-upstream-service-time: + - '276' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999986' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_dfb1b7e20cfae7dd4c21a591f5989210 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: The answer to the question, in a format like + this: `{{name: str, favorite_color: str}}`\nyou MUST return the actual complete + content as the final answer, not a summary.."}], "model": "gpt-4o-mini", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1054' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xSsW7bMBTc9RXEW7pYhaw6leylQJClU4AGyRIEAkM+yUwoPoJ8MloE/veAkmMp + aQp04cB7d7w7vpdMCDAadgLUXrLqvc0vb697eroKNzdey/hLF9XzdXm4uLqTZfUTVolBj0+o+I31 + VVHvLbIhN8EqoGRMqutq8/2i3tTregR60mgTrfOcbyjvjTN5WZSbvKjydX1i78kojLAT95kQQryM + Z/LpNP6GnShWbzc9xig7hN15SAgIZNMNyBhNZOkYVjOoyDG60fplkE6T+xJFKw8UDKNQZCn8WM4H + bIcok2c3WLsApHPEMmUenT6ckOPZm6XOB3qMH6jQGmfivgkoI7nkIzJ5GNFjJsTD2MHwLhb4QL3n + hukZx+fW23LSg7n6Ga1OGBNLuyRtV5/INRpZGhsXJYKSao96ps6Ny0EbWgDZIvTfZj7TnoIb1/2P + /AwohZ5RNz6gNup94HksYFrMf42dSx4NQ8RwMAobNhjSR2hs5WCndYH4JzL2TWtch8EHM+1M65vi + 27asy7LYFpAds1cAAAD//wMA3xmId0EDAAA= + headers: + CF-RAY: + - 93bd468ac97dcedd-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:58 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4; + path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '267' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '300' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999769' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_9be67025184f64bbc77df86b89c5f894 + status: + code: 200 + message: OK +- request: + body: '{"input": ["Brandon''s favorite color?"], "model": "text-embedding-3-small", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '104' + content-type: + - application/json + cookie: + - __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk; + _cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-RAY: + - 93bd468e08302506-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:59 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '140' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-678b766599-k7s96 + x-envoy-upstream-service-time: + - '61' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999994' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_22e020337220a8384462c62d1e51bcc6 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent + with extensive role description that is longer than 80 characters. You have + access to specific knowledge sources.\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s + favorite color?\n\nThis is the expected criteria for your final answer: The + answer to the question, in a format like this: `{{name: str, favorite_color: + str}}`\nyou MUST return the actual complete content as the final answer, not + a summary.Additional Information: Brandon''s favorite color is red and he likes + Mexican food.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1136' + content-type: + - application/json + cookie: + - __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4; + _cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFNNb+IwEL3nV4x8JqsQYAu50UOl7mG/JE5LFU3tSXBxPJZt6K4Q/33l + QCHtdqVeInnevOf3ZpxDBiC0EhUIucEoO2fy29W3zq2+L2dmpb4sFj+2X5dm80Td9qe8j2KUGPz4 + RDK+sD5J7pyhqNmeYOkJIyXV8c3082w+nY8XPdCxIpNorYv5lPNOW52XRTnNi5t8PD+zN6wlBVHB + rwwA4NB/k0+r6LeooBi9VDoKAVsS1aUJQHg2qSIwBB0i2pPnMyjZRrK99Xuw/AwSLbR6T4DQJtuA + NjyTB1jbO23RwLI/V3A4WOyogrW49WgV27UYQYN79jpSLdmwT6AntRbH4/BOT80uYMptd8YMALSW + I6a59Wkfzsjxks9w6zw/hjdU0Wirw6b2hIFtyhIiO9GjxwzgoZ/j7tVohPPcuVhH3lJ/XTmenPTE + dX0DdHYGI0c0g/pkPnpHr1YUUZsw2ISQKDekrtTr2nCnNA+AbJD6XzfvaZ+Sa9t+RP4KSEkukqqd + J6Xl68TXNk/pdf+v7TLl3rAI5PdaUh01+bQJRQ3uzPk/CX9CpK5utG3JO69PD69xdTFZlPOyLBaF + yI7ZXwAAAP//AwCISUFdhgMAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93bd46929f55cedd-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:27:00 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '394' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '399' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999749' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_08f3bc0843f6a5d9afa8380d28251c47 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml index 5b73238c1..994bfd855 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -151,7 +151,7 @@ interactions: 6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA== headers: CF-RAY: - - 931fcf607c16eb34-SJC + - 93bd535cca31f973-SJC Connection: - keep-alive Content-Encoding: @@ -159,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:53 GMT + - Wed, 07 May 2025 02:35:43 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=CncSMPCav.9EJL3emmM0sTqugx5GN6_Oy8JPFBssVho-1744933673-1.0.1.1-Q1XMvHbQdrfEWkkCYeeNHwFdZ1NpjAGJ_0jOUYIk_APelFe7nCanjW_xlOj12b3JQql9.iWQDiHvCeYJDTWkdxnNiMQOEiFMYHX5YZXUuJs; - path=/; expires=Fri, 18-Apr-25 00:17:53 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=FaqN2sfsTata5eZF3jpzsswr9Ry6.aLOWPP..HstyKk-1746585343-1.0.1.1-9IGOA.WxYd0mtZoXXs5PV_DSi6IzwCB.H8l4mQxLdl3V1cQ9rGr5FSQPLoDVJA5uPwxduxFEbLVxJobTW2J_P0iBVcEQSvxcMnsJ8Jtnsxk; + path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=unfPTYCpF5COtm5PuZDuaJqlhefP0iibfjsXHc9lKq0-1744933673515-0.0.1.1-604800000; + - _cfuvid=SlYSO8wQlhrJsTTYoTXd7IBl_D9ZddMlIzW1PTFiZIE-1746585343627-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -185,15 +185,15 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '75' + - '38' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-8687b6cbdb-4qpmr + - envoy-router-6fcbcbb5fd-pxw6t x-envoy-upstream-service-time: - - '46' + - '41' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -207,32 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_b8c884a7fe2bd4732903ecbdc632576d + - req_39d01dc72178a8952d00ba36c7512521 status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent. - You have access to specific knowledge sources.\nYour personal goal is: Provide - information based on knowledge sources\nTo give my best complete final answer - to the task respond using the exact following format:\n\nThought: I now can - give a great answer\nFinal Answer: Your final answer must be the great and the - most complete as possible, it must be outcome described.\n\nI MUST use these - formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: - What is Brandon''s favorite color?\n\nThis is the expected criteria for your - final answer: Brandon''s favorite color.\nyou MUST return the actual complete - content as the final answer, not a summary.\n\nBegin! This is VERY important - to you, use the tools available and give your best Final Answer, your job depends - on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '926' + - '992' content-type: - application/json host: @@ -264,18 +265,19 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jJNNi9swEIbv+RWDLr0ki/NBvm5NYUsplFK29NAuZiKNnWlkjVaSk02X - /PdiJxtn2y30YrCeecfvvCM/9QAUG7UEpTeYdOXtYPXp7vbLw7evm4ePmObvt/jrsVgVn9/5dbhj - 1W8Usv5JOj2rbrRU3lJicSesA2GiputwNpksxuPpbNyCSgzZRlb6NJjIoGLHg1E2mgyy2WA4P6s3 - wpqiWsL3HgDAU/tsfDpDj2oJWf/5pKIYsSS1vBQBqCC2OVEYI8eELql+B7W4RK61/gGc7EGjg5J3 - BAhlYxvQxT0FgB/ulh1aeNu+L2EV0BlxbyIUuJPAiUCLlQAcwUkCX68ta3sAI7quyCUywA72bMge - AHfIFteWYOtkb8mUBFHqoCneXPsLVNQRm4xcbe0VQOckYZNxm8z9mRwvWVgpfZB1/EOqCnYcN3kg - jOKauWMSr1p67AHct5nXL2JUPkjlU55kS+3nhtP5qZ/qVt3R0fQMkyS0V6rFpP9Kv9xQQrbxamtK - o96Q6aTdirE2LFegdzX1325e632anF35P+07oDX5RCb3gQzrlxN3ZYGaP+FfZZeUW8MqUtixpjwx - hWYThgqs7el+qniIiaq8YFdS8IFPl7TweTZejOajUbbIVO/Y+w0AAP//AwA4a1/QsgMAAA== + H4sIAAAAAAAAAwAAAP//jFJNa9wwFLz7V4h36WVdvF5nv46BQEsPpYWeSjCK9GwrlfVU6XlpCfvf + i+zN2klT6EUHzZvRzOg9ZUKA0XAUoDrJqvc2v/32+fTh68e7bel/UtXFR6/vKv+FP6191cMqMejh + ERU/s94r6r1FNuQmWAWUjEl1vau2N/ubTbUZgZ402kRrPecV5b1xJi+LssqLXb7eX9gdGYURjuJ7 + JoQQT+OZfDqNv+AoitXzTY8xyhbheB0SAgLZdAMyRhNZOobVDCpyjG60fhuk0+TeRdHIEwXDKBRZ + CsvxgM0QZbLsBmsXgHSOWKbIo9H7C3K+WrPU+kAP8RUVGuNM7OqAMpJLNiKThxE9Z0LcjxUML1KB + D9R7rpl+4PjcereZ9GBufka3F4yJpV2SDqs35GqNLI2Niw5BSdWhnqlz4XLQhhZAtgj9t5m3tKfg + xrX/Iz8DSqFn1LUPqI16GXgeC5j28l9j15JHwxAxnIzCmg2G9BEaGznYaVsg/o6Mfd0Y12LwwUwr + 0/i62BzKfVkWhwKyc/YHAAD//wMAwl9O/EADAAA= headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 931fcf649bdbed40-SJC + - 93bd535e5f0b3ad4-SJC Connection: - keep-alive Content-Encoding: @@ -283,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:54 GMT + - Wed, 07 May 2025 02:35:43 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=8vySwO0xqpm0u93_1_rXQwTeEIWa2ei3_CD5sAdoo3o-1744933674-1.0.1.1-iqZDpH5poOUp4Rcnhfrb0N2Z0c2662RBiPEcx_gefNW.m3tBA3qyFa8tmFv7PitH8u9vyYK7jxUwy4lPiSi830QWNbTMgCMTbrJ7iaUV7hY; - path=/; expires=Fri, 18-Apr-25 00:17:54 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo; + path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=IXAyT8eWpFERM53ngcYNmaqhocfGbOHWSoe7SFNdoGI-1744933674288-0.0.1.1-604800000; + - _cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -300,16 +302,133 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '167' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '174' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999783' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_efb615e12a042605322c615ab896925c + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + You have access to specific knowledge sources.\nYour personal goal is: Provide + information based on knowledge sources\nTo give my best complete final answer + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '926' + content-type: + - application/json + cookie: + - __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo; + _cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xTTU/bQBC951eM9tJLghITIORWVKFSDq0qoR5aZE12x/aW9Yy7O06IEP+9shPi + 0FKpF0ueN+/tm6+nEYDxzizB2ArV1k2YXN19Xt/cVtnjh+2XbLH99W399a759HFzy8Xs0Yw7hqx+ + ktUX1omVugmkXngH20io1KnOLubnZ4uz0/m8B2pxFDpa2ehkLpPas59k02w+mV5MZos9uxJvKZkl + fB8BADz1384nO3o0S5iOXyI1pYQlmeUhCcBECV3EYEo+KbKa8QBaYSXurd8AywYsMpR+TYBQdrYB + OW0oAvzga88Y4H3/v4SriOyE3yUocC3RK4GVIBF8AhaFpl0Fb8MWnNi2JlZy4Bms1LVw2AKu0Qdc + BYIHlk0gVxIkaaOldALXEgGtbSMqgedCYo1dP8fgFTbSBgcrghUlBRXA9PBiB5yPZDVsQSJY4dQG + hYZiks77Xh82FUUCrXw6Focat51sqjCSOzluU6SiTdiNitsQjgBkFu3Z/YDu98jzYSRByibKKv1B + NYVnn6o8Eibhrv1JpTE9+jwCuO9H376apmmi1I3mKg/UPzc7X+z0zLBxAzq/3IMqimGIZ7OL8Rt6 + uSNFH9LR8hiLtiI3UIdNw9Z5OQJGR1X/7eYt7V3lnsv/kR8Aa6lRcnkTyXn7uuIhLVJ3kP9KO3S5 + N2wSxbW3lKun2E3CUYFt2J2JSdukVOeF55JiE/3uVoomn55eZossm15Ozeh59BsAAP//AwAaTaZd + OQQAAA== + headers: + CF-RAY: + - 93bd53604e3f3ad4-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:35:45 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '489' + - '933' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '936' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -317,13 +436,13 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999801' + - '149999802' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_151f9d0b786f2022f249ee20ea108b43 + - req_0001c38df543cc383617c370087f0ee3 status: code: 200 message: OK diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml index cea659823..d818e4521 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -150,8 +150,10 @@ interactions: Mj9mH/7zuxXwX//68+d//G4YtN0jf30vBkz5Mv3H/7kq8B/if4xt+nr9vYZAxrTI//n3/76B8M9n 6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA== headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 931fceef786ded38-SJC + - 93bd57189acf15be-SJC Connection: - keep-alive Content-Encoding: @@ -159,14 +161,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:35 GMT + - Wed, 07 May 2025 02:38:16 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=fj4RMXSXRDQjE2CFC6CGC3dVcJ8cl2Cbu8alijwMHA8-1744933655-1.0.1.1-M3c3AI4XQa.0GJoanNACuOm2aEL4xjqHR1grxIP3olFvq3e0eFHwQTvCF20YwR_OLiMJUH87eNUwgziawMccsxjR9OVZyDr5._5Wts6CrqA; - path=/; expires=Fri, 18-Apr-25 00:17:35 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=VGdrMAj2834vuX5RC6lPbHVNwWHXnBmqLb0kAhiGO4g-1746585496-1.0.1.1-kvgkEGO9fI9sasCfJjizGBG4k82_KhCRbH8CEyFrjJatzMoxhM0Z3suJO_hFFH13Wyi2wThiM9QSPvH3dddjfC7hC_tscxijZwiGqtCVnnE; + path=/; expires=Wed, 07-May-25 03:08:16 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=MSkpJsQZtdyIGvrl2mIwy0a_We8H6CIrS7etFgRBl2Y-1744933655703-0.0.1.1-604800000; + - _cfuvid=sAoMYVxAaEFBkQttcKO7GlBZ5NlUNUIaJomZ05pGlCs-1746585496569-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -178,22 +180,20 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '140' + - '69' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-84959bbcd5-rzqvq + - envoy-router-7d545f8f56-jx5wk x-envoy-upstream-service-time: - - '110' + - '52' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -207,32 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_dd3ef61c4765b46ed7db80ddfe261f41 + - req_73f3f0d371e3c19b16c7a6d7cc45d3ee status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent. - You have access to specific knowledge sources.\nYour personal goal is: Provide - information based on knowledge sources\nTo give my best complete final answer - to the task respond using the exact following format:\n\nThought: I now can - give a great answer\nFinal Answer: Your final answer must be the great and the - most complete as possible, it must be outcome described.\n\nI MUST use these - formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: - What is Brandon''s favorite color?\n\nThis is the expected criteria for your - final answer: Brandon''s favorite color.\nyou MUST return the actual complete - content as the final answer, not a summary.\n\nBegin! This is VERY important - to you, use the tools available and give your best Final Answer, your job depends - on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '926' + - '992' content-type: - application/json host: @@ -264,20 +265,19 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFLBbtswDL37KwhdeokLx0mbOLd2WIAC63YZdthWGIpMO9xkUZDkpEWR - fx/kpLG7dUAvBszHR733yOcEQFAlViDUVgbVWp3efv66LvKPRd7Q/f57vtaf7m6ePjze774sv23E - JDJ48wtVeGFdKm6txkBsjrByKAPGqdPFfF7MZtdXVz3QcoU60hob0jmnLRlK8yyfp9kinS5P7C2T - Qi9W8CMBAHjuv1GnqfBRrCCbvFRa9F42KFbnJgDhWMeKkN6TD9IEMRlAxSag6aXfgeE9KGmgoR2C - hCbKBmn8Hh3AT7MmIzXc9P8ruHXSVGwuPNRyx44CgmLNDsjDRnd4OX7GYd15Ga2aTusRII3hIGNU - vcGHE3I4W9LcWMcb/xdV1GTIb0uH0rOJ8n1gK3r0kAA89NF1r9IQ1nFrQxn4N/bPTa+Xx3li2NgI - LU5g4CD1qL5cTN6YV1YYJGk/Cl8oqbZYDdRhU7KriEdAMnL9r5q3Zh+dk2neM34AlEIbsCqtw4rU - a8dDm8N40P9rO6fcCxYe3Y4UloHQxU1UWMtOH89M+CcfsC1rMg066+h4a7Uts1mRL/M8KzKRHJI/ - AAAA//8DALRhJdF5AwAA + H4sIAAAAAAAAA4xSy27bMBC86yuIvfRiFbKs+HVLUKBFL0YPRosWgcCQK5kNxSXItZEi8L8XlBxL + aVOgFx44O8OZ4T5nQoDRsBWgDpJV521+t989PX78tF/fnr5X+w/fdgv6WnxuWruzX25hlhj08BMV + v7DeK+q8RTbkBlgFlIxJdb6qljfrm2qz7IGONNpEaz3nFeWdcSYvi7LKi1U+X1/YBzIKI2zFj0wI + IZ77M/l0Gp9gK4rZy02HMcoWYXsdEgIC2XQDMkYTWTqG2Qgqcoyut34XpNPk3kXRyBMFwygUWQrT + 8YDNMcpk2R2tnQDSOWKZIvdG7y/I+WrNUusDPcQ/qNAYZ+KhDigjuWQjMnno0XMmxH1fwfFVKvCB + Os810yP2z81Xi0EPxuZHdHnBmFjaKWkze0Ou1sjS2DjpEJRUB9QjdSxcHrWhCZBNQv9t5i3tIbhx + 7f/Ij4BS6Bl17QNqo14HHscCpr3819i15N4wRAwno7BmgyF9hMZGHu2wLRB/RcauboxrMfhghpVp + fF0sNuW6LItNAdk5+w0AAP//AwDAmd1xQAMAAA== headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 931fcef51a67f947-SJC + - 93bd571a5a7267e2-SJC Connection: - keep-alive Content-Encoding: @@ -285,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:36 GMT + - Wed, 07 May 2025 02:38:17 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=7agwu5JV1OJvEFNhvfvqdgWf.HoMyIni9D85soRl3WE-1744933656-1.0.1.1-dKUwAZnjjuuiswFKWGsxpwHNBJUpjhYlZvfZpyNQIejxEJrXMCppgPvtQ9wa4SKezLmKqftvn_H.bAx_AEFJD2EWm5V6R_uK8.odneErR6A; - path=/; expires=Fri, 18-Apr-25 00:17:36 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k; + path=/; expires=Wed, 07-May-25 03:08:17 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=LdTrzwZYrB6ZyQLY7NdaaHVpDVFvIjYm3arSpNy87wU-1744933656504-0.0.1.1-604800000; + - _cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -305,11 +305,130 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '540' + - '183' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '187' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999783' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_50fa35cb9ba592c55aacf7ddded877ac + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + You have access to specific knowledge sources.\nYour personal goal is: Provide + information based on knowledge sources\nTo give my best complete final answer + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '926' + content-type: + - application/json + cookie: + - __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k; + _cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFNNb9swDL3nVxC67JIMSZo0aW4ttmI77bIO3UdhMBLtcJVJQZKTBkX/ + +2CnrdOuA3YxYD4+8lGPvB8AGHZmBcZuMNs6+NHF1Zc7Xycnp/Rhdv3x2/fL82r+9Tr/uDrxn8yw + Zej6N9n8xHpvtQ6eMqscYBsJM7VVJ4vZ6Xw5n50tOqBWR76lVSGPZjqqWXg0HU9no/FiNFk+sjfK + lpJZwc8BAMB99211iqM7s4Lx8ClSU0pYkVk9JwGYqL6NGEyJU0bJZtiDViWTdNI/g+gOLApUvCVA + qFrZgJJ2FAF+ySULejjv/ldwEVGcyrsEJW41ciaw6jUCJxDNEJq1Z+v3cCu6E9AIuEX2uPYELGC1 + rlU60JOrCJI20VIaAiYIFJO2zUKkkiKJpQSeb+lVrwQYCfI+sEXv9xAibzEToLhukC3GPezYkd8D + 1ioVsDjesmvQJ9hx3mhzpDRtMJIDllJjja1/74/fKlLZJGz9ksb7IwBFNHf5nUs3j8jDsy9eqxB1 + nV5RTcnCaVNEwqTSepCyBtOhDwOAm87/5oWlJkStQy6y3lLXbnK6PNQz/dr16GzxCGbN6Pv4dDIf + vlGvcJSRfTraIGPRbsj11H7dsHGsR8DgaOq/1bxV+zA5S/U/5XvAWgqZXBEiObYvJ+7TIrVX+a+0 + 51fuBJtEccuWiswUWyccldj4w62YtE+Z6qJkqSiGyIeDKUMxPjmbLqfT8dnYDB4GfwAAAP//AwA/ + 0jeHPgQAAA== + headers: + CF-RAY: + - 93bd571c9cf367e2-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:38:18 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '785' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '931' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -323,7 +442,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_8837be6510731522fd5ac4b75c11d486 + - req_9bf7c8e011b2b1a8e8546b68c82384a7 status: code: 200 message: OK diff --git a/tests/cassettes/test_get_knowledge_search_query.yaml b/tests/cassettes/test_get_knowledge_search_query.yaml new file mode 100644 index 000000000..39af3cfce --- /dev/null +++ b/tests/cassettes/test_get_knowledge_search_query.yaml @@ -0,0 +1,333 @@ +interactions: +- request: + body: '{"input": ["Capital of France"], "model": "text-embedding-3-small", "encoding_format": + "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '96' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93c2407849cb943e-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 16:56:39 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=iRcThWdZ.NO0HPhZg.pUV1AiG0u.0Dkd58N9HGucKdQ-1746636999-1.0.1.1-Cswtia9bUNC0npExHV2GcZLT2MVo6tEQbFU_dsKpjNN5R3s37B6JGWTE1IIZV9V0UGLhiy04og474anpJW4c6yLw0.9q5F4MPcxtAOjwBvo; + path=/; expires=Wed, 07-May-25 17:26:39 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=rvDDZbBWaissP0luvtyuyyAWcPx3AiaoZS9LkAuK4sM-1746636999152-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '116' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6b78fbf94c-z6prb + x-envoy-upstream-service-time: + - '123' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999996' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_3f67e7a1b90d845c25e9cef31147aba0 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + I have access to knowledge sources\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is the capital + of France?\n\nThis is the expected criteria for your final answer: The capital + of France is Paris.\nyou MUST return the actual complete content as the final + answer, not a summary.\n\nBegin! This is VERY important to you, use the tools + available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "model": "gpt-4", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '911' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xSwW7bMAy9+ysIXXpJgmbN0iW3DEPQAtswDBt2WAuDlWhbjSxpEt00KPLvg+Uk + drYeetGBj3x6fHwvGYDQSixByApZ1t6MP/6UX75vV82n7Yf17uvKX4dVuXn/Sxc3n2+uxKidcA+P + JPk4NZGu9oZYO9vBMhAytazT69l8fjVfLBYJqJ0i046Vnsez8eV8eiCUldOSoljC7wwA4CW9rTar + 6Fks4XJ0rNQUI5YklqcmABGcaSsCY9SR0bIY9aB0lskmubcg0VrH4IN70ooA7Q4cVxRA28KFGtst + ACNwRcAYNyANYTA7iIxMXZ2ePUkmBYW2aABt3FIAtAqUo2gvGAL9aXQgQKV0y4hmyD+BW4iVa4w6 + 6ehoUfKR7cCgJnf2zq7TP6uELOFHRSDRa0YDroB1QCsJdIRvGHScDFcPVDQRW8ttY8wASC4kMcn0 + +wOyP9lsXOmDe4j/jIpCWx2rPBBGZ1tLIzsvErrPAO7TOZuzCwkfXO05Z7eh9N10vuj4RJ+cHp1N + DyA7RtPX300PITjnyxUxahMHgRASZUWqH+3Tg43SbgBkg63/V/Mad7e5tuVb6HtASvJMKveBlJbn + G/dtgR5Tsl5vO7mcBItI4UlLyllTaC+hqMDGdNEXcReZ6rzQtqTgg075by+Z7bO/AAAA//8DAI9H + rN32AwAA + headers: + CF-RAY: + - 93c2407d5cfaface-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 16:56:41 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=g.ZMxB8fB7ZSkwD6w5ws93pGGw6nEi3uFVh.JDp2OOU-1746637001-1.0.1.1-59mPPW0bDWyD6ngFx6m9LdHurrdN9Kaem.eFcKAwWp_H_4kabp2CzCRiEaW2QhRYYPWE6fZPgqWU8amQtZqpRZHtEjTyoL8t6UtyzyTCoAQ; + path=/; expires=Wed, 07-May-25 17:26:41 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=WOtfHIloFTPkupN1gC2z.3cExzObgfz.p4fXYpCK0aI-1746637001631-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '2084' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '2086' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '1000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '999805' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 11ms + x-request-id: + - req_1ff0f0c079f8e7f5feb17fe762b5e40a + status: + code: 200 + message: OK +version: 1