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:
ScoreScore 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_modelat the procedure level. Individual classifiers inherit it, or can override with their ownmodelparameter.- 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:
ParametersConfiguration 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.