Skip to content

Schemas

Pydantic data models used across the AXIS backend.

Core Schemas

Classes

DataFormat

Bases: StrEnum

Supported evaluation data formats.

UploadResponse

Bases: BaseModel

Response after uploading evaluation data.

DataFormatResponse

Bases: BaseModel

Response for data format detection.

DataPreviewResponse

Bases: BaseModel

Preview of uploaded data with column info.

MetricSummary

Bases: BaseModel

Summary statistics for a single metric.

SummaryResponse

Bases: BaseModel

Aggregated summary of all metrics.

DistributionStats

Bases: BaseModel

Descriptive statistics for a metric distribution.

Histogram

Bases: BaseModel

Histogram bin counts and edges.

DistributionResponse

Bases: BaseModel

Full distribution data for a single metric.

EvaluationRecord

Bases: BaseModel

A single evaluation record with input/output fields.

Classes

Config

Pydantic config allowing extra fields.

TreeMetric

Bases: BaseModel

A metric in the tree-format evaluation structure.

Annotation

Bases: BaseModel

A human annotation on an evaluation record.

Persona

Bases: BaseModel

A simulation persona with traits.

SimulationConfig

Bases: BaseModel

Configuration for running a simulation.

SimulationResult

Bases: BaseModel

Result of a single simulation run.

CalibrationResult

Bases: BaseModel

Inter-annotator agreement calibration results.

ChatMessage

Bases: BaseModel

A single chat message.

AnalysisInsight

Bases: BaseModel

An automated insight from data analysis.

Database Schemas

Classes

SSLMode

Bases: StrEnum

Database SSL connection modes.

DatabaseConnectionRequest

Bases: BaseModel

Request to connect to a database.

Functions

validate_host(v) classmethod

Validate host is not empty.

Source code in backend/app/models/database_schemas.py
@field_validator("host")
@classmethod
def validate_host(cls, v: str) -> str:
    """Validate host is not empty."""
    if not v or not v.strip():
        raise ValueError("Host cannot be empty")
    return v.strip()
validate_database(v) classmethod

Validate database name is not empty.

Source code in backend/app/models/database_schemas.py
@field_validator("database")
@classmethod
def validate_database(cls, v: str) -> str:
    """Validate database name is not empty."""
    if not v or not v.strip():
        raise ValueError("Database name cannot be empty")
    return v.strip()
validate_username(v) classmethod

Validate username is not empty.

Source code in backend/app/models/database_schemas.py
@field_validator("username")
@classmethod
def validate_username(cls, v: str) -> str:
    """Validate username is not empty."""
    if not v or not v.strip():
        raise ValueError("Username cannot be empty")
    return v.strip()
validate_port(v) classmethod

Validate port is in valid range.

Source code in backend/app/models/database_schemas.py
@field_validator("port")
@classmethod
def validate_port(cls, v: int) -> int:
    """Validate port is in valid range."""
    if v < 1 or v > 65535:
        raise ValueError("Port must be between 1 and 65535")
    return v

ConnectResponse

Bases: BaseModel

Response from a successful database connection.

TableIdentifier

Bases: BaseModel

Identifier for a database table.

Functions

validate_name(v) classmethod

Validate table name is not empty.

Source code in backend/app/models/database_schemas.py
@field_validator("name")
@classmethod
def validate_name(cls, v: str) -> str:
    """Validate table name is not empty."""
    if not v or not v.strip():
        raise ValueError("Table name cannot be empty")
    return v.strip()

TableInfo

Bases: BaseModel

Information about a database table.

TablesListResponse

Bases: BaseModel

Response containing list of tables.

ColumnInfo

Bases: BaseModel

Information about a table column.

TableSchemaResponse

Bases: BaseModel

Response containing table schema information.

ColumnMapping

Bases: BaseModel

Mapping from source DB column to target AXIS column.

Supported target columns: - dataset_id, query, actual_output, expected_output - retrieved_content, conversation, additional_input, document_text - actual_reference, expected_reference - tools_called, expected_tools, acceptance_criteria - latency, trace_id, observation_id

FilterCondition

Bases: BaseModel

Simple equality filter condition.

DatabaseImportRequest

Bases: BaseModel

Request to import data from database.

Functions

validate_limit(v) classmethod

Validate limit is within bounds.

Source code in backend/app/models/database_schemas.py
@field_validator("limit")
@classmethod
def validate_limit(cls, v: int) -> int:
    """Validate limit is within bounds."""
    if v < 1:
        raise ValueError("Limit must be at least 1")
    if v > 10000:
        raise ValueError("Limit cannot exceed 10000 rows")
    return v

