@@ -164,77 +164,54 @@ def test_run_with_reference_pattern_set_at_runtime(self):
164
164
165
165
def test_run_with_chat_message_replies_without_pattern (self ):
166
166
component = AnswerBuilder ()
167
- replies = [
168
- ChatMessage (
169
- content = "Answer: AnswerString" ,
170
- role = ChatRole .ASSISTANT ,
171
- name = None ,
172
- meta = {
173
- "model" : "gpt-4o-mini" ,
174
- "index" : 0 ,
175
- "finish_reason" : "stop" ,
176
- "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
177
- },
178
- )
179
- ]
180
- output = component .run (query = "test query" , replies = replies , meta = [{}])
181
- answers = output ["answers" ]
182
- assert len (answers ) == 1
183
- assert answers [0 ].data == "Answer: AnswerString"
184
- assert answers [0 ].meta == {
167
+
168
+ message_meta = {
185
169
"model" : "gpt-4o-mini" ,
186
170
"index" : 0 ,
187
171
"finish_reason" : "stop" ,
188
172
"usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
189
173
}
174
+ replies = [ChatMessage .from_assistant ("Answer: AnswerString" , meta = message_meta )]
175
+
176
+ output = component .run (query = "test query" , replies = replies , meta = [{}])
177
+ answers = output ["answers" ]
178
+ assert len (answers ) == 1
179
+ assert answers [0 ].data == "Answer: AnswerString"
180
+ assert answers [0 ].meta == message_meta
190
181
assert answers [0 ].query == "test query"
191
182
assert answers [0 ].documents == []
192
183
assert isinstance (answers [0 ], GeneratedAnswer )
193
184
194
185
def test_run_with_chat_message_replies_with_pattern (self ):
195
186
component = AnswerBuilder (pattern = r"Answer: (.*)" )
196
- replies = [
197
- ChatMessage (
198
- content = "Answer: AnswerString" ,
199
- role = ChatRole .ASSISTANT ,
200
- name = None ,
201
- meta = {
202
- "model" : "gpt-4o-mini" ,
203
- "index" : 0 ,
204
- "finish_reason" : "stop" ,
205
- "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
206
- },
207
- )
208
- ]
209
- output = component .run (query = "test query" , replies = replies , meta = [{}])
210
- answers = output ["answers" ]
211
- assert len (answers ) == 1
212
- assert answers [0 ].data == "AnswerString"
213
- assert answers [0 ].meta == {
187
+
188
+ message_meta = {
214
189
"model" : "gpt-4o-mini" ,
215
190
"index" : 0 ,
216
191
"finish_reason" : "stop" ,
217
192
"usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
218
193
}
194
+ replies = [ChatMessage .from_assistant ("Answer: AnswerString" , meta = message_meta )]
195
+
196
+ output = component .run (query = "test query" , replies = replies , meta = [{}])
197
+ answers = output ["answers" ]
198
+ assert len (answers ) == 1
199
+ assert answers [0 ].data == "AnswerString"
200
+ assert answers [0 ].meta == message_meta
219
201
assert answers [0 ].query == "test query"
220
202
assert answers [0 ].documents == []
221
203
assert isinstance (answers [0 ], GeneratedAnswer )
222
204
223
205
def test_run_with_chat_message_replies_with_documents (self ):
224
206
component = AnswerBuilder (reference_pattern = "\\ [(\\ d+)\\ ]" )
225
- replies = [
226
- ChatMessage (
227
- content = "Answer: AnswerString[2]" ,
228
- role = ChatRole .ASSISTANT ,
229
- name = None ,
230
- meta = {
231
- "model" : "gpt-4o-mini" ,
232
- "index" : 0 ,
233
- "finish_reason" : "stop" ,
234
- "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
235
- },
236
- )
237
- ]
207
+ message_meta = {
208
+ "model" : "gpt-4o-mini" ,
209
+ "index" : 0 ,
210
+ "finish_reason" : "stop" ,
211
+ "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
212
+ }
213
+ replies = [ChatMessage .from_assistant ("Answer: AnswerString[2]" , meta = message_meta )]
214
+
238
215
output = component .run (
239
216
query = "test query" ,
240
217
replies = replies ,
@@ -244,60 +221,40 @@ def test_run_with_chat_message_replies_with_documents(self):
244
221
answers = output ["answers" ]
245
222
assert len (answers ) == 1
246
223
assert answers [0 ].data == "Answer: AnswerString[2]"
247
- assert answers [0 ].meta == {
248
- "model" : "gpt-4o-mini" ,
249
- "index" : 0 ,
250
- "finish_reason" : "stop" ,
251
- "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
252
- }
224
+ assert answers [0 ].meta == message_meta
253
225
assert answers [0 ].query == "test query"
254
226
assert len (answers [0 ].documents ) == 1
255
227
assert answers [0 ].documents [0 ].content == "test doc 2"
256
228
257
229
def test_run_with_chat_message_replies_with_pattern_set_at_runtime (self ):
258
230
component = AnswerBuilder (pattern = "unused pattern" )
259
- replies = [
260
- ChatMessage (
261
- content = "Answer: AnswerString" ,
262
- role = ChatRole .ASSISTANT ,
263
- name = None ,
264
- meta = {
265
- "model" : "gpt-4o-mini" ,
266
- "index" : 0 ,
267
- "finish_reason" : "stop" ,
268
- "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
269
- },
270
- )
271
- ]
272
- output = component .run (query = "test query" , replies = replies , meta = [{}], pattern = r"Answer: (.*)" )
273
- answers = output ["answers" ]
274
- assert len (answers ) == 1
275
- assert answers [0 ].data == "AnswerString"
276
- assert answers [0 ].meta == {
231
+ message_meta = {
277
232
"model" : "gpt-4o-mini" ,
278
233
"index" : 0 ,
279
234
"finish_reason" : "stop" ,
280
235
"usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
281
236
}
237
+ replies = [ChatMessage .from_assistant ("Answer: AnswerString" , meta = message_meta )]
238
+
239
+ output = component .run (query = "test query" , replies = replies , meta = [{}], pattern = r"Answer: (.*)" )
240
+ answers = output ["answers" ]
241
+ assert len (answers ) == 1
242
+ assert answers [0 ].data == "AnswerString"
243
+ assert answers [0 ].meta == message_meta
282
244
assert answers [0 ].query == "test query"
283
245
assert answers [0 ].documents == []
284
246
assert isinstance (answers [0 ], GeneratedAnswer )
285
247
286
248
def test_run_with_chat_message_replies_with_meta_set_at_run_time (self ):
287
249
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
- ]
250
+ message_meta = {
251
+ "model" : "gpt-4o-mini" ,
252
+ "index" : 0 ,
253
+ "finish_reason" : "stop" ,
254
+ "usage" : {"prompt_tokens" : 32 , "completion_tokens" : 153 , "total_tokens" : 185 },
255
+ }
256
+ replies = [ChatMessage .from_assistant ("AnswerString" , meta = message_meta )]
257
+
301
258
output = component .run (query = "test query" , replies = replies , meta = [{"test" : "meta" }])
302
259
answers = output ["answers" ]
303
260
assert len (answers ) == 1
@@ -315,8 +272,9 @@ def test_run_with_chat_message_replies_with_meta_set_at_run_time(self):
315
272
316
273
def test_run_with_chat_message_no_meta_with_meta_set_at_run_time (self ):
317
274
component = AnswerBuilder ()
318
- replies = [ChatMessage ( content = "AnswerString" , role = ChatRole . ASSISTANT , name = None , meta = {} )]
275
+ replies = [ChatMessage . from_assistant ( "AnswerString" )]
319
276
output = component .run (query = "test query" , replies = replies , meta = [{"test" : "meta" }])
277
+
320
278
answers = output ["answers" ]
321
279
assert len (answers ) == 1
322
280
assert answers [0 ].data == "AnswerString"
0 commit comments