31
31
32
32
33
33
def hello (_messages : list [ModelMessage ], _agent_info : AgentInfo ) -> ModelResponse :
34
- return ModelResponse . from_text ( 'hello world' ) # pragma: no cover
34
+ return ModelResponse ( parts = [ TextPart ( 'hello world' )] ) # pragma: no cover
35
35
36
36
37
37
async def stream_hello (_messages : list [ModelMessage ], _agent_info : AgentInfo ) -> AsyncIterator [str ]:
@@ -55,7 +55,7 @@ async def return_last(messages: list[ModelMessage], _: AgentInfo) -> ModelRespon
55
55
response = asdict (last )
56
56
response .pop ('timestamp' , None )
57
57
response ['message_count' ] = len (messages )
58
- return ModelResponse . from_text ( ' ' .join (f'{ k } ={ v !r} ' for k , v in response .items ()))
58
+ return ModelResponse ( parts = [ TextPart ( ' ' .join (f'{ k } ={ v !r} ' for k , v in response .items ()))] )
59
59
60
60
61
61
def test_simple (set_event_loop : None ):
@@ -117,7 +117,7 @@ async def weather_model(messages: list[ModelMessage], info: AgentInfo) -> ModelR
117
117
break
118
118
119
119
assert location_name is not None
120
- return ModelResponse . from_text ( f'{ last .content } in { location_name } ' )
120
+ return ModelResponse ( parts = [ TextPart ( f'{ last .content } in { location_name } ' )] )
121
121
122
122
raise ValueError (f'Unexpected message: { last } ' )
123
123
@@ -200,7 +200,7 @@ async def call_function_model(messages: list[ModelMessage], _: AgentInfo) -> Mod
200
200
]
201
201
)
202
202
elif isinstance (last , ToolReturnPart ):
203
- return ModelResponse . from_text ( pydantic_core .to_json (last ).decode ())
203
+ return ModelResponse ( parts = [ TextPart ( pydantic_core .to_json (last ).decode ())] )
204
204
205
205
raise ValueError (f'Unexpected message: { last } ' )
206
206
@@ -236,7 +236,7 @@ async def call_tool(messages: list[ModelMessage], info: AgentInfo) -> ModelRespo
236
236
tool_name = info .function_tools [0 ].name
237
237
return ModelResponse (parts = [ToolCallPart .from_raw_args (tool_name , '{}' )])
238
238
else :
239
- return ModelResponse . from_text ( 'final response' )
239
+ return ModelResponse ( parts = [ TextPart ( 'final response' )] )
240
240
241
241
242
242
def test_deps_none (set_event_loop : None ):
@@ -318,8 +318,12 @@ def spam() -> str:
318
318
319
319
def test_register_all (set_event_loop : None ):
320
320
async def f (messages : list [ModelMessage ], info : AgentInfo ) -> ModelResponse :
321
- return ModelResponse .from_text (
322
- f'messages={ len (messages )} allow_text_result={ info .allow_text_result } tools={ len (info .function_tools )} '
321
+ return ModelResponse (
322
+ parts = [
323
+ TextPart (
324
+ f'messages={ len (messages )} allow_text_result={ info .allow_text_result } tools={ len (info .function_tools )} '
325
+ )
326
+ ]
323
327
)
324
328
325
329
result = agent_all .run_sync ('Hello' , model = FunctionModel (f ))
@@ -373,7 +377,7 @@ async def try_again(msgs_: list[ModelMessage], _agent_info: AgentInfo) -> ModelR
373
377
nonlocal call_count
374
378
call_count += 1
375
379
376
- return ModelResponse . from_text ( str (call_count ))
380
+ return ModelResponse ( parts = [ TextPart ( str (call_count ))] )
377
381
378
382
agent = Agent (FunctionModel (try_again ))
379
383
0 commit comments