Skip to content

Commit 6728515

Browse files
committed
push
1 parent 260590a commit 6728515

2 files changed

Lines changed: 25 additions & 25 deletions

File tree

langfuse/langchain/CallbackHandler.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -565,9 +565,7 @@ def __on_llm_action(
565565
try:
566566
tools = kwargs.get("invocation_params", {}).get("tools", None)
567567
if tools and isinstance(tools, list):
568-
prompts.extend(
569-
[{"role": "tool", "content": str(tool)} for tool in tools]
570-
)
568+
prompts.extend([{"role": "tool", "content": tool} for tool in tools])
571569

572570
model_name = self._parse_model_and_log_errors(
573571
serialized=serialized, metadata=metadata, kwargs=kwargs

langfuse/model.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import re
44
from abc import ABC, abstractmethod
55
from typing import Any, Dict, List, Literal, Optional, Sequence, Tuple, TypedDict, Union
6-
from langfuse.logger import langfuse_logger
76

87
from langfuse.api.resources.commons.types.dataset import (
98
Dataset, # noqa: F401
@@ -38,6 +37,7 @@
3837
CreateDatasetRequest,
3938
)
4039
from langfuse.api.resources.prompts import Prompt, Prompt_Chat, Prompt_Text
40+
from langfuse.logger import langfuse_logger
4141

4242

4343
class ModelUsage(TypedDict):
@@ -337,21 +337,23 @@ def compile(
337337
Returns:
338338
List of compiled chat messages as plain dictionaries, with unresolved placeholders kept as-is.
339339
"""
340-
compiled_messages: List[Dict[str, Any]] = []
340+
compiled_messages: List[
341+
Union[ChatMessageDict, ChatMessageWithPlaceholdersDict_Placeholder]
342+
] = []
341343
unresolved_placeholders: List[ChatMessageWithPlaceholdersDict_Placeholder] = []
342344

343345
for chat_message in self.prompt:
344346
if chat_message["type"] == "message":
345347
# For regular messages, compile variables and add to output
346-
message_obj = chat_message # type: ChatMessageWithPlaceholdersDict_Message
348+
message_obj = chat_message # type: ignore
347349
compiled_messages.append(
348-
{
349-
"role": message_obj["role"],
350-
"content": TemplateParser.compile_template(
351-
message_obj["content"],
350+
ChatMessageDict(
351+
role=message_obj["role"], # type: ignore
352+
content=TemplateParser.compile_template(
353+
message_obj["content"], # type: ignore
352354
kwargs,
353355
),
354-
},
356+
),
355357
)
356358
elif chat_message["type"] == "placeholder":
357359
placeholder_name = chat_message["name"]
@@ -365,36 +367,36 @@ def compile(
365367
and "content" in msg
366368
):
367369
compiled_messages.append(
368-
{
369-
"role": msg["role"], # type: ignore
370-
"content": TemplateParser.compile_template(
370+
ChatMessageDict(
371+
role=msg["role"], # type: ignore
372+
content=TemplateParser.compile_template(
371373
msg["content"], # type: ignore
372374
kwargs,
373375
),
374-
},
376+
),
375377
)
376378
else:
377379
compiled_messages.append(
378-
{
379-
"role": "system",
380-
"content": str(placeholder_value),
381-
}
380+
ChatMessageDict(
381+
role="NOT_GIVEN",
382+
content=str(placeholder_value),
383+
)
382384
)
383385
no_role_content_in_placeholder = f"Placeholder '{placeholder_name}' should contain a list of chat messages with 'role' and 'content' fields. Appended as string."
384386
langfuse_logger.warning(no_role_content_in_placeholder)
385387
else:
386388
compiled_messages.append(
387-
{
388-
"role": "system",
389-
"content": str(placeholder_value),
390-
}
389+
ChatMessageDict(
390+
role="NOT_GIVEN",
391+
content=str(placeholder_value),
392+
),
391393
)
392394
placeholder_not_a_list = f"Placeholder '{placeholder_name}' must contain a list of chat messages, got {type(placeholder_value)}"
393395
langfuse_logger.warning(placeholder_not_a_list)
394396
else:
395397
# Keep unresolved placeholder in the compiled messages
396-
compiled_messages.append(dict(chat_message))
397-
unresolved_placeholders.append(chat_message)
398+
compiled_messages.append(chat_message)
399+
unresolved_placeholders.append(chat_message["name"]) # type: ignore
398400

399401
if unresolved_placeholders:
400402
unresolved_placeholders_message = f"Placeholders {unresolved_placeholders} have not been resolved. Pass them as keyword arguments to compile()."

0 commit comments

Comments
 (0)