1616 AgentTurnResponseTurnCompletePayload ,
1717 StepType ,
1818)
19- from llama_stack .apis .common .content_types import URL
19+ from llama_stack .apis .common .content_types import URL , TextDelta
2020from llama_stack .apis .inference import (
2121 ChatCompletionResponse ,
2222 ChatCompletionResponseEvent ,
23+ ChatCompletionResponseEventType ,
2324 ChatCompletionResponseStreamChunk ,
2425 CompletionMessage ,
2526 LogProbConfig ,
2627 Message ,
2728 ResponseFormat ,
2829 SamplingParams ,
2930 ToolChoice ,
31+ ToolConfig ,
3032 ToolDefinition ,
3133 ToolPromptFormat ,
3234 UserMessage ,
3335)
3436from llama_stack .apis .safety import RunShieldResponse
3537from llama_stack .apis .tools import (
38+ ListToolGroupsResponse ,
39+ ListToolsResponse ,
3640 Tool ,
3741 ToolDef ,
3842 ToolGroup ,
3943 ToolHost ,
4044 ToolInvocationResult ,
4145)
4246from llama_stack .apis .vector_io import QueryChunksResponse
43- from llama_stack .models .llama .datatypes import BuiltinTool
47+ from llama_stack .models .llama .datatypes import BuiltinTool , StopReason
4448from llama_stack .providers .inline .agents .meta_reference .agent_instance import (
4549 MEMORY_QUERY_TOOL ,
4650)
5458class MockInferenceAPI :
5559 async def chat_completion (
5660 self ,
57- model : str ,
61+ model_id : str ,
5862 messages : List [Message ],
5963 sampling_params : Optional [SamplingParams ] = SamplingParams (),
60- response_format : Optional [ResponseFormat ] = None ,
6164 tools : Optional [List [ToolDefinition ]] = None ,
6265 tool_choice : Optional [ToolChoice ] = None ,
6366 tool_prompt_format : Optional [ToolPromptFormat ] = None ,
67+ response_format : Optional [ResponseFormat ] = None ,
6468 stream : Optional [bool ] = False ,
6569 logprobs : Optional [LogProbConfig ] = None ,
70+ tool_config : Optional [ToolConfig ] = None ,
6671 ) -> Union [ChatCompletionResponse , AsyncIterator [ChatCompletionResponseStreamChunk ]]:
6772 async def stream_response ():
6873 yield ChatCompletionResponseStreamChunk (
6974 event = ChatCompletionResponseEvent (
70- event_type = " start" ,
71- delta = "" ,
75+ event_type = ChatCompletionResponseEventType . start ,
76+ delta = TextDelta ( text = "" ) ,
7277 )
7378 )
7479
7580 yield ChatCompletionResponseStreamChunk (
7681 event = ChatCompletionResponseEvent (
77- event_type = " progress" ,
78- delta = "AI is a fascinating field..." ,
82+ event_type = ChatCompletionResponseEventType . progress ,
83+ delta = TextDelta ( text = "AI is a fascinating field..." ) ,
7984 )
8085 )
8186
8287 yield ChatCompletionResponseStreamChunk (
8388 event = ChatCompletionResponseEvent (
84- event_type = " complete" ,
85- delta = "" ,
86- stop_reason = " end_of_turn" ,
89+ event_type = ChatCompletionResponseEventType . complete ,
90+ delta = TextDelta ( text = "" ) ,
91+ stop_reason = StopReason . end_of_turn ,
8792 )
8893 )
8994
@@ -133,35 +138,39 @@ async def get_tool_group(self, toolgroup_id: str) -> ToolGroup:
133138 provider_resource_id = toolgroup_id ,
134139 )
135140
136- async def list_tool_groups (self ) -> List [ToolGroup ]:
137- return []
138-
139- async def list_tools (self , tool_group_id : Optional [str ] = None ) -> List [Tool ]:
140- if tool_group_id == MEMORY_TOOLGROUP :
141- return [
142- Tool (
143- identifier = MEMORY_QUERY_TOOL ,
144- provider_resource_id = MEMORY_QUERY_TOOL ,
145- toolgroup_id = MEMORY_TOOLGROUP ,
146- tool_host = ToolHost .client ,
147- description = "Mock tool" ,
148- provider_id = "builtin::rag" ,
149- parameters = [],
150- )
151- ]
152- if tool_group_id == CODE_INTERPRETER_TOOLGROUP :
153- return [
154- Tool (
155- identifier = "code_interpreter" ,
156- provider_resource_id = "code_interpreter" ,
157- toolgroup_id = CODE_INTERPRETER_TOOLGROUP ,
158- tool_host = ToolHost .client ,
159- description = "Mock tool" ,
160- provider_id = "builtin::code_interpreter" ,
161- parameters = [],
162- )
163- ]
164- return []
141+ async def list_tool_groups (self ) -> ListToolGroupsResponse :
142+ return ListToolGroupsResponse (data = [])
143+
144+ async def list_tools (self , toolgroup_id : Optional [str ] = None ) -> ListToolsResponse :
145+ if toolgroup_id == MEMORY_TOOLGROUP :
146+ return ListToolsResponse (
147+ data = [
148+ Tool (
149+ identifier = MEMORY_QUERY_TOOL ,
150+ provider_resource_id = MEMORY_QUERY_TOOL ,
151+ toolgroup_id = MEMORY_TOOLGROUP ,
152+ tool_host = ToolHost .client ,
153+ description = "Mock tool" ,
154+ provider_id = "builtin::rag" ,
155+ parameters = [],
156+ )
157+ ]
158+ )
159+ if toolgroup_id == CODE_INTERPRETER_TOOLGROUP :
160+ return ListToolsResponse (
161+ data = [
162+ Tool (
163+ identifier = "code_interpreter" ,
164+ provider_resource_id = "code_interpreter" ,
165+ toolgroup_id = CODE_INTERPRETER_TOOLGROUP ,
166+ tool_host = ToolHost .client ,
167+ description = "Mock tool" ,
168+ provider_id = "builtin::code_interpreter" ,
169+ parameters = [],
170+ )
171+ ]
172+ )
173+ return ListToolsResponse (data = [])
165174
166175 async def get_tool (self , tool_name : str ) -> Tool :
167176 return Tool (
@@ -174,7 +183,7 @@ async def get_tool(self, tool_name: str) -> Tool:
174183 parameters = [],
175184 )
176185
177- async def unregister_tool_group (self , tool_group_id : str ) -> None :
186+ async def unregister_tool_group (self , toolgroup_id : str ) -> None :
178187 pass
179188
180189
@@ -382,10 +391,11 @@ async def test_chat_agent_tools(get_agents_impl, toolgroups, expected_memory, ex
382391 chat_agent = await impl .get_agent (response .agent_id )
383392
384393 tool_defs , _ = await chat_agent ._get_tool_defs ()
394+ tool_defs_names = [t .tool_name for t in tool_defs ]
385395 if expected_memory :
386- assert MEMORY_QUERY_TOOL in tool_defs
396+ assert MEMORY_QUERY_TOOL in tool_defs_names
387397 if expected_code_interpreter :
388- assert BuiltinTool .code_interpreter in tool_defs
398+ assert BuiltinTool .code_interpreter in tool_defs_names
389399 if expected_memory and expected_code_interpreter :
390400 # override the tools for turn
391401 new_tool_defs , _ = await chat_agent ._get_tool_defs (
@@ -396,5 +406,6 @@ async def test_chat_agent_tools(get_agents_impl, toolgroups, expected_memory, ex
396406 )
397407 ]
398408 )
399- assert MEMORY_QUERY_TOOL in new_tool_defs
400- assert BuiltinTool .code_interpreter not in new_tool_defs
409+ new_tool_defs_names = [t .tool_name for t in new_tool_defs ]
410+ assert MEMORY_QUERY_TOOL in new_tool_defs_names
411+ assert BuiltinTool .code_interpreter not in new_tool_defs_names
0 commit comments