PreviewRequest

Bases: BaseModel

Request to preview data from database.

PreviewResponse

Bases: BaseModel

Response containing preview data.

DistinctValuesRequest

Bases: BaseModel

Request to get distinct values for a column.

DistinctValuesResponse

Bases: BaseModel

Response containing distinct values.

DatabaseDefaults

Bases: BaseModel

Default database connection values from config.

QueryPreviewRequest

Bases: BaseModel

Request to preview results of a SQL query.

Functions

validate_query(v) classmethod

Validate query is safe.

Source code in backend/app/models/database_schemas.py
@field_validator("query")
@classmethod
def validate_query(cls, v: str) -> str:
    """Validate query is safe."""
    return _validate_sql_query(v)
validate_limit(v) classmethod

Validate limit is within bounds.

Source code in backend/app/models/database_schemas.py
@field_validator("limit")
@classmethod
def validate_limit(cls, v: int) -> int:
    """Validate limit is within bounds."""
    if v < 1:
        raise ValueError("Limit must be at least 1")
    if v > 100:
        raise ValueError("Preview limit cannot exceed 100 rows")
    return v

QueryImportRequest

Bases: BaseModel

Request to import data from a SQL query.

Functions

validate_query(v) classmethod

Validate query is safe.

Source code in backend/app/models/database_schemas.py
@field_validator("query")
@classmethod
def validate_query(cls, v: str) -> str:
    """Validate query is safe."""
    return _validate_sql_query(v)
validate_limit(v) classmethod

Validate limit is within bounds.

Source code in backend/app/models/database_schemas.py
@field_validator("limit")
@classmethod
def validate_limit(cls, v: int) -> int:
    """Validate limit is within bounds."""
    if v < 1:
        raise ValueError("Limit must be at least 1")
    if v > 50000:
        raise ValueError("Import limit cannot exceed 50000 rows")
    return v

Evaluation Runner Schemas

Classes

AgentType

Bases: StrEnum

Type of agent connection for generating outputs.

LLMProvider

Bases: StrEnum

Supported LLM providers for evaluation metrics.

MetricInfo

Bases: BaseModel

Information about an available evaluation metric.

MetricsResponse

Bases: BaseModel

Response with available metrics.

ColumnMapping

Bases: BaseModel

Mapping of canonical field names to actual column names in the dataset.

DatasetInfo

Bases: BaseModel

Information about an uploaded dataset.

UploadResponse

Bases: BaseModel

Response from dataset upload.

AgentAPIConfig

Bases: BaseModel

Configuration for Agent API connection.

PromptTemplateConfig

Bases: BaseModel

Configuration for LLM prompt template.

AgentConfig

Bases: BaseModel

Configuration for agent connection.

TestConnectionRequest

Bases: BaseModel

Request to test agent connection.

TestConnectionResponse

Bases: BaseModel

Response from testing agent connection.

DatasetConfig

Bases: BaseModel

Dataset configuration including column mapping and data.

EvaluationRunRequest

Bases: BaseModel

Request to run an evaluation.

MetricResult

Bases: BaseModel

Result for a single metric across all items.

ItemResult

Bases: BaseModel

Result for a single evaluation item.

EvaluationSummary

Bases: BaseModel

Summary of evaluation results.

EvaluationResultResponse

Bases: BaseModel

Full response from completed evaluation.

ProgressEvent

Bases: BaseModel

Progress update during evaluation.

LogEvent

Bases: BaseModel

Log message during evaluation.

CompleteEvent

Bases: BaseModel

Completion event with results.

ErrorEvent

Bases: BaseModel

Error event during evaluation.

Memory Schemas

Classes

RuleRecord

Bases: BaseModel

A single extracted rule. Only id is typed; all other role-keyed fields are extras.

ActionCount

Bases: BaseModel

Count of rules per action type.

ProductCount

Bases: BaseModel

Count of rules per product type.

SummaryResponse

Bases: BaseModel

Summary statistics for the rule memory.

RulesResponse

Bases: BaseModel

Paginated list of rules with available filters.

QualityResponse

Bases: BaseModel

Decision quality breakdown into aligned, divergent, and partial.

SoftThresholdsResponse

Bases: BaseModel

Rules with soft thresholds.

HardStopsResponse

Bases: BaseModel

Rules classified as hard stops.

BatchInfo

Bases: BaseModel

Metadata for a single extraction batch.

BatchesResponse

Bases: BaseModel

List of extraction batches.

TraceResponse

Bases: BaseModel

