fix: add list contents handling in structured LLM output (#21837)
This commit is contained in:
parent
68f41bbaa8
commit
5487463385
1 changed files with 8 additions and 2 deletions
|
|
@ -23,6 +23,7 @@ from core.model_runtime.entities.message_entities import (
|
||||||
PromptMessage,
|
PromptMessage,
|
||||||
PromptMessageTool,
|
PromptMessageTool,
|
||||||
SystemPromptMessage,
|
SystemPromptMessage,
|
||||||
|
TextPromptMessageContent,
|
||||||
)
|
)
|
||||||
from core.model_runtime.entities.model_entities import AIModelEntity, ParameterRule
|
from core.model_runtime.entities.model_entities import AIModelEntity, ParameterRule
|
||||||
|
|
||||||
|
|
@ -170,10 +171,15 @@ def invoke_llm_with_structured_output(
|
||||||
system_fingerprint: Optional[str] = None
|
system_fingerprint: Optional[str] = None
|
||||||
for event in llm_result:
|
for event in llm_result:
|
||||||
if isinstance(event, LLMResultChunk):
|
if isinstance(event, LLMResultChunk):
|
||||||
|
prompt_messages = event.prompt_messages
|
||||||
|
system_fingerprint = event.system_fingerprint
|
||||||
|
|
||||||
if isinstance(event.delta.message.content, str):
|
if isinstance(event.delta.message.content, str):
|
||||||
result_text += event.delta.message.content
|
result_text += event.delta.message.content
|
||||||
prompt_messages = event.prompt_messages
|
elif isinstance(event.delta.message.content, list):
|
||||||
system_fingerprint = event.system_fingerprint
|
for item in event.delta.message.content:
|
||||||
|
if isinstance(item, TextPromptMessageContent):
|
||||||
|
result_text += item.data
|
||||||
|
|
||||||
yield LLMResultChunkWithStructuredOutput(
|
yield LLMResultChunkWithStructuredOutput(
|
||||||
model=model_schema.model,
|
model=model_schema.model,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue