@@ -36,6 +36,16 @@ def test_run_meta_is_an_empty_list(self):
36
36
assert answers [0 ].documents == []
37
37
assert isinstance (answers [0 ], GeneratedAnswer )
38
38
39
+ def test_run_with_meta (self ):
40
+ component = AnswerBuilder ()
41
+ output = component .run (query = "query" , replies = ["reply1" ], meta = [{"test" : "meta" }])
42
+ answers = output ["answers" ]
43
+ assert answers [0 ].data == "reply1"
44
+ assert answers [0 ].meta == {"test" : "meta" }
45
+ assert answers [0 ].query == "query"
46
+ assert answers [0 ].documents == []
47
+ assert isinstance (answers [0 ], GeneratedAnswer )
48
+
39
49
def test_run_without_pattern (self ):
40
50
component = AnswerBuilder ()
41
51
output = component .run (query = "test query" , replies = ["Answer: AnswerString" ], meta = [{}])
@@ -272,3 +282,45 @@ def test_run_with_chat_message_replies_with_pattern_set_at_runtime(self):
272
282
assert answers [0 ].query == "test query"
273
283
assert answers [0 ].documents == []
274
284
assert isinstance (answers [0 ], GeneratedAnswer )
285
+
286
+ def test_run_with_chat_message_replies_with_meta_set_at_run_time (self ):
287
+ component = AnswerBuilder ()
288
+ replies = [
289
+ ChatMessage (
290
+ content = "AnswerString" ,
291
+ role = ChatRole .ASSISTANT ,
292
+ name = None ,
293
+ meta = {
294
+ "model" : "gpt-4o-mini" ,
295
+ "index" : 0 ,
296
+ "finish_reason" : "stop" ,
297
+ "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
298
+ },
299
+ )
300
+ ]
301
+ output = component .run (query = "test query" , replies = replies , meta = [{"test" : "meta" }])
302
+ answers = output ["answers" ]
303
+ assert len (answers ) == 1
304
+ assert answers [0 ].data == "AnswerString"
305
+ assert answers [0 ].meta == {
306
+ "model" : "gpt-4o-mini" ,
307
+ "index" : 0 ,
308
+ "finish_reason" : "stop" ,
309
+ "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
310
+ "test" : "meta" ,
311
+ }
312
+ assert answers [0 ].query == "test query"
313
+ assert answers [0 ].documents == []
314
+ assert isinstance (answers [0 ], GeneratedAnswer )
315
+
316
+ def test_run_with_chat_message_no_meta_with_meta_set_at_run_time (self ):
317
+ component = AnswerBuilder ()
318
+ replies = [ChatMessage (content = "AnswerString" , role = ChatRole .ASSISTANT , name = None , meta = {})]
319
+ output = component .run (query = "test query" , replies = replies , meta = [{"test" : "meta" }])
320
+ answers = output ["answers" ]
321
+ assert len (answers ) == 1
322
+ assert answers [0 ].data == "AnswerString"
323
+ assert answers [0 ].meta == {"test" : "meta" }
324
+ assert answers [0 ].query == "test query"
325
+ assert answers [0 ].documents == []
326
+ assert isinstance (answers [0 ], GeneratedAnswer )
0 commit comments