cuery.prompt#

Prompt base class.

Encapsulates lists of messages with functionality for loading from configuration files, rendering to rich text, handling Jinja templating for dynamic content, and validating required variables

Attributes#

Classes#

Message

Message class for chat completions.

Prompt

Prompt class for chat completions.

Module Contents#

cuery.prompt.ROLE_STYLES#
class cuery.prompt.Message(/, **data)#

Bases: pydantic.BaseModel

Message class for chat completions.

Parameters:

data (Any)

content: str#
role: str = 'user'#
__rich_console__(console, options)#
Parameters:
  • console (cuery.pretty.Console)

  • options (cuery.pretty.ConsoleOptions)

Return type:

cuery.pretty.RenderResult

class cuery.prompt.Prompt(/, **data)#

Bases: pydantic.BaseModel

Prompt class for chat completions.

This class represents a chat prompt consisting of multiple messages. Each message can have a role (e.g., user, assistant) and content. It can be constructed manually or from a configuration file or a string. In the latter case, automatically detects the required variables used by the Jinja template, if any.

Parameters:

data (Any)

messages: list[Message] = None#
required: list[str] = None#
classmethod validate_messages(messages)#

Allow init from other types.

Return type:

list

check_required()#
validate_required()#

Validate that all required variables are present in the prompt.

__iter__()#

So dict(model) works.

classmethod from_config(source)#
Parameters:

source (str | pathlib.Path | dict)

Return type:

Prompt

classmethod from_string(p)#

Create a Prompt from a string.

Parameters:

p (str)

Return type:

Prompt

substitute(**kwds)#
render(with_roles=False, **kwds)#

Render the prompt messages into single string with the given variables.

Not usually needed as Task, Tools etc. will do this automatically.

Parameters:

with_roles (bool)

Return type:

str

__rich_console__(console, options)#
Parameters:
  • console (cuery.pretty.Console)

  • options (cuery.pretty.ConsoleOptions)

Return type:

cuery.pretty.RenderResult