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

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__
method

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
classmethod

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
classmethod

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
method

Formats the prompt with given keyword arguments.

Parameters:

  • **kwargs: Keyword arguments to format the prompt with.

Returns: The formatted Prompt object.

reset_copy
method

Creates a reset copy of the Prompt object with empty few-shot examples.

Returns: A new Prompt object with reset few-shot examples.

dump
method

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?"
)