Allure 3 reporter for Lazytest.
Writes JSON result files to allure-results/, then optionally generates the full HTML report to allure-report/ using Allure 3 CLI (pinned to 3.2.0 via npx).
Usage: clojure -M:test --output com.blockether.svar.allure-reporter/allure clojure -M:test --output nested --output com.blockether.svar.allure-reporter/allure
Output directory defaults to allure-results/. Override with: -Dlazytest.allure.output=path/to/dir LAZYTEST_ALLURE_OUTPUT=path/to/dir
Allure 3 reporter for Lazytest. Writes JSON result files to allure-results/, then optionally generates the full HTML report to allure-report/ using Allure 3 CLI (pinned to 3.2.0 via npx). Usage: clojure -M:test --output com.blockether.svar.allure-reporter/allure clojure -M:test --output nested --output com.blockether.svar.allure-reporter/allure Output directory defaults to allure-results/. Override with: -Dlazytest.allure.output=path/to/dir LAZYTEST_ALLURE_OUTPUT=path/to/dir
LLM interaction utilities for structured and unstructured outputs.
SVAR = Structured Validated Automated Reasoning
Provides main functions:
ask! - Structured output using the spec DSLabstract! - Text summarization using Chain of Density promptingeval! - LLM self-evaluation for reliability and accuracy assessmentrefine! - Iterative refinement using decomposition and verificationmodels! - Fetch available models from the LLM APIsample! - Generate test data samples matching a specGuardrails:
static-guard - Pattern-based prompt injection detectionmoderation-guard - LLM-based content moderationguard - Run one or more guards on inputHumanization:
humanize-string - Strip AI-style phrases from texthumanize-data - Humanize string values in data structureshumanizer - Create a reusable humanizer functionRe-exports spec DSL (field, spec, str->data, str->data-with-spec,
data->str, validate-data, spec->prompt, build-ref-registry),
and make-router so users can require only this namespace.
Configuration: LLM calls route automatically via the default router.
Example: (ask! {:spec my-spec :messages [(system "Help the user.") (user "What is 2+2?")] :model "gpt-4o"})
References:
LLM interaction utilities for structured and unstructured outputs.
SVAR = Structured Validated Automated Reasoning
Provides main functions:
- `ask!` - Structured output using the spec DSL
- `abstract!` - Text summarization using Chain of Density prompting
- `eval!` - LLM self-evaluation for reliability and accuracy assessment
- `refine!` - Iterative refinement using decomposition and verification
- `models!` - Fetch available models from the LLM API
- `sample!` - Generate test data samples matching a spec
Guardrails:
- `static-guard` - Pattern-based prompt injection detection
- `moderation-guard` - LLM-based content moderation
- `guard` - Run one or more guards on input
Humanization:
- `humanize-string` - Strip AI-style phrases from text
- `humanize-data` - Humanize string values in data structures
- `humanizer` - Create a reusable humanizer function
Re-exports spec DSL (`field`, `spec`, `str->data`, `str->data-with-spec`,
`data->str`, `validate-data`, `spec->prompt`, `build-ref-registry`),
and `make-router` so users can require only this namespace.
Configuration:
LLM calls route automatically via the default router.
Example:
(ask! {:spec my-spec
:messages [(system "Help the user.")
(user "What is 2+2?")]
:model "gpt-4o"})
References:
- Chain of Density: https://arxiv.org/abs/2309.04269
- LLM Self-Evaluation: https://learnprompting.org/docs/reliability/lm_self_eval
- DuTy: https://learnprompting.org/docs/advanced/decomposition/duty-distinct-chain-of-thought
- CoVe: https://learnprompting.org/docs/advanced/self_criticism/chain_of_verificationInput guardrails for LLM interactions.
Provides factory functions that create guards to validate user input:
static - Pattern-based detection of prompt injection attemptsmoderation - LLM-based content policy violation detection (requires :ask-fn)guard - Runs one or more guards on inputGuards are functions that take input and return it unchanged on success, or throw ExceptionInfo on violation.
Usage: (require '[com.blockether.svar.core :as svar]) (def my-guards [(static) (moderation {:ask-fn svar/ask! :policies #{:hate}})]) (-> user-input (guard my-guards) (svar/ask! ...))
Input guardrails for LLM interactions.
Provides factory functions that create guards to validate user input:
- `static` - Pattern-based detection of prompt injection attempts
- `moderation` - LLM-based content policy violation detection (requires :ask-fn)
- `guard` - Runs one or more guards on input
Guards are functions that take input and return it unchanged on success,
or throw ExceptionInfo on violation.
Usage:
(require '[com.blockether.svar.core :as svar])
(def my-guards [(static)
(moderation {:ask-fn svar/ask! :policies #{:hate}})])
(-> user-input
(guard my-guards)
(svar/ask! ...))AI response humanization module.
Removes AI-style phrases and patterns from LLM outputs to make responses sound more natural and human-like.
Two tiers of patterns:
AI response humanization module. Removes AI-style phrases and patterns from LLM outputs to make responses sound more natural and human-like. Two tiers of patterns: - SAFE_PATTERNS (default): AI identity, refusal, knowledge, punctuation. Unambiguously AI-generated; safe for arbitrary text. - AGGRESSIVE_PATTERNS (opt-in): hedging, overused verbs/adjectives/nouns, opening/closing cliches. May match valid English in non-AI text.
Wrapper for the JsonishParser Java class.
Provides SAP (Schemaless Adaptive Parsing) for malformed JSON from LLMs. Handles unquoted keys/values, trailing commas, markdown code blocks, etc.
Wrapper for the JsonishParser Java class. Provides SAP (Schemaless Adaptive Parsing) for malformed JSON from LLMs. Handles unquoted keys/values, trailing commas, markdown code blocks, etc.
LLM client layer: HTTP transport, message construction, and all LLM interaction functions (ask!, abstract!, eval!, refine!, models!, sample!).
LLM client layer: HTTP transport, message construction, and all LLM interaction functions (ask!, abstract!, eval!, refine!, models!, sample!).
Router: provider/model registry, circuit breakers, rate limiting, budget tracking, and routing resolution.
Extracted from defaults.clj (provider/model metadata) and llm.clj (routing logic) to provide a single cohesive namespace for all routing concerns.
Router: provider/model registry, circuit breakers, rate limiting, budget tracking, and routing resolution. Extracted from defaults.clj (provider/model metadata) and llm.clj (routing logic) to provide a single cohesive namespace for all routing concerns.
Structured output specification system for LLM responses.
This namespace provides a DSL for defining expected output structures, converting specs to LLM prompts, and parsing LLM responses back to Clojure data.
Primary functions:
field - Define a field with name, type, cardinality, and descriptionspec - Create a spec from field definitionsbuild-ref-registry - Build a registry of referenced specs for nested typesspec->prompt - Generate LLM prompt text from a spec (sent to LLM)str->data - Parse LLM response string to Clojure data (schemaless)str->data-with-spec - Parse LLM response with spec-based type coercionvalidate-data - Validate parsed data against a specdata->str - Serialize Clojure data to JSON stringData Flow:
spec and field functionsspec->prompt (sent to LLM)str->data-with-spec (LLM response -> typed Clojure map)validate-datadata->strStructured output specification system for LLM responses. This namespace provides a DSL for defining expected output structures, converting specs to LLM prompts, and parsing LLM responses back to Clojure data. Primary functions: - `field` - Define a field with name, type, cardinality, and description - `spec` - Create a spec from field definitions - `build-ref-registry` - Build a registry of referenced specs for nested types - `spec->prompt` - Generate LLM prompt text from a spec (sent to LLM) - `str->data` - Parse LLM response string to Clojure data (schemaless) - `str->data-with-spec` - Parse LLM response with spec-based type coercion - `validate-data` - Validate parsed data against a spec - `data->str` - Serialize Clojure data to JSON string Data Flow: 1. Define spec with `spec` and `field` functions 2. Generate prompt with `spec->prompt` (sent to LLM) 3. Parse response with `str->data-with-spec` (LLM response -> typed Clojure map) 4. Optionally validate with `validate-data` 5. Optionally serialize with `data->str`
Shared internal utilities.
Shared internal utilities.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |