Skip to main content

Abliteration

The abliteration: provider connects Promptfoo to Abliteration's OpenAI-compatible chat-completions API.

Safety

These models are modified to reduce refusals. Review outputs before using them in applications, and follow the applicable model licenses.

Setup

  1. Create an API key in the Abliteration console.

  2. Set it in your shell:

    export ABLIT_KEY=your-key-here

Environment Variables

VariableDescription
ABLIT_KEYAPI key sent as the bearer token. Required unless apiKey is set in the provider config.
ABLIT_API_BASE_URLOverride for the chat-completions base URL. Defaults to https://api.abliteration.ai/v1.

Provider config values take precedence over environment variables.

Models

Model IDInputContext window
abliterated-model-large-v2Text1,000,000 tokens
abliterated-model-largeText1,000,000 tokens
abliterated-modelText, images, video262,144 tokens

Large V2 is based on GLM-5.3. Context windows include input and output tokens. See Abliteration's model reference for current limits and capabilities.

Basic Configuration

promptfooconfig.yaml
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
prompts:
- '{{question}}'

providers:
- id: abliteration:abliterated-model-large-v2
config:
reasoning_effort: low
max_tokens: 16384

tests:
- vars:
question: 'Which CWE describes SQL injection? Return only the CWE identifier.'
assert:
- type: equals
value: CWE-89

Run the eval:

npx promptfoo@latest eval --no-cache

abliteration:<model> is the default syntax; abliteration:chat:<model> is also supported.

Reasoning

For Large V2, set reasoning_effort to low, high, or max. Omitting it uses the API's default, max. Set max_tokens explicitly for reasoning workloads, as in the example above.

Large V2 always reasons. none selects low effort and hides the trace. On abliterated-model and abliterated-model-large, none disables reasoning. See the reasoning guide for the other accepted effort aliases and their model-specific behavior.

Promptfoo grades only the final answer by default. Set showThinking: true to include the reasoning trace in the output sent to assertions.

To omit the trace from the API response, use:

config:
reasoning_effort: low
passthrough:
include_reasoning: false

Hiding the trace does not reduce reasoning token usage.

OpenAI Compatibility

Sampling parameters, tool calling, and structured output use the same configuration as the OpenAI provider.

Multimodal Example

Use abliterated-model for images and video. Both large models accept text only. This image example disables reasoning with none.

prompt.json
[
{
"role": "user",
"content": [
{ "type": "text", "text": "{{question}}" },
{
"type": "image_url",
"image_url": { "url": "https://abliteration.ai/stonehenge.jpg" }
}
]
}
]
promptfooconfig.yaml
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
prompts:
- file://prompt.json

providers:
- id: abliteration:abliterated-model
config:
reasoning_effort: none
temperature: 0.2
max_tokens: 512

tests:
- vars:
question: "What's in this image?"
assert:
- type: icontains
value: stonehenge