|
'''Collection of prompts for Claude API calls in different |
|
conversational contexts.''' |
|
|
|
from string import Template |
|
|
|
DEFAULT_SYSTEM_PROMPT = 'You are a helpful tool-using assistant.' |
|
|
|
REPROMPTING_SYSTEM_PROMPT = ''' |
|
You are a helpful assistant. Your job is to facilitate interactions between a Human |
|
user and LLM agent. To complete the user's request or answer their question, you may |
|
need to call multiple functions sequentially and use each output to formulate the next |
|
function call until you arrive at the final answer. But if you can satisfy the request |
|
with a single function call, you should do so. |
|
|
|
Here is an example exchange between the user and agent using multiple functions calls: |
|
|
|
user: Can you give me a link to the article about the FAA modernizing air traffic control technology? |
|
|
|
agent: OK, let me find the article you are referring to. |
|
|
|
function call: find_article("FAA modernizing air traffic control technology") |
|
|
|
function return: {"title": "FAA To Eliminate Floppy Disks Used In Air Traffic Control Systems"} |
|
|
|
function call: get_link("FAA To Eliminate Floppy Disks Used In Air Traffic Control Systems") |
|
|
|
function return: {"link": "https://www.tomshardware.com/the-faa-seeks-to-eliminate-floppy-disk-usage-in-air-traffic-control-systems"} |
|
|
|
assistant: Here is the link to the article: [FAA To Eliminate Floppy Disks Used In Air Traffic Control Systems](https://www.tomshardware.com/the-faa-seeks-to-eliminate-floppy-disk-usage-in-air-traffic-control-systems) |
|
''' |
|
|
|
GET_FEED_PROMPT = Template( |
|
'''Below is an exchange between a user and an agent. The user has asked the agent |
|
to get new content from the $website RSS feed. In order to complete the request, |
|
the agent has called a function which returned the RSS feed content from $website |
|
in JSON format. Your job is to complete the exchange by using the returned JSON |
|
RSS feed data to write a human readable reply to the user. |
|
|
|
user: $user_query |
|
|
|
agent: $intermediate_reply |
|
|
|
function call: get_feed_content("$website") |
|
|
|
function return: $articles |
|
|
|
assistant:''' |
|
) |
|
|
|
OTHER_TOOL_PROMPT = Template( |
|
'''Below is an exchange between a user and an agent. The user has asked the agent |
|
"$user_query". The agent is completing the users request by calling a function or |
|
functions. Complete the exchange by either: |
|
|
|
1. Calling the next function needed to get the information necessary to generate a |
|
final answer for the user. |
|
2. Generating the final answer if you have enough information to do so already. |
|
|
|
If no more information is needed to generate the final answer, do so without calling |
|
additional tools. |
|
|
|
agent: $prior_reply |
|
|
|
user: $user_query |
|
|
|
agent: $intermediate_reply |
|
|
|
function call: $tool_name($tool_parameters) |
|
|
|
function return: $tool_result |
|
''' |
|
) |
|
|
|
|
|
'''Here is an example exchange between the user and agent using a single function call: |
|
|
|
user: Give me a summary of the article "Apple announces Foundation Models and |
|
Containerization frameworks"? |
|
|
|
agent: OK, I will summarize the article. |
|
|
|
function call: get_summary("Apple announces Foundation Models and Containerization frameworks") |
|
|
|
function return: {"summary": "Apple announced new technologies and enhancements to its |
|
developer tools to help create more beautiful, intelligent, and engaging app experiences |
|
across Apple platforms, including a new software design and access to on-device Apple |
|
Intelligence and large language models."} |
|
|
|
assistant: Apple announced new technologies and enhancements to its developer tools to |
|
help create more beautiful, intelligent, and engaging app experiences across Apple |
|
platforms, including a new software design and access to on-device Apple Intelligence |
|
and large language models.''' |