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_verificationCreates a dense, entity-rich summary using Chain of Density prompting.
Creates a dense, entity-rich summary using Chain of Density prompting.
Asks the LLM and returns structured Clojure data with token usage and cost.
Asks the LLM and returns structured Clojure data with token usage and cost.
Builds a registry of referenced specs.
Builds a registry of referenced specs.
Cardinality: Vector of values.
Cardinality: Vector of values.
Serializes Clojure data to LLM-compatible string.
Serializes Clojure data to LLM-compatible string.
Field option: Human-readable field description.
Field option: Human-readable field description.
Evaluates an LLM output using LLM self-evaluation.
Evaluates an LLM output using LLM self-evaluation.
Creates a field definition for a spec.
Creates a field definition for a spec.
Default patterns for prompt injection detection.
Default patterns for prompt injection detection.
Default OpenAI moderation policies to check.
Default OpenAI moderation policies to check.
Field option: When true, marks field for humanization.
Field option: When true, marks field for humanization.
Recursively humanizes all strings in a data structure.
Recursively humanizes all strings in a data structure.
Removes AI-style phrases from text.
Removes AI-style phrases from text.
Aggressive humanization patterns: hedging, overused verbs/adjectives/nouns.
Aggressive humanization patterns: hedging, overused verbs/adjectives/nouns.
Safe humanization patterns: AI identity, refusal, knowledge, punctuation.
Safe humanization patterns: AI identity, refusal, knowledge, punctuation.
Creates a humanization function with optional custom patterns.
Creates a humanization function with optional custom patterns.
Creates an image attachment for use with user messages.
Creates an image attachment for use with `user` messages.
Spec option: Namespace prefix to add to keys during parsing.
Spec option: Namespace prefix to add to keys during parsing.
Creates a router from a vector of provider maps.
Creates a router from a vector of provider maps.
Fetches available models from the LLM API.
Fetches available models from the LLM API.
Creates a guard function that uses LLM to check content against policies.
Creates a guard function that uses LLM to check content against policies.
Field option: Field name as Datomic-style keyword.
Field option: Field name as Datomic-style keyword.
Iteratively refines LLM output using decomposition and verification.
Iteratively refines LLM output using decomposition and verification.
Field option: Whether field is required (default: true).
Field option: Whether field is required (default: true).
Resets the router's token/cost budget counters to zero.
Resets the router's token/cost budget counters to zero.
Manually resets a provider's circuit breaker to :closed.
Manually resets a provider's circuit breaker to :closed.
Returns cumulative + windowed stats for the router.
Returns cumulative + windowed stats for the router.
Generates test data samples matching a spec with self-correction.
Generates test data samples matching a spec with self-correction.
Creates a spec definition from field definitions.
Creates a spec definition from field definitions.
Generates LLM prompt from a spec.
Generates LLM prompt from a spec.
Creates a guard function that checks for prompt injection patterns.
Creates a guard function that checks for prompt injection patterns.
Parses LLM response string to Clojure data.
Parses LLM response string to Clojure data.
Parses LLM response with spec validation.
Parses LLM response with spec validation.
Field option: Reference target for :spec.type/ref fields.
Field option: Reference target for :spec.type/ref fields.
Type: Fixed-size double vector (1 element).
Type: Fixed-size double vector (1 element).
Type: Fixed-size double vector (10 elements).
Type: Fixed-size double vector (10 elements).
Type: Fixed-size double vector (11 elements).
Type: Fixed-size double vector (11 elements).
Type: Fixed-size double vector (12 elements).
Type: Fixed-size double vector (12 elements).
Type: Fixed-size double vector (2 elements).
Type: Fixed-size double vector (2 elements).
Type: Fixed-size double vector (3 elements).
Type: Fixed-size double vector (3 elements).
Type: Fixed-size double vector (4 elements).
Type: Fixed-size double vector (4 elements).
Type: Fixed-size double vector (5 elements).
Type: Fixed-size double vector (5 elements).
Type: Fixed-size double vector (6 elements).
Type: Fixed-size double vector (6 elements).
Type: Fixed-size double vector (7 elements).
Type: Fixed-size double vector (7 elements).
Type: Fixed-size double vector (8 elements).
Type: Fixed-size double vector (8 elements).
Type: Fixed-size double vector (9 elements).
Type: Fixed-size double vector (9 elements).
Type: Fixed-size int vector (1 element).
Type: Fixed-size int vector (1 element).
Type: Fixed-size int vector (10 elements).
Type: Fixed-size int vector (10 elements).
Type: Fixed-size int vector (11 elements).
Type: Fixed-size int vector (11 elements).
Type: Fixed-size int vector (12 elements).
Type: Fixed-size int vector (12 elements).
Type: Fixed-size int vector (2 elements).
Type: Fixed-size int vector (2 elements).
Type: Fixed-size int vector (3 elements).
Type: Fixed-size int vector (3 elements).
Type: Fixed-size int vector (4 elements).
Type: Fixed-size int vector (4 elements).
Type: Fixed-size int vector (5 elements).
Type: Fixed-size int vector (5 elements).
Type: Fixed-size int vector (6 elements).
Type: Fixed-size int vector (6 elements).
Type: Fixed-size int vector (7 elements).
Type: Fixed-size int vector (7 elements).
Type: Fixed-size int vector (8 elements).
Type: Fixed-size int vector (8 elements).
Type: Fixed-size int vector (9 elements).
Type: Fixed-size int vector (9 elements).
Type: Fixed-size string vector (1 element).
Type: Fixed-size string vector (1 element).
Type: Fixed-size string vector (10 elements).
Type: Fixed-size string vector (10 elements).
Type: Fixed-size string vector (11 elements).
Type: Fixed-size string vector (11 elements).
Type: Fixed-size string vector (12 elements).
Type: Fixed-size string vector (12 elements).
Type: Fixed-size string vector (2 elements).
Type: Fixed-size string vector (2 elements).
Type: Fixed-size string vector (3 elements).
Type: Fixed-size string vector (3 elements).
Type: Fixed-size string vector (4 elements).
Type: Fixed-size string vector (4 elements).
Type: Fixed-size string vector (5 elements).
Type: Fixed-size string vector (5 elements).
Type: Fixed-size string vector (6 elements).
Type: Fixed-size string vector (6 elements).
Type: Fixed-size string vector (7 elements).
Type: Fixed-size string vector (7 elements).
Type: Fixed-size string vector (8 elements).
Type: Fixed-size string vector (8 elements).
Type: Fixed-size string vector (9 elements).
Type: Fixed-size string vector (9 elements).
Field option: Set of allowed nil types.
Field option: Set of allowed nil types.
Creates a user message, optionally with images.
Creates a user message, optionally with images.
Validates parsed data against a spec.
Validates parsed data against a spec.
Field option: Enum values as map {value description}.
Field option: Enum values as map {value description}.
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 |