mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-14 11:56:09 +08:00
fix: differentiate prompts fields based on function_calling_type (#5880)
This commit is contained in:
parent
f46792334c
commit
d7a6f25c63
@ -616,30 +616,34 @@ class OAIAPICompatLargeLanguageModel(_CommonOAI_API_Compat, LargeLanguageModel):
|
|||||||
message = cast(AssistantPromptMessage, message)
|
message = cast(AssistantPromptMessage, message)
|
||||||
message_dict = {"role": "assistant", "content": message.content}
|
message_dict = {"role": "assistant", "content": message.content}
|
||||||
if message.tool_calls:
|
if message.tool_calls:
|
||||||
# message_dict["tool_calls"] = [helper.dump_model(PromptMessageFunction(function=tool_call)) for tool_call
|
function_calling_type = credentials.get('function_calling_type', 'no_call')
|
||||||
# in
|
if function_calling_type == 'tool_call':
|
||||||
# message.tool_calls]
|
message_dict["tool_calls"] = [tool_call.dict() for tool_call in
|
||||||
|
message.tool_calls]
|
||||||
function_call = message.tool_calls[0]
|
elif function_calling_type == 'function_call':
|
||||||
message_dict["function_call"] = {
|
function_call = message.tool_calls[0]
|
||||||
"name": function_call.function.name,
|
message_dict["function_call"] = {
|
||||||
"arguments": function_call.function.arguments,
|
"name": function_call.function.name,
|
||||||
}
|
"arguments": function_call.function.arguments,
|
||||||
|
}
|
||||||
elif isinstance(message, SystemPromptMessage):
|
elif isinstance(message, SystemPromptMessage):
|
||||||
message = cast(SystemPromptMessage, message)
|
message = cast(SystemPromptMessage, message)
|
||||||
message_dict = {"role": "system", "content": message.content}
|
message_dict = {"role": "system", "content": message.content}
|
||||||
elif isinstance(message, ToolPromptMessage):
|
elif isinstance(message, ToolPromptMessage):
|
||||||
message = cast(ToolPromptMessage, message)
|
message = cast(ToolPromptMessage, message)
|
||||||
# message_dict = {
|
function_calling_type = credentials.get('function_calling_type', 'no_call')
|
||||||
# "role": "tool",
|
if function_calling_type == 'tool_call':
|
||||||
# "content": message.content,
|
message_dict = {
|
||||||
# "tool_call_id": message.tool_call_id
|
"role": "tool",
|
||||||
# }
|
"content": message.content,
|
||||||
message_dict = {
|
"tool_call_id": message.tool_call_id
|
||||||
"role": "tool" if credentials and credentials.get('function_calling_type', 'no_call') == 'tool_call' else "function",
|
}
|
||||||
"content": message.content,
|
elif function_calling_type == 'function_call':
|
||||||
"name": message.tool_call_id
|
message_dict = {
|
||||||
}
|
"role": "function",
|
||||||
|
"content": message.content,
|
||||||
|
"name": message.tool_call_id
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
raise ValueError(f"Got unknown type {message}")
|
raise ValueError(f"Got unknown type {message}")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user