Skip to content

Commit 6be8f66

Browse files
authored
Merge branch 'main' into add-multimodal-support
2 parents a7dcb63 + 67324c7 commit 6be8f66

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

langfuse/openai.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
from collections import defaultdict
2323
from dataclasses import dataclass
2424
from inspect import isclass
25-
from typing import Optional
25+
from typing import List, Optional
26+
2627

2728
import openai.resources
2829
from openai._types import NotGiven
@@ -408,12 +409,15 @@ def _get_langfuse_data_from_kwargs(
408409
else None
409410
)
410411

412+
parsed_n = kwargs.get("n", 1) if not isinstance(kwargs.get("n", 1), NotGiven) else 1
413+
411414
modelParameters = {
412415
"temperature": parsed_temperature,
413416
"max_tokens": parsed_max_tokens, # casing?
414417
"top_p": parsed_top_p,
415418
"frequency_penalty": parsed_frequency_penalty,
416419
"presence_penalty": parsed_presence_penalty,
420+
"n": parsed_n,
417421
}
418422
if parsed_seed is not None:
419423
modelParameters["seed"] = parsed_seed
@@ -583,12 +587,21 @@ def _get_langfuse_data_from_default_response(resource: OpenAiDefinition, respons
583587
elif resource.type == "chat":
584588
choices = response.get("choices", [])
585589
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+
)
592605

593606
usage = response.get("usage", None)
594607

0 commit comments

Comments
 (0)