core.types

Shared type definitions for FFAI.

Shared type definitions for FFAI.

class Interaction[source]

Bases: TypedDict

Record of a single prompt-response exchange.

prompt

The user’s input text.

Type:

str

response

The model’s output text.

Type:

str

prompt_name

Optional name identifying the prompt template used.

Type:

str | None

timestamp

Unix timestamp of the interaction.

Type:

float

model

Model identifier used for generation.

Type:

str | None

history

Optional prior conversation context.

Type:

list[str] | None

prompt: str
response: str
prompt_name: NotRequired[str | None]
timestamp: NotRequired[float]
model: NotRequired[str | None]
history: NotRequired[list[str] | None]
class PromptSpec[source]

Bases: TypedDict

Declarative specification for a single prompt within a batch or pipeline.

All fields are optional (total=False) allowing partial specs to be merged with defaults at runtime.

sequence

Execution order within the batch (0-indexed).

Type:

int

prompt_name

Human-readable name for the prompt.

Type:

str

prompt

The prompt text.

Type:

str

history

Prior conversation context to prepend.

Type:

list[str] | None

condition

Expression that must evaluate truthy for the prompt to run.

Type:

str | None

abort_condition

Expression that triggers batch abort after this prompt.

Type:

str | None

response_model

Pydantic model for structured output parsing.

Type:

type | None

system_instructions

System-level instructions override.

Type:

str | None

model

Model identifier override.

Type:

str | None

sequence: int
prompt_name: str
prompt: str
history: list[str] | None
condition: str | None
abort_condition: str | None
response_model: type | None
system_instructions: str | None
model: str | None

Classes

class Interaction[source]

Bases: TypedDict

Record of a single prompt-response exchange.

prompt

The user’s input text.

Type:

str

response

The model’s output text.

Type:

str

prompt_name

Optional name identifying the prompt template used.

Type:

str | None

timestamp

Unix timestamp of the interaction.

Type:

float

model

Model identifier used for generation.

Type:

str | None

history

Optional prior conversation context.

Type:

list[str] | None

prompt: str
response: str
prompt_name: NotRequired[str | None]
timestamp: NotRequired[float]
model: NotRequired[str | None]
history: NotRequired[list[str] | None]
clear() None.  Remove all items from D.
copy() a shallow copy of D
classmethod fromkeys(iterable, value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() an object providing a view on D's values
class PromptSpec[source]

Bases: TypedDict

Declarative specification for a single prompt within a batch or pipeline.

All fields are optional (total=False) allowing partial specs to be merged with defaults at runtime.

sequence

Execution order within the batch (0-indexed).

Type:

int

prompt_name

Human-readable name for the prompt.

Type:

str

prompt

The prompt text.

Type:

str

history

Prior conversation context to prepend.

Type:

list[str] | None

condition

Expression that must evaluate truthy for the prompt to run.

Type:

str | None

abort_condition

Expression that triggers batch abort after this prompt.

Type:

str | None

response_model

Pydantic model for structured output parsing.

Type:

type | None

system_instructions

System-level instructions override.

Type:

str | None

model

Model identifier override.

Type:

str | None

sequence: int
prompt_name: str
prompt: str
history: list[str] | None
condition: str | None
abort_condition: str | None
response_model: type | None
system_instructions: str | None
model: str | None
clear() None.  Remove all items from D.
copy() a shallow copy of D
classmethod fromkeys(iterable, value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() an object providing a view on D's values