Skip to content

Base backend

actantial.backends.base.LLMBackend

Bases: ABC

Abstract base class for all LLM backends in the actantial pipeline.

Concrete backends (Anthropic, OpenAI, HuggingFace) inherit from this class and implement generate. Shared template utilities are defined here so they are available to all backends.

__init__(model_name, **kwargs)

Set the model name and store any extra backend-specific config.

Parameters:

Name Type Description Default
model_name str

Model identifier used by the underlying LLM service or framework (e.g. an API model name or a HuggingFace path).

required
**kwargs Any

Backend-specific configuration stored in self.config.

{}

generate(prompt, **kwargs) abstractmethod

Generate text from a prompt.

Parameters:

Name Type Description Default
prompt str

The input prompt string.

required
**kwargs Any

Generation parameters (e.g. temperature, max_new_tokens).

{}

Returns:

Type Description
str

The generated text string, excluding the input prompt.

list_templates(templates_dir=Path(__file__).parent.parent / 'templates')

List the prompt templates available for this backend's model.

Parameters:

Name Type Description Default
templates_dir Union[str, Path]

Root directory containing per-model template subdirectories and the shared default/ directory. Defaults to the built-in templates/ folder.

parent / 'templates'

Returns:

Type Description
dict[str, list[str]]

A dict with keys "model_specific" and "default", each mapping to a sorted list of template names available for this model, without the .txt extension.

show_template(template, templates_dir=Path(__file__).parent.parent / 'templates')

Print the raw source of a prompt template.

Parameters:

Name Type Description Default
template str

Name of the template to display, with or without the .txt extension.

required
templates_dir Union[str, Path]

Root directory containing per-model template subdirectories and the shared default/ directory. Defaults to the built-in templates/ folder.

parent / 'templates'

cleanup()

Clean up resources (unload model, close connections, etc.). No-op by default.