plexus.scores.TactusScore module

TactusScore - Score implementation that executes Tactus DSL code.

Tactus is a Lua-based DSL for defining AI agent workflows. This score type allows embedding Tactus code directly in YAML configuration for classification.

Uses the Tactus runtime with in-process execution (no Docker containers) for high-volume Plexus scenarios with trusted code.

class plexus.scores.TactusScore.TactusScore(**parameters)

Bases: Score

Score that executes embedded Tactus DSL code for classification.

Uses Tactus runtime with in-process execution (no containers) for high-volume Plexus scenarios with trusted code.

The model is specified inside the Lua code via default_model at the procedure level. Individual classifiers inherit it, or can override with their own model parameter.

Example YAML:

class: TactusScore code: |

default_model “openai/gpt-5.4-nano” ClassifyProcedure {

classes = {“YES”, “NO”}, system_message = [[

Classification instructions… ]],

user_message = [[

Analyze: <transcript>{{ text }}</transcript> ]] }

Initialize TactusScore with Tactus code.

class Parameters(*, scorecard_name: str | None = None, name: str | None = None, id: str | int | None = None, key: str | None = None, dependencies: List[dict] | None = None, data: dict | None = None, number_of_classes: int | None = None, label_score_name: str | None = None, label_field: str | None = None, validation: ValidationConfig | None = None, code: str, valid_classes: List[str] | None = None, output: Dict[str, str] | None = None, model_provider: str | None = None, model_name: str | None = None, base_model_name: str | None = None, max_tokens: int | None = None, temperature: float | None = None, top_p: float | None = None, reasoning_effort: str | None = None, verbosity: str | None = None, model_region: str | None = None, logprobs: bool | None = None, top_logprobs: int | None = None, parse_from_start: bool | None = None)

Bases: Parameters

Configuration parameters for TactusScore.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

base_model_name: str | None
code: str
classmethod handle_tactus_code_fallback(data)

Accept ‘tactus_code’ as a fallback for ‘code’ during transition.

logprobs: bool | None
max_tokens: int | None
model_config = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_name: str | None
model_provider: str | None
model_region: str | None
output: Dict[str, str] | None
parse_from_start: bool | None
reasoning_effort: str | None
temperature: float | None
top_logprobs: int | None
top_p: float | None
valid_classes: List[str] | None
verbosity: str | None
__init__(**parameters)

Initialize TactusScore with Tactus code.

async classmethod create(**parameters) TactusScore

Factory method for async initialization.

async predict(model_input: ScoreInput, **_kwargs: Any) Result | List[Result]

Execute Tactus procedure and return classification result.

Parameters

model_inputScore.Input

The input data containing text and metadata

Returns

Score.Result

The prediction result with value and explanation