chore: Improved prompt generation in ollama_pt function

This commit is contained in:
corrm 2024-06-24 05:54:58 +03:00
parent 769c60e4f6
commit b2c1a3ad79

View file

@ -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]
<function_results>
<result>