From fdd70d71cd28c03038b095737377e434ce3bff6a Mon Sep 17 00:00:00 2001 From: Xi Yan Date: Tue, 4 Mar 2025 09:42:50 -0800 Subject: [PATCH] fix --- .../agents/meta_reference/agent_instance.py | 20 +- .../recorded_responses/chat_completion.json | 5224 +++++++++++++++++ .../recorded_responses/chat_completion.pickle | Bin 168310 -> 292724 bytes .../recorded_responses/invoke_tool.json | 74 +- .../recorded_responses/invoke_tool.pickle | Bin 35821 -> 41560 bytes 5 files changed, 5311 insertions(+), 7 deletions(-) diff --git a/llama_stack/providers/inline/agents/meta_reference/agent_instance.py b/llama_stack/providers/inline/agents/meta_reference/agent_instance.py index 25cf0990a..f8cfec334 100644 --- a/llama_stack/providers/inline/agents/meta_reference/agent_instance.py +++ b/llama_stack/providers/inline/agents/meta_reference/agent_instance.py @@ -243,14 +243,22 @@ class ChatAgent(ShieldRunnerMixin): steps=steps, ) await self.storage.add_turn_to_session(request.session_id, turn) - - chunk = AgentTurnResponseStreamChunk( - event=AgentTurnResponseEvent( - payload=AgentTurnResponseTurnCompletePayload( - turn=turn, + if output_message.tool_calls: + chunk = AgentTurnResponseStreamChunk( + event=AgentTurnResponseEvent( + payload=AgentTurnResponseTurnAwaitingInputPayload( + turn=turn, + ) + ) + ) + else: + chunk = AgentTurnResponseStreamChunk( + event=AgentTurnResponseEvent( + payload=AgentTurnResponseTurnCompletePayload( + turn=turn, + ) ) ) - ) yield chunk diff --git a/tests/client-sdk/fixtures/recorded_responses/chat_completion.json b/tests/client-sdk/fixtures/recorded_responses/chat_completion.json index e84b9be24..1414d76a3 100644 --- a/tests/client-sdk/fixtures/recorded_responses/chat_completion.json +++ b/tests/client-sdk/fixtures/recorded_responses/chat_completion.json @@ -6320,5 +6320,5229 @@ } ], "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant Always respond with tool calls no matter what. '), UserMessage(role='user', content='Get the boiling point of polyjuice with a tool call.', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='get_boiling_point', arguments={'liquid_name': 'polyjuice', 'celcius': True})]), ToolResponseMessage(role='tool', call_id='', tool_name='get_boiling_point', content='-100')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " provided function is unable to", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " find the boiling point of \"polyjuice\" as", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " it is not a real liquid.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Polyjuice is a fictional substance from the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Harry Potter series. If you'd like", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " to know the boiling point of a real liquid, please let me", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " know and I can try to assist you.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant Always respond with tool calls no matter what. '), UserMessage(role='user', content='Get the boiling point of polyjuice with a tool call.', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "get_boiling_point(liquid_name='polyjuice', celci", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "us=True)]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "celcius": true, + "liquid_name": "polyjuice" + }, + "call_id": "3d18758c-2e41-4ba9-8808-ab6209c700d0", + "tool_name": "get_boiling_point" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Call get_boiling_point and answer What is the boiling point of polyjuice?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='get_boiling_point', arguments={'liquid_name': 'polyjuice', 'celcius': True})]), ToolResponseMessage(role='tool', call_id='', tool_name='get_boiling_point', content='-100')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " function call returned an", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " error since \"", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "polyjuice\" is not a real liquid. Polyju", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "ice is a fictional substance from the Harry Potter series. The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " boiling point of a substance is a", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " physical property that can be measured,", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " but it only applies to real substances. If", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " you'd like to know the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " boiling point of a different liquid,", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " I can try to help with that.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Call get_boiling_point and answer What is the boiling point of polyjuice?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "get_boiling_point(liquid_name='polyjuice', cel", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "cius=True)]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "celcius": true, + "liquid_name": "polyjuice" + }, + "call_id": "7ffd8d9c-1828-46de-9153-a6f9aeacc73d", + "tool_name": "get_boiling_point" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Give me a sentence that contains the word: hello', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "When", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " I answered", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " phone, the friendly voice on the other end said", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " \"hello\" and asked how I was doing", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ".", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv file, can you describe it?', context=None), ToolResponseMessage(role='tool', call_id='', tool_name=, content=[TextContentItem(type='text', text='# User provided a file accessible to you at \"\"\\nYou can use code_interpreter to load and inspect it.')]), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'import pandas as pd\\n# Load data\\ndf = pd.read_csv(\"\")\\n# Rows\\nprint(\"Number of rows and columns in the data:\", df.shape)\\n# Columns\\nprint(\"Columns of the data are:\", len(df.columns))\\n# Column names\\nprint(\"Columns of the data are:\", df.columns)\\n# Column dtypes\\nprint(\"Datatype of the columns are:\", df.dtypes)\\n# Sample of data\\nprint(\"Data sample from file:\")\\nprint(df.head())'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\")])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " error message indicates that the file 'bwrap' was not", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " found. This is likely because the file path provided is incorrect or the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " file does not exist in the specified location.\n\nTo resolve", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " this issue, you should ensure that", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the file path is correct and the file exists in the specified location. If", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the file is located in a different directory,", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " you should provide the correct path to the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " file.\n\nAdditionally, you can use the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " `os` module to check if the file exists before attempting", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " to", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " read it. Here", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "'s an example:\n\n```python\nimport os\nimport", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " pandas as pd\n\nfile_path", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " = \"/var/folders/rb/qv8vwgyj6y", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "jd3t4pwsy9t0rm0000gn/T", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "/tmpvg_5g", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "2pg/D2mMw3Z4", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "inflation.csv\"\n\nif os.path.isfile(file", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "_path):\n df = pd.read_csv(file_path", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ")\n print(\"Number", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " of rows and columns in the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " data:\", df.shape)\n", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " print(\"Columns of", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the data are:\", len(df.columns))\n print", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "(\"Columns of the data are:\", df.columns)\n print(\"Datatype", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " of the columns are:\", df.dtypes)\n print(\"Data sample from", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " file:\")\n print(df.head())\nelse:\n print(\"The file does", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " not exist\")\n```\n\nThis code checks if the file exists before attempting", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " to read it. If the file does not exist, it prints a message", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " indicating that the file does not exist.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv file, can you describe it?', context=None), ToolResponseMessage(role='tool', call_id='', tool_name=, content=[TextContentItem(type='text', text='# User provided a file accessible to you at \"\"\\nYou can use code_interpreter to load and inspect it.')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "started" + }, + "tool_call": "", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "import pandas as pd\n# Load", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " data\ndf = pd.read_csv(\"/var/folders/rb/qv", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "8vwgyj6yjd3t4pwsy9t", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "0rm0000gn/T/tmpvg_5g2pg/D2", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "mMw3Z4inflation.csv\")\n# Rows\nprint(\"", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "Number of rows and columns in the data:\", df.shape)\n# Columns\n", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "print(\"Columns of the data are:\", len(df", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": ".columns))\n# Column names\nprint(\"Columns of the data are:\", df", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": ".columns)\n# Column dtypes\nprint(\"Datatype of the columns are", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": ":\", df.dtypes)\n# Sample of data\nprint", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "(\"Data sample from file:\")\nprint(df.head())", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "code": "import pandas as pd\n# Load data\ndf = pd.read_csv(\"/var/folders/rb/qv8vwgyj6yjd3t4pwsy9t0rm0000gn/T/tmpvg_5g2pg/D2mMw3Z4inflation.csv\")\n# Rows\nprint(\"Number of rows and columns in the data:\", df.shape)\n# Columns\nprint(\"Columns of the data are:\", len(df.columns))\n# Column names\nprint(\"Columns of the data are:\", df.columns)\n# Column dtypes\nprint(\"Datatype of the columns are:\", df.dtypes)\n# Sample of data\nprint(\"Data sample from file:\")\nprint(df.head())" + }, + "call_id": "471afd08-0685-4d57-97f6-7ca09bab4d2d", + "tool_name": { + "__enum__": "BuiltinTool", + "value": "code_interpreter" + } + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv, can you describe it?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'import pandas as pd\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Print the first few rows of the dataframe\\nprint(df.head())\\n\\n# Print information about the dataframe\\nprint(df.info())\\n\\n# Print summary statistics of the dataframe\\nprint(df.describe())'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\"), CompletionMessage(role='assistant', content='The error message indicates that the file \"\" does not exist. This could be due to a number of reasons such as the file being deleted, the path being incorrect, or the file being in a different location.\\n\\nTo resolve this issue, you can try the following:\\n\\n1. Check the file path: Make sure the file path is correct and the file exists in the specified location.\\n2. Check the file name: Ensure that the file name is correct and it matches the one specified in the code.\\n3. Check the file extension: Verify that the file extension is correct and it matches the one specified in the code.\\n4. Try a different file path: If the file exists in a different location, try using that path instead.\\n5. Check for typos: Ensure that there are no typos in the file path or name.\\n\\nIf you are still unable to resolve the issue, please provide more details about the file and its location, and I\\'ll be happy to help further.', stop_reason=, tool_calls=[]), UserMessage(role='user', content='Plot average yearly inflation as a time series', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'import pandas as pd\\nimport matplotlib.pyplot as plt\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Convert the \\'Year\\' column to datetime\\ndf[\\'Year\\'] = pd.to_datetime(df[\\'Year\\'], format=\\'%Y\\')\\n\\n# Group by \\'Year\\' and calculate the average inflation\\ndf_avg_inflation = df.groupby(\\'Year\\')[\\'Inflation\\'].mean().reset_index()\\n\\n# Plot the average yearly inflation as a time series\\nplt.figure(figsize=(10,6))\\nplt.plot(df_avg_inflation[\\'Year\\'], df_avg_inflation[\\'Inflation\\'], marker=\\'o\\')\\nplt.title(\\'Average Yearly Inflation\\')\\nplt.xlabel(\\'Year\\')\\nplt.ylabel(\\'Inflation\\')\\nplt.grid(True)\\nplt.show()'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\")])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " error message indicates that the file \"/var/folders/rb/qv8", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "vwgyj6yjd3t4pwsy9t0", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "rm0000gn/T", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "/tmpoy7lzz", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "an/HWxJnIYlinflation.csv\" does not exist", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ". This could be due to a number of reasons such as the file being", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " deleted, the path being incorrect, or the file being in a different location", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ".\n\nTo resolve this issue, you can try the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " following:\n\n1. Check the file path: Make sure the file path is", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " correct and the file exists in the specified location.\n2. Check the file", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " name: Ensure that the file name is correct and", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " it matches the one specified in the code.\n3", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ". Check the file extension: Verify that the file extension is correct and it", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " matches the one specified in the code.\n4. Try a different file path", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ": If the file exists in a different location, try using that path instead", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ".\n5. Check for typos: Ensure that there are no typos", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " in the file path or name.\n\nIf you are", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " still unable to resolve the issue, please provide more", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " details about the file and its location, and I'll be happy to help", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " further.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv, can you describe it?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'import pandas as pd\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Print the first few rows of the dataframe\\nprint(df.head())\\n\\n# Print information about the dataframe\\nprint(df.info())\\n\\n# Print summary statistics of the dataframe\\nprint(df.describe())'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\"), CompletionMessage(role='assistant', content='The error message indicates that the file \"\" does not exist. This could be due to a number of reasons such as the file being deleted, the path being incorrect, or the file being in a different location.\\n\\nTo resolve this issue, you can try the following:\\n\\n1. Check the file path: Make sure the file path is correct and the file exists in the specified location.\\n2. Check the file name: Ensure that the file name is correct and it matches the one specified in the code.\\n3. Check the file extension: Verify that the file extension is correct and it matches the one specified in the code.\\n4. Try a different file path: If the file exists in a different location, try using that path instead.\\n5. Check for typos: Ensure that there are no typos in the file path or name.\\n\\nIf you are still unable to resolve the issue, please provide more details about the file and its location, and I\\'ll be happy to help further.', stop_reason=, tool_calls=[]), UserMessage(role='user', content='Plot average yearly inflation as a time series', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "started" + }, + "tool_call": "", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "import pandas as pd\nimport matplotlib.pyplot as plt\n\n# Load the CSV", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " file\ndf = pd.read_csv(\"/var/folders/rb/qv", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "8vwgyj6yjd3t4pwsy9t", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "0rm0000gn/T/tmpoy7lzzan/HWx", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "JnIYlinflation.csv\")\n\n# Convert", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " the 'Year' column to datetime\ndf['Year", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "'] = pd.to_datetime(df['Year'], format='%Y')\n\n# Group", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " by 'Year' and calculate the average inflation\ndf", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "_avg_inflation = df.groupby('Year')['Inflation'].", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "mean().reset_index()\n\n# Plot the average yearly inflation", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " as a time series\n", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "plt.figure(figsize=(10,6))\nplt.plot", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "(df_avg_inflation['Year'], df_avg_inflation['Inflation'],", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " marker='o')\nplt.title('Average Yearly", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " Inflation')\nplt.xlabel('Year')\nplt.ylabel", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "('Inflation')\nplt.grid(True)\nplt.show()", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "code": "import pandas as pd\nimport matplotlib.pyplot as plt\n\n# Load the CSV file\ndf = pd.read_csv(\"/var/folders/rb/qv8vwgyj6yjd3t4pwsy9t0rm0000gn/T/tmpoy7lzzan/HWxJnIYlinflation.csv\")\n\n# Convert the 'Year' column to datetime\ndf['Year'] = pd.to_datetime(df['Year'], format='%Y')\n\n# Group by 'Year' and calculate the average inflation\ndf_avg_inflation = df.groupby('Year')['Inflation'].mean().reset_index()\n\n# Plot the average yearly inflation as a time series\nplt.figure(figsize=(10,6))\nplt.plot(df_avg_inflation['Year'], df_avg_inflation['Inflation'], marker='o')\nplt.title('Average Yearly Inflation')\nplt.xlabel('Year')\nplt.ylabel('Inflation')\nplt.grid(True)\nplt.show()" + }, + "call_id": "dda25133-4be1-418e-917a-dc8c7822e679", + "tool_name": { + "__enum__": "BuiltinTool", + "value": "code_interpreter" + } + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv, can you describe it?', context=None), ToolResponseMessage(role='tool', call_id='', tool_name=, content=[TextContentItem(type='text', text='# User provided a file accessible to you at \"\"\\nYou can use code_interpreter to load and inspect it.')]), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'import pandas as pd\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Print the first few rows of the dataframe\\nprint(df.head())\\n\\n# Print information about the dataframe\\nprint(df.info())\\n\\n# Print summary statistics of the dataframe\\nprint(df.describe())'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\")])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " error message indicates that the file \"/var/folders/rb/qv8", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "vwgyj6yjd3t4pwsy9t0", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "rm0000gn/T/tmpoy7lzzan/HWxJ", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nIYlinflation.csv\" does not exist. This could be", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " due to a number of reasons such as the file being deleted,", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the path being", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " incorrect, or the file being in a different location.\n\nTo resolve this", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " issue, you can try the following:\n\n1. Check the file path", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ": Make sure the file path is correct and the file exists in the specified", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " location.\n2. Check the file name: Ensure", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " that the file name is correct and it matches", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the one specified in the code.\n3.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Check the file extension: Verify that the file extension is", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " correct and it matches the one specified in the code.\n4.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Try a different file path: If the file exists in", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " a different location, try using that", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " path instead.\n5. Check for typos", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ": Ensure that there are no typos in the file path or", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " name.\n\nIf you are still unable to", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " resolve the issue, please provide more details about", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the file and its location, and I'll be happy to help further.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Here is a csv, can you describe it?', context=None), ToolResponseMessage(role='tool', call_id='', tool_name=, content=[TextContentItem(type='text', text='# User provided a file accessible to you at \"\"\\nYou can use code_interpreter to load and inspect it.')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "started" + }, + "tool_call": "", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "import pandas as pd\n\n# Load the CSV file\ndf = pd.read", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "_csv(\"/var/folders/rb/qv8vwgyj6y", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "jd3t4pwsy9t0rm0000gn/T", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "/tmpoy7lzzan/HWxJnIYlinflation", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": ".csv\")\n\n# Print the first few rows of the dataframe\nprint(df.head", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "())\n\n# Print information about", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " the dataframe\nprint(df.info())\n\n# Print summary", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " statistics of the dataframe\nprint(df.describe())", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "code": "import pandas as pd\n\n# Load the CSV file\ndf = pd.read_csv(\"/var/folders/rb/qv8vwgyj6yjd3t4pwsy9t0rm0000gn/T/tmpoy7lzzan/HWxJnIYlinflation.csv\")\n\n# Print the first few rows of the dataframe\nprint(df.head())\n\n# Print information about the dataframe\nprint(df.info())\n\n# Print summary statistics of the dataframe\nprint(df.describe())" + }, + "call_id": "a46e3fb0-048c-436b-a64e-cc27f662a7f5", + "tool_name": { + "__enum__": "BuiltinTool", + "value": "code_interpreter" + } + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='I am attaching some documentation for Torchtune. Help me answer questions I will ask next.', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[k", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nowledge_search(query=\"Torchtune documentation\")]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "Torchtune documentation" + }, + "call_id": "29967c15-fa70-4bb1-abb8-da6d7b5736c5", + "tool_name": "knowledge_search" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Instead of the standard multi-head attention, what attention type does Llama3-8B use?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='knowledge_search', arguments={'query': 'Llama3-8B attention type'})]), ToolResponseMessage(role='tool', call_id='', tool_name='knowledge_search', content=[TextContentItem(type='text', text='knowledge_search tool found 5 chunks:\\nBEGIN of knowledge_search tool results.\\n'), TextContentItem(type='text', text='Result 1:\\nDocument_id:num-1\\nContent: 3 `_ is a new family of models released by Meta AI that improves upon the performance of the Llama2 family\\nof models across a `range of different benchmarks `_.\\nCurrently there are two different sizes of Meta Llama 3: 8B and 70B. In this tutorial we will focus on the 8B size model.\\nThere are a few main changes between Llama2-7B and Llama3-8B models:\\n\\n- Llama3-8B uses `grouped-query attention `_ instead of the standard multi-head attention from Llama2-7B\\n- Llama3-8B has a larger vocab size (128,256 instead of 32,000 from Llama2 models)\\n- Llama3-8B uses a different tokenizer than Llama2 models (`tiktoken `_ instead of `sentencepiece `_)\\n- Llama3-\\n'), TextContentItem(type='text', text=\"Result 2:\\nDocument_id:num-1\\nContent: instead of 32,000 from Llama2 models)\\n- Llama3-8B uses a different tokenizer than Llama2 models (`tiktoken `_ instead of `sentencepiece `_)\\n- Llama3-8B uses a larger intermediate dimension in its MLP layers than Llama2-7B\\n- Llama3-8B uses a higher base value to calculate theta in its `rotary positional embeddings `_\\n\\n|\\n\\nGetting access to Llama3-8B-Instruct\\n------------------------------------\\n\\nFor this tutorial, we will be using the instruction-tuned version of Llama3-8B. First, let's download the model from Hugging Face. You will need to follow the instructions\\non the `official Meta page `_ to gain access to the model.\\nNext, make sure you grab your Hugging Face token from `here `_.\\n\\n\\n.. code-block:: bash\\n\\n tune download meta-llama/Meta-Llama-3\\n\"), TextContentItem(type='text', text=\"Result 3:\\nDocument_id:num-0\\nContent: :`download Llama3 Instruct weights `\\n\\n\\nTemplate changes from Llama2 to Llama3\\n--------------------------------------\\n\\nThe Llama2 chat model requires a specific template when prompting the pre-trained\\nmodel. Since the chat model was pretrained with this prompt template, if you want to run\\ninference on the model, you'll need to use the same template for optimal performance\\non chat data. Otherwise, the model will just perform standard text completion, which\\nmay or may not align with your intended use case.\\n\\nFrom the `official Llama2 prompt\\ntemplate guide `_\\nfor the Llama2 chat model, we can see that special tags are added:\\n\\n.. code-block:: text\\n\\n [INST] <>\\n You are a helpful, respectful, and honest assistant.\\n <>\\n\\n Hi! I am a human. [/INST] Hello there! Nice to meet you! I'm Meta AI, your friendly AI assistant \\n\\nLlama3 Instruct `overhauled `\\n\"), TextContentItem(type='text', text='Result 4:\\nDocument_id:num-0\\nContent: \\'m Meta AI, your friendly AI assistant<|eot_id|>\\n\\nThe tags are entirely different, and they are actually encoded differently than in\\nLlama2. Let\\'s walk through tokenizing an example with the Llama2 template and the\\nLlama3 template to understand how.\\n\\n.. note::\\n The Llama3 Base model uses a `different prompt template\\n `_ than Llama3 Instruct\\n because it has not yet been instruct tuned and the extra special tokens are untrained. If you\\n are running inference on the Llama3 Base model without fine-tuning we recommend the base\\n template for optimal performance. Generally, for instruct and chat data, we recommend using\\n Llama3 Instruct with its prompt template. The rest of this tutorial assumes you are using\\n Llama3 Instruct.\\n\\n.. _prompt_template_vs_special_tokens:\\n\\nTokenizing prompt templates & special tokens\\n--------------------------------------------\\n\\nLet\\'s say I have a sample of a single user-assistant turn accompanied with a system\\nprompt:\\n\\n.. code-block:: python\\n\\n sample = [\\n {\\n \"role\": \"system\",\\n \"\\n'), TextContentItem(type='text', text='Result 5:\\nDocument_id:num-3\\nContent: LoRA to Llama2 models\\n------------------------------\\n\\nWith torchtune, we can easily apply LoRA to Llama2 with a variety of different configurations.\\nLet\\'s take a look at how to construct Llama2 models in torchtune with and without LoRA.\\n\\n.. code-block:: python\\n\\n from torchtune.models.llama2 import llama2_7b, lora_llama2_7b\\n\\n # Build Llama2 without any LoRA layers\\n base_model = llama2_7b()\\n\\n # The default settings for lora_llama2_7b will match those for llama2_7b\\n # We just need to define which layers we want LoRA applied to.\\n # Within each self-attention, we can choose from [\"q_proj\", \"k_proj\", \"v_proj\", and \"output_proj\"].\\n # We can also set apply_lora_to_mlp=True or apply_lora_to_output=True to apply LoRA to other linear\\n # layers outside of the self-attention.\\n lora_model = lora_llama2_7b(lora_attn_modules=[\"q_proj\", \"v_proj\"])\\n\\n.. note::\\n\\n Calling :func:`lora_llama_2\\n'), TextContentItem(type='text', text='END of knowledge_search tool results.\\n')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name='insert_into_memory', description='Insert documents into memory', parameters={}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "L", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "lama3-8B uses grouped-query", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " attention instead of", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the standard multi-head attention.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Instead of the standard multi-head attention, what attention type does Llama3-8B use?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='knowledge_search', arguments={'query': 'Llama3-8B attention type'})]), ToolResponseMessage(role='tool', call_id='', tool_name='knowledge_search', content=[TextContentItem(type='text', text='knowledge_search tool found 5 chunks:\\nBEGIN of knowledge_search tool results.\\n'), TextContentItem(type='text', text='Result 1:\\nDocument_id:num-1\\nContent: 3 `_ is a new family of models released by Meta AI that improves upon the performance of the Llama2 family\\nof models across a `range of different benchmarks `_.\\nCurrently there are two different sizes of Meta Llama 3: 8B and 70B. In this tutorial we will focus on the 8B size model.\\nThere are a few main changes between Llama2-7B and Llama3-8B models:\\n\\n- Llama3-8B uses `grouped-query attention `_ instead of the standard multi-head attention from Llama2-7B\\n- Llama3-8B has a larger vocab size (128,256 instead of 32,000 from Llama2 models)\\n- Llama3-8B uses a different tokenizer than Llama2 models (`tiktoken `_ instead of `sentencepiece `_)\\n- Llama3-\\n'), TextContentItem(type='text', text=\"Result 2:\\nDocument_id:num-1\\nContent: instead of 32,000 from Llama2 models)\\n- Llama3-8B uses a different tokenizer than Llama2 models (`tiktoken `_ instead of `sentencepiece `_)\\n- Llama3-8B uses a larger intermediate dimension in its MLP layers than Llama2-7B\\n- Llama3-8B uses a higher base value to calculate theta in its `rotary positional embeddings `_\\n\\n|\\n\\nGetting access to Llama3-8B-Instruct\\n------------------------------------\\n\\nFor this tutorial, we will be using the instruction-tuned version of Llama3-8B. First, let's download the model from Hugging Face. You will need to follow the instructions\\non the `official Meta page `_ to gain access to the model.\\nNext, make sure you grab your Hugging Face token from `here `_.\\n\\n\\n.. code-block:: bash\\n\\n tune download meta-llama/Meta-Llama-3\\n\"), TextContentItem(type='text', text=\"Result 3:\\nDocument_id:num-0\\nContent: :`download Llama3 Instruct weights `\\n\\n\\nTemplate changes from Llama2 to Llama3\\n--------------------------------------\\n\\nThe Llama2 chat model requires a specific template when prompting the pre-trained\\nmodel. Since the chat model was pretrained with this prompt template, if you want to run\\ninference on the model, you'll need to use the same template for optimal performance\\non chat data. Otherwise, the model will just perform standard text completion, which\\nmay or may not align with your intended use case.\\n\\nFrom the `official Llama2 prompt\\ntemplate guide `_\\nfor the Llama2 chat model, we can see that special tags are added:\\n\\n.. code-block:: text\\n\\n [INST] <>\\n You are a helpful, respectful, and honest assistant.\\n <>\\n\\n Hi! I am a human. [/INST] Hello there! Nice to meet you! I'm Meta AI, your friendly AI assistant \\n\\nLlama3 Instruct `overhauled `\\n\"), TextContentItem(type='text', text='Result 4:\\nDocument_id:num-0\\nContent: \\'m Meta AI, your friendly AI assistant<|eot_id|>\\n\\nThe tags are entirely different, and they are actually encoded differently than in\\nLlama2. Let\\'s walk through tokenizing an example with the Llama2 template and the\\nLlama3 template to understand how.\\n\\n.. note::\\n The Llama3 Base model uses a `different prompt template\\n `_ than Llama3 Instruct\\n because it has not yet been instruct tuned and the extra special tokens are untrained. If you\\n are running inference on the Llama3 Base model without fine-tuning we recommend the base\\n template for optimal performance. Generally, for instruct and chat data, we recommend using\\n Llama3 Instruct with its prompt template. The rest of this tutorial assumes you are using\\n Llama3 Instruct.\\n\\n.. _prompt_template_vs_special_tokens:\\n\\nTokenizing prompt templates & special tokens\\n--------------------------------------------\\n\\nLet\\'s say I have a sample of a single user-assistant turn accompanied with a system\\nprompt:\\n\\n.. code-block:: python\\n\\n sample = [\\n {\\n \"role\": \"system\",\\n \"\\n'), TextContentItem(type='text', text='Result 5:\\nDocument_id:num-3\\nContent: LoRA to Llama2 models\\n------------------------------\\n\\nWith torchtune, we can easily apply LoRA to Llama2 with a variety of different configurations.\\nLet\\'s take a look at how to construct Llama2 models in torchtune with and without LoRA.\\n\\n.. code-block:: python\\n\\n from torchtune.models.llama2 import llama2_7b, lora_llama2_7b\\n\\n # Build Llama2 without any LoRA layers\\n base_model = llama2_7b()\\n\\n # The default settings for lora_llama2_7b will match those for llama2_7b\\n # We just need to define which layers we want LoRA applied to.\\n # Within each self-attention, we can choose from [\"q_proj\", \"k_proj\", \"v_proj\", and \"output_proj\"].\\n # We can also set apply_lora_to_mlp=True or apply_lora_to_output=True to apply LoRA to other linear\\n # layers outside of the self-attention.\\n lora_model = lora_llama2_7b(lora_attn_modules=[\"q_proj\", \"v_proj\"])\\n\\n.. note::\\n\\n Calling :func:`lora_llama_2\\n'), TextContentItem(type='text', text='END of knowledge_search tool results.\\n')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "L", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "lama3-8B uses grouped-query", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " attention instead of", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the standard multi-head attention.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Instead of the standard multi-head attention, what attention type does Llama3-8B use?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='insert_into_memory', description='Insert documents into memory', parameters={}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[k", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nowledge_search(query=\"Llama3-8", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "B attention type\")]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "Llama3-8B attention type" + }, + "call_id": "1a4d353b-697b-433f-94b8-d01299cd1003", + "tool_name": "knowledge_search" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Instead of the standard multi-head attention, what attention type does Llama3-8B use?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[k", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nowledge_search(query=\"Llama3-8B attention", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " type\")]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "Llama3-8B attention type" + }, + "call_id": "95048731-e3a9-42ea-a6c1-04147bb303b4", + "tool_name": "knowledge_search" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Search the web and tell me who the current CEO of Meta is.', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'query': 'current CEO of Meta'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content='{\"query\": \"current CEO of Meta\", \"top_k\": [{\"title\": \"Executives - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer Joel Kaplan, Chief Global Affairs Officer Susan Li, Chief Financial Officer Javier Olivan, Chief Operating Officer Chris Cox, Chief Product Officer Andrew \\\\u2018Boz\\\\u2019 Bosworth, Chief Technology Officer Jennifer Newstead, Chief Legal Officer Dave Wehner, Chief Strategy Officer Will Cathcart, Head of WhatsApp Naomi Gleit, Head of Product John Hegeman, Chief Revenue Officer Adam Mosseri, Head of Instagram Erin Egan, Chief Privacy Officer, Policy Michel Protti, Chief Privacy Officer, Product Alex Schultz, Chief Marketing Officer and VP of Analytics Tom Alison, Head of Facebook Nicola Mendelsohn, Head of Global Business Group Ahmad Al-Dahle, VP and Head of GenAI at Meta Joelle Pineau, Vice President of AI Research and Head of FAIR at Meta\", \"score\": 0.8190992, \"raw_content\": null}, {\"title\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/mark-zuckerberg/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer | Meta Meta Quest Ray-Ban Meta Meta Horizon Meta AI Meta Verified Meta Pay Meta Horizon Workrooms Meta and you Learn about our community Shop Meta Meta Quest Meta Portal Meta Horizon Mark Zuckerberg is the founder, chairman and CEO of Meta, which he originally founded as Facebook in 2004. In October 2021, Facebook rebranded to Meta to reflect all of its products and services across its family of apps and a focus on developing social experiences for the metaverse \\\\u2014 moving beyond 2D screens toward immersive experiences like augmented and virtual reality to help build the next evolution in social technology. Shop Ray-Ban Meta glassesRay-Ban StoriesPrivacy informationSupported countries \\\\u00a9 2025 Meta\", \"score\": 0.79099923, \"raw_content\": null}, {\"title\": \"Meet the Executive CSuite Team of Meta (Facebook) [2025]\", \"url\": \"https://digitaldefynd.com/IQ/meet-the-executive-csuite-team-of-meta-facebook/\", \"content\": \"Harvard University Executive Programs Free Harvard University Courses As a chief financial officer of Meta, Susan Li oversees the firm\\\\u2019s finance and facilities team to keep track of the company\\\\u2019s overall financial health. The chief operating officer of Meta, Javier Olivan, oversees the firm\\\\u2019s business team, infrastructure, and other products. Andrew Bosworth, called Boz, serves as chief technology officer at Meta and is responsible for leading the firm\\\\u2019s AR/VR organization, Reality Labs. Andrew has also served as engineering director to oversee events, mobile monetization, and feed ads and as VP of ads and business platforms to lead engineering, design, analytics, and product teams. Meta\\\\u2019s c-suite team comprises experienced and diverse executives, having extensive experience in technology, finance, legal, and all major industries.\", \"score\": 0.7602419, \"raw_content\": null}, {\"title\": \"The 11 People Running Meta\\'s $1 Trillion Social Media and ... - Observer\", \"url\": \"https://observer.com/2024/01/meta-facebook-top-executives/\", \"content\": \"He returned after just a year, saying Facebook is \\\\u201cthe best place for me to roll up my sleeves and dig in to help.\\\\u201d\\\\u00a0As Meta\\\\u2019s chief product officer, Cox is currently focusing on Meta\\\\u2019s A.I. initiatives, most recently undertaking Meta\\\\u2019s Fundamental AI Research (FAIR) team, led by Yann LeCun and Joelle Pineau. Cathcart started at Meta in 2010 as vice president of product management, notably leading the ads initiative of Facebook\\\\u2019s News Feed product. Filed Under: Business, Social Media, Media, Technology, Big Tech, Will Cathcart, Dave Wehner, Tom Alison, Erin Egan, Andrew Mccollum, Javier Olivan, Andrew Bosworth, Susan Li, Dustin Moskovitz, Chris Cox, Adam Mosseri, Yann LeCun, Eduardo Saverin, Chris Hughes, Leadership, Mark Zuckerberg, Facebook, Instagram, Meta\", \"score\": 0.7591723, \"raw_content\": null}, {\"title\": \"Mark Zuckerberg - Forbes\", \"url\": \"https://www.forbes.com/profile/mark-zuckerberg/\", \"content\": \"Meta CEO Mark Zuckerberg \\\\u201cloved\\\\u201d an image on Facebook known as \\\\\"Challah Horse\\\\\" that happens to be AI-generated, highlighting the amount of AI spam on the platform. ### Meta Donates $1 Million To Trump\\\\u2019s Inaugural Fund Weeks After Mark Zuckerberg Met President Elect Meta has donated $1 million to President-elect Donald Trump\\\\u2019s inaugural fund, the company confirmed to various news outlets on Wednesday, a move that comes just weeks after its CEO Mark Zuckerberg met with Trump at his Mar-a-Lago residence in an apparent bid to mend years of strained ties. ### Meta Donates $1 Million To Trump\\\\u2019s Inaugural Fund Weeks After Mark Zuckerberg Met President-Elect Read the full profile on Forbes: https://www.forbes.com/sites/kerryadolan/2023/09/26/mark-gets-meta-zuckerberg-talks-ai-and-that-musk-mma-fight-thats-never-going-to-happen/?sh=671046e73037\", \"score\": 0.6410185, \"raw_content\": null}]}')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Search the web for information', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " current CEO of Meta is Mark Zuckerberg.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Search the web and tell me who the current CEO of Meta is.', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Search the web for information', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "started" + }, + "tool_call": "", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "brave_search.call(query=\"current CEO of Meta\")", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "current CEO of Meta" + }, + "call_id": "7edab4db-ac58-4935-9722-0fae4e3ea80a", + "tool_name": { + "__enum__": "BuiltinTool", + "value": "brave_search" + } + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='get_boiling_point', arguments={'liquid_name': 'polyjuice', 'celcius': True})]), ToolResponseMessage(role='tool', call_id='', tool_name='get_boiling_point', content='-100')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice='get_boiling_point', tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " boiling point of polyjuice is -100\u00b0C.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='get_boiling_point', arguments={'liquid_name': 'polyjuice', 'celcius': True})]), ToolResponseMessage(role='tool', call_id='', tool_name='get_boiling_point', content='-100')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)}), ToolDefinition(tool_name=, description='Search the web for information', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " boiling point of polyjuice is -100 degrees Celsius.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='get_boiling_point', arguments={'liquid_name': 'polyjuice', 'celcius': True})]), ToolResponseMessage(role='tool', call_id='', tool_name='get_boiling_point', content='-100')])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " boiling point of polyjuice is -100\u00b0C.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice='get_boiling_point', tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "get_boiling_point(liquid_name='polyjuice", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "', celcius=True)]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "celcius": true, + "liquid_name": "polyjuice" + }, + "call_id": "004c78cd-faf7-407d-ba1e-3979baf32bd3", + "tool_name": "get_boiling_point" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)}), ToolDefinition(tool_name=, description='Search the web for information', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "get_boiling_point(liquid_name", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "='polyjuice', celcius=True)]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "celcius": true, + "liquid_name": "polyjuice" + }, + "call_id": "a974f1f5-8dc0-439a-9fa3-7ebdebfdeb3f", + "tool_name": "get_boiling_point" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "Poly", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "juice Potion is a", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " fictional substance from the Harry Potter book series by J.K. Rowling", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": ". As it's not a", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " real-world substance, it doesn't have a boiling point or any", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " other physical properties that can be measured.\n\nIn the Harry Potter", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " universe, Polyjuice Potion is a magical brew that", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " allows the drinker to assume the form and", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " appearance of another person. Its properties and", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " behavior are", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " governed by the rules of magic in the", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " wizarding world, rather", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " than the laws", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " of physics and chemistry that apply to real-world", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " substances.\n\nSo, I'm afraid there's no boiling point to report for", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Polyjuice Potion! Would you like to know more about", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " the Harry Potter series or is there something else I can help", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " you with?", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='What is the boiling point of polyjuice?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name='get_boiling_point', description='Returns the boiling point of a liquid in Celcius or Fahrenheit', parameters={'liquid_name': ToolParamDefinition(param_type='string', description='The name of the liquid', required=True, default=None), 'celcius': ToolParamDefinition(param_type='bool', description='Whether to return the boiling point in Celcius', required=False, default=True)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "get_boiling_point(liquid_name='polyjuice', celcius=True)]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "celcius": true, + "liquid_name": "polyjuice" + }, + "call_id": "9e8b3842-e12c-4cda-a78c-e0b96290a94f", + "tool_name": "get_boiling_point" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Write code and execute it to find the answer for: What is the 100th prime number?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name=, arguments={'code': 'def is_prime(n):\\n if n <= 1:\\n return False\\n if n <= 3:\\n return True\\n if n % 2 == 0 or n % 3 == 0:\\n return False\\n i = 5\\n while i * i <= n:\\n if n % i == 0 or n % (i + 2) == 0:\\n return False\\n i += 6\\n return True\\n\\ndef nth_prime(n):\\n count = 0\\n num = 2\\n while True:\\n if is_prime(num):\\n count += 1\\n if count == n:\\n return num\\n num += 1\\n\\nprint(nth_prime(100))'})]), ToolResponseMessage(role='tool', call_id='', tool_name=, content=\"error\\n[stdout]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stdout]\\n[stderr]\\n[Errno 2] No such file or directory: 'bwrap'\\n[/stderr]\")])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " 100th prime number is ", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "541.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='Write code and execute it to find the answer for: What is the 100th prime number?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "started" + }, + "tool_call": "", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "def is_prime(n):\n if n <= 1:\n return False", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "\n if n <= 3:\n return True", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "\n if n % 2 == 0", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " or n % 3", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " == 0:\n return False\n i", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " = 5\n while i * i <= n:\n if n", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " % i == 0 or n % (i + 2) ==", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " 0:\n return False\n i +=", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " 6\n return True\n\ndef nth_prime(n):\n count =", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " 0\n num = 2\n ", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " while True:\n if is_prime(num):\n count += 1\n", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": " if count == n:\n return num\n num += 1", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "in_progress" + }, + "tool_call": "\n\nprint(nth_prime(100))", + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "code": "def is_prime(n):\n if n <= 1:\n return False\n if n <= 3:\n return True\n if n % 2 == 0 or n % 3 == 0:\n return False\n i = 5\n while i * i <= n:\n if n % i == 0 or n % (i + 2) == 0:\n return False\n i += 6\n return True\n\ndef nth_prime(n):\n count = 0\n num = 2\n while True:\n if is_prime(num):\n count += 1\n if count == n:\n return num\n num += 1\n\nprint(nth_prime(100))" + }, + "call_id": "152c5638-b06c-4b7c-8e66-3e71d47a9083", + "tool_name": { + "__enum__": "BuiltinTool", + "value": "code_interpreter" + } + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='when was Perplexity the company founded?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='knowledge_search', arguments={'query': 'Perplexity the company founding date'})]), ToolResponseMessage(role='tool', call_id='', tool_name='knowledge_search', content=[TextContentItem(type='text', text='knowledge_search tool found 3 chunks:\\nBEGIN of knowledge_search tool results.\\n'), TextContentItem(type='text', text='Result 1:\\nDocument_id:perpl\\nContent: Perplexity the company was founded in 2022 by Aravind Srinivas, Andy Konwinski, Denis Yarats and Johnny Ho, engineers with backgrounds in back-end systems, artificial intelligence (AI) and machine learning:\\n\\n Srinivas, the CEO, worked at OpenAI as an AI researcher.\\n Konwinski was among the founding team at Databricks.\\n Yarats, the CTO, was an AI research scientist at Meta.\\n Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\\n'), TextContentItem(type='text', text='Result 2:\\nDocument_id:perpl\\nContent: Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\\n'), TextContentItem(type='text', text='Result 3:\\nDocument_id:nba_w\\nContent: The NBA was created on August 3, 1949, with the merger of the Basketball Association of America (BAA) and the National Basketball League (NBL).\\n'), TextContentItem(type='text', text='END of knowledge_search tool results.\\n')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "Per", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "plexity the company", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " was founded in 2022.", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='when was Perplexity the company founded?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[k", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nowledge_search(query=\"Perplexity the company", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " founding date\")]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "Perplexity the company founding date" + }, + "call_id": "bd92ebc5-f219-4604-bb3e-6ba58756f291", + "tool_name": "knowledge_search" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='when was the nba created?', context=None), CompletionMessage(role='assistant', content='', stop_reason=, tool_calls=[ToolCall(call_id='', tool_name='knowledge_search', arguments={'query': 'NBA creation date'})]), ToolResponseMessage(role='tool', call_id='', tool_name='knowledge_search', content=[TextContentItem(type='text', text='knowledge_search tool found 3 chunks:\\nBEGIN of knowledge_search tool results.\\n'), TextContentItem(type='text', text='Result 1:\\nDocument_id:nba_w\\nContent: The NBA was created on August 3, 1949, with the merger of the Basketball Association of America (BAA) and the National Basketball League (NBL).\\n'), TextContentItem(type='text', text='Result 2:\\nDocument_id:perpl\\nContent: Perplexity the company was founded in 2022 by Aravind Srinivas, Andy Konwinski, Denis Yarats and Johnny Ho, engineers with backgrounds in back-end systems, artificial intelligence (AI) and machine learning:\\n\\n Srinivas, the CEO, worked at OpenAI as an AI researcher.\\n Konwinski was among the founding team at Databricks.\\n Yarats, the CTO, was an AI research scientist at Meta.\\n Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\\n'), TextContentItem(type='text', text='Result 3:\\nDocument_id:perpl\\nContent: Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\\n'), TextContentItem(type='text', text='END of knowledge_search tool results.\\n')])])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=, system_message_behavior=)), ('tool_prompt_format', ), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "The", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " NBA was created on August 3, 194", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "9, with the merger of the Basketball", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Association of America (BAA) and the National", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " Basketball League (NBL).", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" + }, + "('meta-llama/Llama-3.3-70B-Instruct', [SystemMessage(role='system', content='You are a helpful assistant'), UserMessage(role='user', content='when was the nba created?', context=None)])_[('response_format', None), ('sampling_params', SamplingParams(strategy=TopPSamplingStrategy(type='top_p', temperature=0.0001, top_p=0.9), max_tokens=0, repetition_penalty=1.0)), ('stream', True), ('tool_config', ToolConfig(tool_choice=, tool_prompt_format=None, system_message_behavior=)), ('tool_prompt_format', None), ('tools', [ToolDefinition(tool_name=, description='Execute code', parameters={'code': ToolParamDefinition(param_type='string', description='The code to execute', required=True, default=None)}), ToolDefinition(tool_name='knowledge_search', description='Search for information in a database.', parameters={'query': ToolParamDefinition(param_type='string', description='The query to search for. Can be a natural language sentence or keywords.', required=True, default=None)})])]": { + "chunks": [ + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "start" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "[k", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "nowledge_search(query=\"NBA", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": " creation date\")]", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": null + }, + "metrics": null + }, + { + "event": { + "delta": { + "parse_status": { + "__enum__": "ToolCallParseStatus", + "value": "succeeded" + }, + "tool_call": { + "arguments": { + "query": "NBA creation date" + }, + "call_id": "d1fecd80-0ad5-4d1e-8719-ece63aafa913", + "tool_name": "knowledge_search" + }, + "type": "tool_call" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "progress" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + }, + { + "event": { + "delta": { + "text": "", + "type": "text" + }, + "event_type": { + "__enum__": "ChatCompletionResponseEventType", + "value": "complete" + }, + "logprobs": null, + "stop_reason": { + "__enum__": "StopReason", + "value": "end_of_turn" + } + }, + "metrics": null + } + ], + "type": "generator" } } diff --git a/tests/client-sdk/fixtures/recorded_responses/chat_completion.pickle b/tests/client-sdk/fixtures/recorded_responses/chat_completion.pickle index 13803a2e0c77e083b58563cc29a47c7331282a1b..a14f2880a5289d4c6624d83d6a0ce43f5527aa01 100644 GIT binary patch literal 292724 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', 'code': 'def is_prime(n):\\n if n <= 1:\\n return False\\n if n <= 3:\\n return True\\n if n % 2 == 0 or n % 3 == 0:\\n return False\\n i = 5\\n while i * i <= n:\\n if n % i == 0 or n % (i + 2) == 0:\\n return False\\n i += 6\\n return True\\n\\ndef nth_prime(n):\\n count = 0\\n num = 2\\n while True:\\n if is_prime(num):\\n count += 1\\n if count == n:\\n return num\\n num += 1\\n\\nprint(nth_prime(100))'}), ('tool_name', 'code_interpreter')]": { + "type": "value", + "value": { + "content": "error\n[stdout]\n[Errno 2] No such file or directory: 'bwrap'\n[/stdout]\n[stderr]\n[Errno 2] No such file or directory: 'bwrap'\n[/stderr]", + "error_code": null, + "error_message": null, + "metadata": null + } + }, "()_[('kwargs', {'session_id': '', 'code': 'import pandas as pd\\n# Load data\\ndf = pd.read_csv(\"\")\\n# Rows\\nprint(\"Number of rows and columns in the data:\", df.shape)\\n# Columns\\nprint(\"Columns of the data are:\", len(df.columns))\\n# Column names\\nprint(\"Columns of the data are:\", df.columns)\\n# Column dtypes\\nprint(\"Datatype of the columns are:\", df.dtypes)'}), ('tool_name', 'code_interpreter')]": { "type": "value", "value": { @@ -26,6 +35,24 @@ "metadata": null } }, + "()_[('kwargs', {'session_id': '', 'code': 'import pandas as pd\\n# Load data\\ndf = pd.read_csv(\"\")\\n# Rows\\nprint(\"Number of rows and columns in the data:\", df.shape)\\n# Columns\\nprint(\"Columns of the data are:\", len(df.columns))\\n# Column names\\nprint(\"Columns of the data are:\", df.columns)\\n# Column dtypes\\nprint(\"Datatype of the columns are:\", df.dtypes)\\n# Sample of data\\nprint(\"Data sample from file:\")\\nprint(df.head())'}), ('tool_name', 'code_interpreter')]": { + "type": "value", + "value": { + "content": "error\n[stdout]\n[Errno 2] No such file or directory: 'bwrap'\n[/stdout]\n[stderr]\n[Errno 2] No such file or directory: 'bwrap'\n[/stderr]", + "error_code": null, + "error_message": null, + "metadata": null + } + }, + "()_[('kwargs', {'session_id': '', 'code': 'import pandas as pd\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Print the first few rows of the dataframe\\nprint(df.head())\\n\\n# Print information about the dataframe\\nprint(df.info())\\n\\n# Print summary statistics of the dataframe\\nprint(df.describe())'}), ('tool_name', 'code_interpreter')]": { + "type": "value", + "value": { + "content": "error\n[stdout]\n[Errno 2] No such file or directory: 'bwrap'\n[/stdout]\n[stderr]\n[Errno 2] No such file or directory: 'bwrap'\n[/stderr]", + "error_code": null, + "error_message": null, + "metadata": null + } + }, "()_[('kwargs', {'session_id': '', 'code': 'import pandas as pd\\ndf = pd.read_csv(\"\")\\nprint(df.head())'}), ('tool_name', 'code_interpreter')]": { "type": "value", "value": { @@ -44,6 +71,15 @@ "metadata": null } }, + "()_[('kwargs', {'session_id': '', 'code': 'import pandas as pd\\nimport matplotlib.pyplot as plt\\n\\n# Load the CSV file\\ndf = pd.read_csv(\"\")\\n\\n# Convert the \\'Year\\' column to datetime\\ndf[\\'Year\\'] = pd.to_datetime(df[\\'Year\\'], format=\\'%Y\\')\\n\\n# Group by \\'Year\\' and calculate the average inflation\\ndf_avg_inflation = df.groupby(\\'Year\\')[\\'Inflation\\'].mean().reset_index()\\n\\n# Plot the average yearly inflation as a time series\\nplt.figure(figsize=(10,6))\\nplt.plot(df_avg_inflation[\\'Year\\'], df_avg_inflation[\\'Inflation\\'], marker=\\'o\\')\\nplt.title(\\'Average Yearly Inflation\\')\\nplt.xlabel(\\'Year\\')\\nplt.ylabel(\\'Inflation\\')\\nplt.grid(True)\\nplt.show()'}), ('tool_name', 'code_interpreter')]": { + "type": "value", + "value": { + "content": "error\n[stdout]\n[Errno 2] No such file or directory: 'bwrap'\n[/stdout]\n[stderr]\n[Errno 2] No such file or directory: 'bwrap'\n[/stderr]", + "error_code": null, + "error_message": null, + "metadata": null + } + }, "()_[('kwargs', {'session_id': '', 'query': 'How to use LoRA', 'vector_db_ids': ['vector_db_']}), ('tool_name', 'knowledge_search')]": { "type": "value", "value": { @@ -208,6 +244,42 @@ } } }, + "()_[('kwargs', {'session_id': '', 'query': 'Perplexity the company founding date', 'vector_db_ids': ['test-vector-db-']}), ('tool_name', 'knowledge_search')]": { + "type": "value", + "value": { + "content": [ + { + "text": "knowledge_search tool found 3 chunks:\nBEGIN of knowledge_search tool results.\n", + "type": "text" + }, + { + "text": "Result 1:\nDocument_id:perpl\nContent: Perplexity the company was founded in 2022 by Aravind Srinivas, Andy Konwinski, Denis Yarats and Johnny Ho, engineers with backgrounds in back-end systems, artificial intelligence (AI) and machine learning:\n\n Srinivas, the CEO, worked at OpenAI as an AI researcher.\n Konwinski was among the founding team at Databricks.\n Yarats, the CTO, was an AI research scientist at Meta.\n Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\n", + "type": "text" + }, + { + "text": "Result 2:\nDocument_id:perpl\nContent: Ho, the CSO, worked as an engineer at Quora, then as a quantitative trader on Wall Street.[5]\n", + "type": "text" + }, + { + "text": "Result 3:\nDocument_id:nba_w\nContent: The NBA was created on August 3, 1949, with the merger of the Basketball Association of America (BAA) and the National Basketball League (NBL).\n", + "type": "text" + }, + { + "text": "END of knowledge_search tool results.\n", + "type": "text" + } + ], + "error_code": null, + "error_message": null, + "metadata": { + "document_ids": [ + "perplexity_wiki", + "perplexity_wiki", + "nba_wiki" + ] + } + } + }, "()_[('kwargs', {'session_id': '', 'query': 'Torchtune documentation', 'vector_db_ids': ['vector_db_']}), ('tool_name', 'knowledge_search')]": { "type": "value", "value": { @@ -257,7 +329,7 @@ "()_[('kwargs', {'session_id': '', 'query': 'current CEO of Meta'}), ('tool_name', 'web_search')]": { "type": "value", "value": { - "content": "{\"query\": \"current CEO of Meta\", \"top_k\": [{\"title\": \"Executives - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer Joel Kaplan, Chief Global Affairs Officer Susan Li, Chief Financial Officer Javier Olivan, Chief Operating Officer Chris Cox, Chief Product Officer Andrew \\u2018Boz\\u2019 Bosworth, Chief Technology Officer Jennifer Newstead, Chief Legal Officer Dave Wehner, Chief Strategy Officer Will Cathcart, Head of WhatsApp Naomi Gleit, Head of Product John Hegeman, Chief Revenue Officer Adam Mosseri, Head of Instagram Erin Egan, Chief Privacy Officer, Policy Michel Protti, Chief Privacy Officer, Product Alex Schultz, Chief Marketing Officer and VP of Analytics Tom Alison, Head of Facebook Nicola Mendelsohn, Head of Global Business Group Ahmad Al-Dahle, VP and Head of GenAI at Meta Joelle Pineau, Vice President of AI Research and Head of FAIR at Meta\", \"score\": 0.8190992, \"raw_content\": null}, {\"title\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/mark-zuckerberg/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer | Meta Meta Quest Ray-Ban Meta Meta Horizon Meta AI Meta Verified Meta Pay Meta Horizon Workrooms Meta and you Learn about our community Shop Meta Meta Quest Meta Portal Meta Horizon Mark Zuckerberg is the founder, chairman and CEO of Meta, which he originally founded as Facebook in 2004. In October 2021, Facebook rebranded to Meta to reflect all of its products and services across its family of apps and a focus on developing social experiences for the metaverse \\u2014 moving beyond 2D screens toward immersive experiences like augmented and virtual reality to help build the next evolution in social technology. Shop Ray-Ban Meta glassesRay-Ban StoriesPrivacy informationSupported countries \\u00a9 2025 Meta\", \"score\": 0.79099923, \"raw_content\": null}, {\"title\": \"Zuckerberg's political pivot targets Apple, puts Meta staffers on edge\", \"url\": \"https://www.cnbc.com/2025/02/14/zuckerbergs-rightward-policy-shift-hits-meta-staffers-targets-apple.html\", \"content\": \"Meta CEO Mark Zuckerberg's actions to curry favor with the president have rattled employees, but people familiar with his efforts say there's a clear strategy.\", \"score\": 0.77179235, \"raw_content\": null}, {\"title\": \"Meet the Executive CSuite Team of Meta (Facebook) [2025]\", \"url\": \"https://digitaldefynd.com/IQ/meet-the-executive-csuite-team-of-meta-facebook/\", \"content\": \"Harvard University Executive Programs Free Harvard University Courses As a chief financial officer of Meta, Susan Li oversees the firm\\u2019s finance and facilities team to keep track of the company\\u2019s overall financial health. The chief operating officer of Meta, Javier Olivan, oversees the firm\\u2019s business team, infrastructure, and other products. Andrew Bosworth, called Boz, serves as chief technology officer at Meta and is responsible for leading the firm\\u2019s AR/VR organization, Reality Labs. Andrew has also served as engineering director to oversee events, mobile monetization, and feed ads and as VP of ads and business platforms to lead engineering, design, analytics, and product teams. Meta\\u2019s c-suite team comprises experienced and diverse executives, having extensive experience in technology, finance, legal, and all major industries.\", \"score\": 0.7602419, \"raw_content\": null}, {\"title\": \"Meta to spend up to $65 billion this year to power AI goals, Zuckerberg ...\", \"url\": \"https://www.reuters.com/technology/meta-invest-up-65-bln-capital-expenditure-this-year-2025-01-24/\", \"content\": \"Meta Platforms plans to spend as much as $65 billion this year to expand its AI infrastructure, CEO Mark Zuckerberg said on Friday, aiming to bolster the company's position against rivals OpenAI\", \"score\": 0.73914057, \"raw_content\": null}]}", + "content": "{\"query\": \"current CEO of Meta\", \"top_k\": [{\"title\": \"Executives - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer Joel Kaplan, Chief Global Affairs Officer Susan Li, Chief Financial Officer Javier Olivan, Chief Operating Officer Chris Cox, Chief Product Officer Andrew \\u2018Boz\\u2019 Bosworth, Chief Technology Officer Jennifer Newstead, Chief Legal Officer Dave Wehner, Chief Strategy Officer Will Cathcart, Head of WhatsApp Naomi Gleit, Head of Product John Hegeman, Chief Revenue Officer Adam Mosseri, Head of Instagram Erin Egan, Chief Privacy Officer, Policy Michel Protti, Chief Privacy Officer, Product Alex Schultz, Chief Marketing Officer and VP of Analytics Tom Alison, Head of Facebook Nicola Mendelsohn, Head of Global Business Group Ahmad Al-Dahle, VP and Head of GenAI at Meta Joelle Pineau, Vice President of AI Research and Head of FAIR at Meta\", \"score\": 0.8190992, \"raw_content\": null}, {\"title\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer - Meta\", \"url\": \"https://about.meta.com/media-gallery/executives/mark-zuckerberg/\", \"content\": \"Mark Zuckerberg, Founder, Chairman and Chief Executive Officer | Meta Meta Quest Ray-Ban Meta Meta Horizon Meta AI Meta Verified Meta Pay Meta Horizon Workrooms Meta and you Learn about our community Shop Meta Meta Quest Meta Portal Meta Horizon Mark Zuckerberg is the founder, chairman and CEO of Meta, which he originally founded as Facebook in 2004. In October 2021, Facebook rebranded to Meta to reflect all of its products and services across its family of apps and a focus on developing social experiences for the metaverse \\u2014 moving beyond 2D screens toward immersive experiences like augmented and virtual reality to help build the next evolution in social technology. Shop Ray-Ban Meta glassesRay-Ban StoriesPrivacy informationSupported countries \\u00a9 2025 Meta\", \"score\": 0.79099923, \"raw_content\": null}, {\"title\": \"Meet the Executive CSuite Team of Meta (Facebook) [2025]\", \"url\": \"https://digitaldefynd.com/IQ/meet-the-executive-csuite-team-of-meta-facebook/\", \"content\": \"Harvard University Executive Programs Free Harvard University Courses As a chief financial officer of Meta, Susan Li oversees the firm\\u2019s finance and facilities team to keep track of the company\\u2019s overall financial health. The chief operating officer of Meta, Javier Olivan, oversees the firm\\u2019s business team, infrastructure, and other products. Andrew Bosworth, called Boz, serves as chief technology officer at Meta and is responsible for leading the firm\\u2019s AR/VR organization, Reality Labs. Andrew has also served as engineering director to oversee events, mobile monetization, and feed ads and as VP of ads and business platforms to lead engineering, design, analytics, and product teams. Meta\\u2019s c-suite team comprises experienced and diverse executives, having extensive experience in technology, finance, legal, and all major industries.\", \"score\": 0.7602419, \"raw_content\": null}, {\"title\": \"The 11 People Running Meta's $1 Trillion Social Media and ... - Observer\", \"url\": \"https://observer.com/2024/01/meta-facebook-top-executives/\", \"content\": \"He returned after just a year, saying Facebook is \\u201cthe best place for me to roll up my sleeves and dig in to help.\\u201d\\u00a0As Meta\\u2019s chief product officer, Cox is currently focusing on Meta\\u2019s A.I. initiatives, most recently undertaking Meta\\u2019s Fundamental AI Research (FAIR) team, led by Yann LeCun and Joelle Pineau. Cathcart started at Meta in 2010 as vice president of product management, notably leading the ads initiative of Facebook\\u2019s News Feed product. Filed Under: Business, Social Media, Media, Technology, Big Tech, Will Cathcart, Dave Wehner, Tom Alison, Erin Egan, Andrew Mccollum, Javier Olivan, Andrew Bosworth, Susan Li, Dustin Moskovitz, Chris Cox, Adam Mosseri, Yann LeCun, Eduardo Saverin, Chris Hughes, Leadership, Mark Zuckerberg, Facebook, Instagram, Meta\", \"score\": 0.7591723, \"raw_content\": null}, {\"title\": \"Mark Zuckerberg - Forbes\", \"url\": \"https://www.forbes.com/profile/mark-zuckerberg/\", \"content\": \"Meta CEO Mark Zuckerberg \\u201cloved\\u201d an image on Facebook known as \\\"Challah Horse\\\" that happens to be AI-generated, highlighting the amount of AI spam on the platform. ### Meta Donates $1 Million To Trump\\u2019s Inaugural Fund Weeks After Mark Zuckerberg Met President Elect Meta has donated $1 million to President-elect Donald Trump\\u2019s inaugural fund, the company confirmed to various news outlets on Wednesday, a move that comes just weeks after its CEO Mark Zuckerberg met with Trump at his Mar-a-Lago residence in an apparent bid to mend years of strained ties. ### Meta Donates $1 Million To Trump\\u2019s Inaugural Fund Weeks After Mark Zuckerberg Met President-Elect Read the full profile on Forbes: https://www.forbes.com/sites/kerryadolan/2023/09/26/mark-gets-meta-zuckerberg-talks-ai-and-that-musk-mma-fight-thats-never-going-to-happen/?sh=671046e73037\", \"score\": 0.6410185, \"raw_content\": null}]}", "error_code": null, "error_message": null, "metadata": null diff --git a/tests/client-sdk/fixtures/recorded_responses/invoke_tool.pickle b/tests/client-sdk/fixtures/recorded_responses/invoke_tool.pickle index 98bc17a841cd1e39d282a779287ad05865a3781c..10ba62ad6ba487eabfff79360df194b5378e8917 100644 GIT binary patch delta 5254 zcmd5=ZD?E98IJ9EcHPjpNou=})1KPdWM}%c)1)!U7RRv{cedlj&f?56?vd`1&b9Bo zN4+0%l#wV2O&N=}%()t4tozf^Lf5i2h>kJFps;_1>`w<}r7*TJ2BWk;Qdq~x_MEE^ z%dw@dFh(&Jy7!#(emw8uuOfj4KEV4gB=1f)7RAG==5m%{(6-A|l8VU&pgCsys$1G;1 zndz>z?e>Y%LohD%&|rA*U??03>5vsj&^U_;u@bOFD&Q_QbZ1X7Vlvw?4W2wt5(zcVV9KbtAl1hm z(`1INWuP{LvHG!{q7&OKlA`na9luyB@?h?b#*m}jKHIpf(StZ z;Jfq9Pq^0}=**T6aXK<4}+*WVlKH{jwM+!#46~8lt3!5yjJ`$SS9obitv@{s8l~ON%sRqX}xogal0Rd(NQbrKpi1abYA>QwQTAEKN;S zI2JKvR*0-)Ys|(M16C`@0)>L*6jcIr_JD;DIPVq0RnMq_`k?M+9abZ;gMZ=`XPOPY4(EmIt z*&^3Bh9xlO!F&eE;o+EYkm@DkdZhH|JWRN4r>x;n=st>DD(DhI7MU5U2#p%@-Wdvo zkAwyfg>>)%+_bF#kfH(oVkO@KD77nAfT{spWdVtOKzFQ_fUe`NlI-=~Spft0h#5!< zkQrB3ph*1Cmo0wm(BVk<;30N+C_Hp{V~QR+7zsz7dJ-wxQ8?B9USof5yPZj~e6Bf7 zHHYPS7jGH3n!l9q=WY1NwSY1+|n7xo<9Z6+(~ysi~frFZPXZueW}~_iEks8UHWp$#+S3 z2)@jP{SQ8qYc?D`5YBVz-U$CXv=yL>z_0UifR|wbp&L z*XIwm0uNu|+h@D$ZhNW04fb`pci7It!O zx%Rm_>k_3WO2-*5(c@A+w?jdfBRhd5Rk8B!4`(xbZ*iAdRaE1oOr4vOI!kl01OFYc z60}dk^qI3KTkDuz_|4+GE%gv;Yn5OY?y!H?-FAE($cz3fO@*~*Uv8?W_G^yPI#wHP zo?FLfGpPKgB-t(ex%`&<&r3s1J)F4V%dgeU*R3+#{aN zuBiF@nCia%{7=>{whw(&qxNpf{=4Puzvlvj{r9%Y{=57hzn6Oh{ko&sB;tPO`Y*d{ zZ!G-oTV0KH*4>61YxS0qsI4XG4A;bgxlLILC#n$0?MyKfQ{4sC&J;0O?rGSztqPds zPCWCEOIbWW*|=@nTKj~$)ubt3+d`;v3|}DWQ=fNlW&0ZE6K=zviASPF zADI-TUSV|h>z-!!(&fIaT$w@JZ5P`J)x_wPzyx3l*?T3tw+gjs0-ZIB8Y#K8Ur7Wx zI*x9~Q|ml2U@USOUV#R&@qs z7b>fMIi>^8V^QDd&qsYFtiNIkjO!R_%lo{6Hcqv;gTX*{#27fCS57Cu8SfB}sG%g5 zXgawh-xOa#H^P{d(qftZvakWDpQxPjEe3T)jsAfkT4IJf4b$j_{&LVYQS_~>P5uOd z$+x0ZjzZM^pmXS4m2%IVY9F^)t2O|?2A~~fCO{A#1}V)B+A2nZ{-~>UJvvxU?U+}AIUd={wGIREED!=8%`5lNU?s>`2~kaaTS%E{Jy5)b%g z$6HI7nA>I97XG5yj!;R#Zq<4*4b3KWz)4cE$@bN>m5w_ bw%O$WrTp@v*a>gEE2a3c7jJ4_E>7@20-{ty delta 2162 zcmbtV-)kI29QQ7#Sz9rUX_7Ow$(RaB@%Db-g$AX>A1Oh4sZb$Ji0$0o+|Ag%-DPI> zt{bRr3{lda^v=0fYE7)K(wDL*2tF0@r7wyIebCll#22H@A5d`iNNN?cLc0rlyZfE_ zetvwv-`g8s2G`yX?l>Jf|MS_0TF1%eaIGl53GWpH%a1l*xEw5WT>bUC_VH<3JC0}` z(b5nDmZ=j?G^hiMR7?&yq$R`|7_%%LMSx|?`-6x>z&I=x5oN$M04kJ_SXa7^Rjbvg zX5_V~W|m{gcrp`0Yz9bDX0>T0mlef6fsgj1_u~c5TKBA9Tfm7Te|5W z#3CSXb6_D;CYF24L?>`#J0=XEV$q~hD1(ldjv@~dXgZRMSU;EPP|1l7M!+D`Oo|3a zK|DG#k{H>SOl8E^kL__kS4Kmxv}}?LnT3o3uq}`6GuaHt6J3|=Wo8NGcsXUjGOLJ! zu?bKzp)UFTT@(YF;-~4O)al zT}3B6287!bsUE26fvR44)ObQoremHG%`~_)Ollcy5kI6uE?p?gme8SR^~9zU$UxcF zFp$4n%8`&zik3C?G!dgnA>-86JPr{t+1XuSkQBV$8K?4`TX*DL3jVU+45+nxWfRc)I3QS6EV-x?XMQUFn9nXx&TJ*R-?))Jr&Ry&g%Zr}~ z^@Cl(m4KLUq=dE5?e;!78xZx2-J7w%oH*S`xo_>74Bqp)FIZdNoEveo|3)Ay){o5e zW$Son&d%fH-ub4SExgUUwBanyx)E@x%`g7bo;z*3x86UM4T)O^!fw~_vmw7_mqOw; z4ZAE-5BZ_(PJHIaMy#b%Qqt3z$oA>l!-ic}<4rsxrZQiM+(2*Ff9Uh%`|6RzrR=&fnPxmQ)_FZom^ZSQd!u*zP zQ)H72xxc(|+gJY@J=E@(=CC3_BJ9$+3FYPcw`o?|wL{o z>_128tBuzQkzPD}Z%DwmulTszFMeNs-mlPC-U$bN;^O8~!!HazzBcnf`fD8)qVj`s zf^g?(l^iEcyjoL?JZwFPqnU8v!ri}-^|M$U90+eQUH_+5biRAduck^+c2L-TedSKT YPx3&$@!|tX#=qfJyedbdCum3i0;U55<^TWy