bug: ChatPromptClient.compile appends str(whole list) once per non-dict placeholder item
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
Describe the bug
In ChatPromptClient.compile, when a placeholder value is a list and an element is not a dict, the code appends ChatMessageDict(role="NOT_GIVEN", content=str(placeholder_value)). This is the inner else of the per-item loop, at langfuse/model.py line 365 (lines 362-368).
placeholder_value is the whole list, not the current item. N non-dict items therefore produce N identical messages, each containing the full list, and no message contains its own element. The input is already invalid (the warning says "Appended as string"), but the output is duplicated, garbled content.
I would expect one message per item, for example with content=str(msg), though maintainers may prefer a different handling of invalid items (skipping them, raising, etc.). The point is that the current output repeats the whole list per item.
Steps to reproduce
from langfuse.model import ChatPromptClient
from langfuse.api import Prompt_Chat
c = ChatPromptClient(Prompt_Chat(name="p", version=1, type="chat", config={}, labels=[], tags=[], commit_message=None,
prompt=[{"type": "chatmessage", "role": "system", "content": "hi {{x}}"}, {"type": "placeholder", "name": "history"}]))
print(c.compile(x="1", history=["a", "b"]))
Observed:
[{'role': 'system', 'content': 'hi 1'}, {'role': 'NOT_GIVEN', 'content': "['a', 'b']"}, {'role': 'NOT_GIVEN', 'content': "['a', 'b']"}]
The last two messages each contain the whole list ['a', 'b'] instead of 'a' and 'b' respectively.
Langfuse Cloud or self-hosted?
Langfuse Cloud (not server dependent; the behavior is purely client-side in the SDK)
If self-hosted, what version are you running?
N/A
SDK and integration versions
langfuse 4.17.0 (main at bf11ec121479145923ff27b32ec2ad1d06fd2d51), Python 3.14.0
Additional information
Related open PR #1840 (LangChain message objects in placeholders) touches the same loop; as far as its diff shows it keeps the str(placeholder_value) fallback for other non-dict items.
Are you interested in contributing a fix for this bug?
No
- Vorherrschende Sprache
- Python
- Sterne
- 498
- Forks
- 361
- Ø Merge
- 16 Std. 40 Min.
- Gemergte PRs (30 T.)
- 38
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus langfuse/langfuse-python
-
bug feat-prompt-management sdk-python
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
langfuse/langfuse-python#1976 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug: LANGFUSE_MAX_EVENT_SIZE_BYTES is parsed but never enforced for score eventsEvtl. vergeben @hassiebp hat das vor 2 Tagen übernommen. Offenbug feat-scores sdk-python
langfuse/langfuse-python#1966 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug: non-numeric status in a 207 error entry raises inside handle_exception, kills the score consumer thread, flush()/shutdown() then hangEvtl. vergeben @hassiebp hat das vor 2 Tagen übernommen. Offen[Integrations] Language Clients bug feat-scores sdk-python
langfuse/langfuse-python#1967 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug: Partial-failure (207) ingestion response retries the whole batch up to 3x; per-item error details only logged at DEBUGEvtl. vergeben @hassiebp hat das vor 2 Tagen übernommen. Offenbug feat-ingestion
langfuse/langfuse-python#1965 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug: GCS upload detection in MediaManager uses substring match on the full URLEvtl. vergeben @hassiebp hat das vor 11 Tagen übernommen. Offenbug feat-multimodal-media sdk-python
langfuse/langfuse-python#1913 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in langfuse/langfuse-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
GAM-team/got-your-back#547 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
UKGovernmentBEIS/inspect_ai#5821 ·
Maintainer antworten meist innerhalb von 1 Tag
-
docs help wanted
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
evidence wanted good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
open-coder-ai/agentseam#195 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag