|
22 | 22 | from collections import defaultdict |
23 | 23 | from dataclasses import dataclass |
24 | 24 | from inspect import isclass |
25 | | -from typing import Optional |
| 25 | +from typing import List, Optional |
| 26 | + |
26 | 27 |
|
27 | 28 | import openai.resources |
28 | 29 | from openai._types import NotGiven |
@@ -408,12 +409,15 @@ def _get_langfuse_data_from_kwargs( |
408 | 409 | else None |
409 | 410 | ) |
410 | 411 |
|
| 412 | + parsed_n = kwargs.get("n", 1) if not isinstance(kwargs.get("n", 1), NotGiven) else 1 |
| 413 | + |
411 | 414 | modelParameters = { |
412 | 415 | "temperature": parsed_temperature, |
413 | 416 | "max_tokens": parsed_max_tokens, # casing? |
414 | 417 | "top_p": parsed_top_p, |
415 | 418 | "frequency_penalty": parsed_frequency_penalty, |
416 | 419 | "presence_penalty": parsed_presence_penalty, |
| 420 | + "n": parsed_n, |
417 | 421 | } |
418 | 422 | if parsed_seed is not None: |
419 | 423 | modelParameters["seed"] = parsed_seed |
@@ -583,12 +587,21 @@ def _get_langfuse_data_from_default_response(resource: OpenAiDefinition, respons |
583 | 587 | elif resource.type == "chat": |
584 | 588 | choices = response.get("choices", []) |
585 | 589 | if len(choices) > 0: |
586 | | - choice = choices[-1] |
587 | | - completion = ( |
588 | | - _extract_chat_response(choice.message.__dict__) |
589 | | - if _is_openai_v1() |
590 | | - else choice.get("message", None) |
591 | | - ) |
| 590 | + # If multiple choices were generated, we'll show all of them in the UI as a list. |
| 591 | + if len(choices) > 1: |
| 592 | + completion = [ |
| 593 | + _extract_chat_response(choice.message.__dict__) |
| 594 | + if _is_openai_v1() |
| 595 | + else choice.get("message", None) |
| 596 | + for choice in choices |
| 597 | + ] |
| 598 | + else: |
| 599 | + choice = choices[0] |
| 600 | + completion = ( |
| 601 | + _extract_chat_response(choice.message.__dict__) |
| 602 | + if _is_openai_v1() |
| 603 | + else choice.get("message", None) |
| 604 | + ) |
592 | 605 |
|
593 | 606 | usage = response.get("usage", None) |
594 | 607 |
|
|
0 commit comments