Skip to content
GitHub

AI Evaluation (lexigram-ai-evaluation)

AI Evaluation framework for the Lexigram Framework.


AI Evaluation framework for the Lexigram Framework. Provides evaluators harness, and metrics — all wired through the DI container via EvaluationModule. Zero-config usage starts with sensible defaults.

Terminal window
uv add lexigram-ai-evaluation
from lexigram import Application
from lexigram.di.module import Module, module
from lexigram.ai.evaluation import EvaluationModule
from lexigram.ai.evaluation.config import EvaluationConfig
@module(imports=[
EvaluationModule.configure(
EvaluationConfig(default_threshold=0.8)
)
])
class AppModule(Module):
pass
async with Application.boot(modules=[AppModule]) as app:
# use app.container to resolve services
...

Zero-config usage: Call EvaluationModule.configure() with no arguments to use defaults.

application.yaml
ai_evaluation:
enabled: true
default_threshold: 0.8
embedding_model: "text-embedding-3-small"
Section titled “Option 2 — Profiles + Environment Variables (recommended)”
Terminal window
export LEX_AI_EVALUATION__DEFAULT_THRESHOLD=0.8
# Environment variables for each field
from lexigram.ai.evaluation.config import EvaluationConfig
from lexigram.ai.evaluation import EvaluationModule
config = EvaluationConfig(
default_threshold=0.8,
embedding_model="text-embedding-3-small",
)
EvaluationModule.configure(config)
FieldDefaultEnv varDescription
enabledTrueLEX_AI_EVALUATION__ENABLEDEnable the evaluation subsystem
default_threshold0.8LEX_AI_EVALUATION__DEFAULT_THRESHOLDScore threshold for passing
embedding_modeltext-embedding-3-smallLEX_AI_EVALUATION__EMBEDDING_MODELModel for embedding evaluations
include_metadataTrueLEX_AI_EVALUATION__INCLUDE_METADATAInclude metadata in reports
max_samplesNoneLEX_AI_EVALUATION__MAX_SAMPLESMax samples per run
max_retries3LEX_AI_EVALUATION__MAX_RETRIESMax retries for failed evaluations
timeout_seconds30LEX_AI_EVALUATION__TIMEOUT_SECONDSExecution timeout
MethodDescription
EvaluationModule.configure(config)Configure with explicit settings
EvaluationModule.stub()No-op for testing
  • 5 evaluator types: Criteria, QA, Embedding Distance, String Distance, Trajectory
  • Evaluation harness: Run datasets against models with configurable evaluators
  • Metrics: Pass/fail, score-based, and threshold evaluation
  • Embedding support: Semantic similarity via embeddings
async with Application.boot(modules=[EvaluationModule.stub()]) as app:
# your test code
...
FileWhat it contains
src/lexigram/ai/evaluation/module.pyEvaluationModule.configure() and EvaluationModule.stub()
src/lexigram/ai/evaluation/config.pyEvaluationConfig
src/lexigram/ai/evaluation/di/provider.pyEvaluationProvider — registers and boots
src/lexigram/ai/evaluation/evaluators/Evaluator implementations
src/lexigram/ai/evaluation/harness/Evaluation harness and runner
src/lexigram/ai/evaluation/exceptions.pyFull exception hierarchy