From b2c1a3ad791df72c4bbf5160a5b621f219dc12e4 Mon Sep 17 00:00:00 2001 From: corrm Date: Mon, 24 Jun 2024 05:54:58 +0300 Subject: [PATCH] chore: Improved prompt generation in ollama_pt function --- litellm/llms/prompt_templates/factory.py | 25 +++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/litellm/llms/prompt_templates/factory.py b/litellm/llms/prompt_templates/factory.py index 398e96af7e6..02ed93fae37 100644 --- a/litellm/llms/prompt_templates/factory.py +++ b/litellm/llms/prompt_templates/factory.py @@ -172,14 +172,21 @@ def ollama_pt( images.append(base64_image) return {"prompt": prompt, "images": images} else: - prompt = "".join( - ( - m["content"] - if isinstance(m["content"], str) is str - else "".join(m["content"]) - ) - for m in messages - ) + prompt = "" + for message in messages: + role = message["role"] + content = message.get("content", "") + + if "tool_calls" in message: + for call in message["tool_calls"]: + function_name = call["function"]["name"] + arguments = json.loads(call["function"]["arguments"]) + prompt += f"### Tool Call ({call["id"]}):\nFunction: {function_name}\nArguments: {json.dumps(arguments)}\n\n" + elif "tool_call_id" in message: + prompt += f"### Tool Call Result ({message["tool_call_id"]}):\n{message["content"]}\n\n" + elif content: + prompt += f"### {role.capitalize()}:\n{content}\n\n" + return prompt @@ -710,7 +717,7 @@ def convert_to_anthropic_tool_result_xml(message: dict) -> str: """ Anthropic tool_results look like: - + [Successful results]