Prompt
Overview
The Prompt class is an extension of the Prompt class from the promptfile library. It provides additional functionality for managing prompts, including response formats, few-shot examples, and cost tracking.
Attributes
| Attribute | Type | Description |
|---|---|---|
| model | string | The name of the language model to use for this prompt. |
| messages | List[ChatCompletionMessageParam] | A list of messages that make up the prompt. Each message is a dictionary containing role and content. |
| response_format | Optional[ResponseFormat] | Specifies the desired format for the model’s response. Can be a dictionary or a custom pydantic BaseModel. |
| fewshot | Optional[List[DatasetItem]] | A list of few-shot examples to be injected into the prompt template. |
| temperature | Optional[float] | Controls the randomness of the model’s output. Lower values make the output more deterministic. |
| name | Optional[string] | An optional name for the prompt, useful for identification and cost tracking. |
| inputs_desc | Optional[Dict[str, str]] | A dictionary describing the expected input parameters for the prompt. |
| outputs_desc | Optional[Dict[str, str]] | A dictionary describing the expected output format from the model. |
Methods
__call__
Asynchronously calls the language model with the configured prompt.
Parameters:
lm_config: Optional dictionary for additional language model configuration.num_retries: Number of retries for API calls (default: 3).**kwargs: Additional keyword arguments for formatting the prompt.
Returns: The response from the language model, either as a string or a dictionary.
load
Loads a Prompt object from a string content.
Parameters:
content: The string content to load the prompt from.
Returns: A new Prompt object.
load_file
Loads a Prompt object from a file.
Parameters:
file_path: The path to the file to load the prompt from.
Returns: A new Prompt object.
format
Formats the prompt with given keyword arguments.
Parameters:
**kwargs: Keyword arguments to format the prompt with.
Returns: The formatted Prompt object.
reset_copy
Creates a reset copy of the Prompt object with empty few-shot examples.
Returns: A new Prompt object with reset few-shot examples.
dump
Dumps the Prompt object to a string representation.
Returns: A string representation of the Prompt object.
Usage
import textwrap
from pydantic import BaseModel
from ape.common import Prompt
class Response(BaseModel):
reasoning: str
answer: str
base_prompt = Prompt(
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Answer the following question: {question}"
}
],
model="gpt-4o",
response_format=Response
)
response: Response = await prompt(
question="What is the meaning of life?"
)