Prompt engineering, the discipline of making exactly the fitting inputs for a big language model (LLM) to get the specified answer, is a critical latest skill for the AI era. It is helpful even for casual users of conversational AI, but essential for developers of the subsequent generation of AI-powered applications.
Input Fast Poetthe concept of Character.aia conversational LLM startup that was recently acquired by Google. Prompt Poet simplifies advanced prompt development by providing an easy-to-use, low-code template system that effectively manages context and seamlessly integrates external data. This lets you anchor LLM-generated responses in a real-world data context, opening a brand new horizon for AI interactions.
Prompt Poet shines with its seamless integration of few-shot learning, a strong technique for quickly adapting LLMs without complex and expensive model tuning. This article explores how few-shot learning will be used with Prompt Poet to simply and efficiently deliver customized AI-driven interactions.
Could Prompt Poet be a glimpse into Google's future approach to prompt development for Gemini and other AI products? This exciting potential is value a more in-depth look.
The power of learning in only a number of steps
In sparse example learning, we give the AI a handful of examples that illustrate the form of responses we would like for various possible prompts, plus we give it a number of “examples” of easy methods to behave in similar scenarios.
The fantastic thing about few-shot learning is its efficiency. Model fine-tuning involves retraining a model on a brand new dataset, which will be computationally intensive, time-consuming, and expensive, especially when working with large models. Few-shot learning, alternatively, provides a small variety of examples and asks the model to adapt its behavior to a selected context. Even fine-tuned models can profit from few-shot learning to adapt their behavior to a more specific context.
How Prompt Poet makes learning accessible in only a number of steps
Prompt Poet shines in its ability to simplify the implementation of few-shot learning. By using YAML and Jinja2 templates, Prompt Poet lets you create complex, dynamic prompts that integrate few-shot examples directly into the prompt structure.
For example, let's say you wish to develop a customer support chatbot for a retail company. With Prompt Poet, you possibly can easily incorporate customer information similar to order history and the status of current orders, in addition to details about current promotions and sales.
But what concerning the tone? Should or not it’s friendlier and fun, or more formal? More concise or more informative? By including “a number of shots” of successful examples, you possibly can fine-tune the chatbot’s responses to match each brand’s distinctive voice.
Basic instruction
The basic instruction for the chatbot might be:
- name: system instructions
role: system
content: |
You are a customer support chatbot for a retail site. Your job is to help customers by answering their questions, providing helpful information, and resolving issues. Below you will likely be provided some example user inputs paired with responses which might be desirable when it comes to tone, style, and voice. Emulate these examples in your responses to the user.
In these examples, placeholders marked with double query marks like '??placeholder??' will likely be used as a substitute of real user data. After the examples, you may be supplied with real data concerning the user's current and past orders as a customer, which you should use faithfully in coping with the user.
We may feed the model with our real customer data in order that it could accurately answer questions on the user's past and current orders. Where applicable, we may include current sales and promotions.
- name: customer data
role: system
content: |
current orders:
{% for order in current_orders %}
- {{ order.description }}
{% endfor %}
Past orders:
{% for order in past_orders %}
- {{ order.description }}
{% endfor %}
- name: promotions
role: system
content: |
promotions:
{% for promotion in promotions %}
- {{ promotion.description }}
{% endfor %}
But first we’d like to supply the examples of fashion, tone, and voice that we promised the model in the bottom statement.
Set the tone: friendly or formal?
Some brands have a more casual, friendly and joking tone, while others prefer a more sophisticated elegance.
For a brand with a friendly and relaxed tone, the few learning examples could appear like this:
- name: user prompt
role: user
content: |
Hi, I ordered ??product_name?? but have not received it yet. What’s happening?
- name: response
role: assistant
content: |
Hey ??user_name??! Sorry for the effort—let’s get this sorted out ASAP. ? I’m pulling up your order for ??product_name?? placed on ??order_date??. Hang tight while I check where it’s at!
- name: user prompt
role: user
content: |
I want to update my shipping address for an order I made today, it must be ??new_address??
- name: response
role: assistant
content: |
Gotcha, ??user_name??! Let’s be certain that your ??product_name?? gets to the fitting place. I’ll switch your shipping to ??new_address?? straight away. All set—anything I can do for you?
- name: user prompt
role: user
content: |
What’s your return policy? Not sure I’m going to like ??product_name??.
- name: response
role: assistant
content: |
No worries, ??user_name??! If ??product_name?? doesn’t knock your socks off, we’ve got a brilliant easy return process. Just let me know, and I’ll allow you to get it sorted out. ?
For a brand that emphasizes a more formal and skilled tone, different answers will be given to the identical prompts, leading the model to a distinct style:
- name: user prompt
role: user
content: |
Hi, I ordered ??product_name?? but have not received it yet. Can you assist?
- name: response
role: assistant
content: |
Thank you for reaching out, ??user_name??. I apologize for any inconvenience this may increasingly have caused. I'll promptly review the status of your order for ??product_name?? placed on ??order_date?? and supply an update shortly.
- name: user prompt
role: user
content: |
I want to update my shipping address for an order I made today, it must be ??new_address??
- name: response
role: assistant
content: |
Certainly, ??user_name??. I'll update your shipping information to ??new_address?? for the order placed today. The changes have been successfully applied. Is there anything I can assist you with?
- name: user prompt
role: user
content: |
Could you explain your return policy? I’m uncertain about keeping ??product_name??.
- name: response
role: assistant
content: |
Certainly, ??user_name??. If ??product_name?? doesn't meet your expectations, you might initiate a return inside our specified timeframe. I'll guide you thru the method to make sure it's handled easily and efficiently.
Bringing all of it together
The following code uses Prompt Poet's `Prompt` class to create a single, coherent prompt from the person elements of the bottom instructions, the few learning examples, and the actual user data. This allows us to invoke AI responses which might be precise and well crafted in purpose and elegance.
# User data
user_past_orders = get_past_orders(user)
user_current_orders = get_current_orders(user)
promotions = get_promotions(user)
template_data = {
"past_orders": user_past_orders,
"current_orders": user_current_orders,
"promotions": promotions
}
# Create the prompt using Prompt Poet
combined_template = base_instructions + few_shot_examples + customer_data
prompt = Prompt(
raw_template=combined_template,
template_data=template_data
)
# Get response from OpenAI
model_response = openai.ChatCompletion.create(
model="gpt-4",
messages=prompt.messages
)
Taking AI to a brand new level with Prompt Poet
Prompt Poet is greater than only a tool for managing context in AI prompts—it's a gateway to advanced prompt engineering techniques like few-shot learning. By simplifying the creation of complex prompts with real data and the language-adaptation power of few-shot examples, Prompt Poet allows you to construct sophisticated AI applications which might be each informative and tailored to your brand.
As AI continues to evolve, mastering techniques like few-shot learning is critical to staying one step ahead. Prompt Poet can allow you to unlock the total potential of LLMs and develop powerful and practical solutions.