Trace detail for a single rule — all fields are dynamic.

ConflictInfo

Bases: BaseModel

Information about conflicting rules for a risk factor.

ConflictsResponse

Bases: BaseModel

Response containing detected rule conflicts.

StatusCountsResponse

Bases: BaseModel

Counts of rules grouped by ingestion status.

RuleCreateRequest

Bases: BaseModel

Create a new rule — accepts any role-keyed fields.

RuleUpdateRequest

Bases: BaseModel

Partial update for a rule — only provided fields are changed.

RuleUpdateResponse

Bases: BaseModel

Response after creating or updating a rule.

RuleDeleteResponse

Bases: BaseModel

Response after deleting a rule.

MemoryUploadResponse

Bases: BaseModel

Response after uploading memory data.

Graph Schemas

Classes

GraphNode

Bases: BaseModel

A node in the knowledge graph.

GraphEdge

Bases: BaseModel

An edge in the knowledge graph.

GraphData

Bases: BaseModel

Full graph payload with nodes and edges.

GraphResponse

Bases: BaseModel

API response wrapping graph data.

GraphSearchResult

Bases: BaseModel

A single search result from the graph.

GraphSearchResponse

Bases: BaseModel

API response for graph search.

GraphNeighborhoodResponse

Bases: BaseModel

API response for a node's neighborhood subgraph.

GraphSummaryResponse

Bases: BaseModel

API response for graph summary statistics.

GraphStatusResponse

Bases: BaseModel

API response for graph connection health check.

Alignment Schemas

Classes

LLMProvider

Bases: StrEnum

Supported LLM providers.

FewShotExample

Bases: BaseModel

A few-shot example for the judge prompt.

JudgeConfig

Bases: BaseModel

Configuration for the LLM judge.

AlignmentMetrics

Bases: BaseModel

Computed alignment metrics between human and LLM scores.

AlignmentResult

Bases: BaseModel

Result for a single evaluated record.

EvaluationRequest

Bases: BaseModel

Request to run LLM evaluation on a dataset.

EvaluationResponse

Bases: BaseModel

Response from running LLM evaluation.

MetricsRequest

Bases: BaseModel

Request to calculate alignment metrics.

MetricsResponse

Bases: BaseModel

Response with computed alignment metrics.

MisalignmentPattern

Bases: BaseModel

A pattern identified in misaligned cases.

MisalignmentAnalysis

Bases: BaseModel

Analysis of misalignment patterns.

MisalignmentAnalysisRequest

Bases: BaseModel

Request to analyze misalignment patterns.

MisalignmentAnalysisResponse

Bases: BaseModel

Response with misalignment analysis.

PromptSuggestion

Bases: BaseModel

A suggested improvement to the judge prompt.

OptimizedPrompt

Bases: BaseModel

Optimized prompt with suggestions.

OptimizePromptRequest

Bases: BaseModel

Request to optimize the judge prompt.

OptimizePromptResponse

Bases: BaseModel

Response with optimized prompt.

ExampleSelectionStrategy

Bases: StrEnum

Strategy for selecting few-shot examples.

SuggestExamplesRequest

Bases: BaseModel

Request to suggest few-shot examples.

SuggestExamplesResponse

Bases: BaseModel

Response with suggested few-shot examples.

ModelInfo

Bases: BaseModel

Information about an available LLM model.

ModelsResponse

Bases: BaseModel

Response with available models.

SavedConfig

Bases: BaseModel

A saved judge configuration.

SaveConfigRequest

Bases: BaseModel

Request to save a judge configuration.

SaveConfigResponse

Bases: BaseModel

Response after saving configuration.

ConfigsListResponse

Bases: BaseModel

Response with list of saved configurations.

ClusteringMethod

Bases: StrEnum

Method for clustering annotation patterns.

AnnotationWithNotes

Bases: BaseModel

Annotation with optional notes for Truesight pattern discovery.

ErrorPattern

Bases: BaseModel

AI-clustered error pattern from annotation notes.

LearningArtifactSchema

Bases: BaseModel

A distilled learning artifact from the EvidencePipeline.

PipelineResultSchema

Bases: BaseModel

Metadata from the EvidencePipeline run.

ClusterPatternsRequest

Bases: BaseModel

Request to cluster annotation notes into patterns.

ClusterPatternsResponse

Bases: BaseModel

Response with clustered patterns.

Report Schemas

Classes

InsightPatternSchema

Bases: BaseModel

A cross-metric pattern discovered from evaluation issues.

InsightResultSchema

Bases: BaseModel

Structured insight result from InsightExtractor analysis.