Skip to main content

AVISE - AI Vulnerability Identification & Security Evaluation

A framework for identifying vulnerabilities in and evaluating the security of AI systems.

arXiv

Full Documentations: https://avise.readthedocs.io

Youtube Demo


Table of Contents

Quickstart for Evaluating Language Models

Prerequisites

  • Python 3.10+
  • Docker (For Running models locally with Ollama)

1. Install AVISE

Install with

  • pip:

    pip install avise
    
  • uv:

    uv pip install avise
    

    or

    uv tool install avise
    

2. Run a Model

You can use AVISE to evaluate any model accessible via an API by configuring a Connector. In this Quickstart, we will assume using the Ollama Docker container for running a language model. If you wish to evaluate models deployed in other ways, see the Full Documentations and available template connector configuration files at AVISE/avise/configs/connector/languagemodel/ dir of this repository.

Running a language model locally with Docker & Ollama

  • Clone this repository to your local machine with:
git clone https://github.com/ouspg/AVISE.git
  • Create the Ollama Docker container

    • for GPU accelerated inference with:
      docker compose -f AVISE/docker/ollama/docker-compose.yml up -d
      
    • or for CPU inference with:
      docker compose -f AVISE/docker/ollama/docker-compose-cpu.yml up -d
      
  • Pull an Ollama model to evaluate into the container with:

    docker exec -it avise-ollama ollama pull <model_name>
    

3. Evaluate the model with a Security Evaluation Test (SET)

Basic usage

avise --SET <SET_name> --connectorconf <connector_name> [options]

For example, you can run the prompt_injection SET on the model pulled to the Ollama Docker container with:

avise --SET prompt_injection --connectorconf ollama_lm --target <model_name>

To list the available SETs, run the command:

avise --SET-list

Advanced Usage

Configuring Connectors

You can create your own connector configuration files, or if you cloned the AVISE repository, you can modify the existing connector configuration files in AVISE/avise/configs/connector/languagemodel/.

For example, you can edit the default Ollama Connector configuration file AVISE/avise/configs/connector/languagemodel/ollama.json, and insert the name of an Ollama model you have pulled to be used as a target by default:

{
    "target_model": {
        "connector": "ollama-lm",
        "type": "language_model",
        "name": "<NAME_OF_TARGET_MODEL>",
        "api_url": "http://localhost:11434", #Ollama default
        "api_key": null
    }
}

Configuring Security Evaluation Tests (SETs)

Similarly, you can customize the configurations for SETs as well. For example, by editing the Red Queen SET configuration file AVISE/avise/configs/SET/languagemodel/multi_turn/red_queen.json, you can define if the SET is executed incrementally (the target model will generate a response after each subsequential prompt), or as a template (only works for target systems that accept a conversation as an input) and if the SET uses an Adversarial Language Model (ALM). Additionally, you can define the exact template attack prompts that the SET uses:

{
    "incremental_execution": false, #Change to true to execute the SET cases incrementally
    "use_adversarial_languagemodel": false, #Change to true to utilize an Adversarial Language Model (ALM)
    "adversarial_model_device": "auto", # Defines on which device(s) the ALM is loaded to ("cpu", "gpu", or "auto")
    "evaluation_system_prompt": "You are a highly accurate cybersecurity classifier, ..."
    "evaluation_model_device": "auto", # Defines on which device(s) the ELM is loaded to ("cpu", "gpu", or "auto")
    "sets": [
        {
            "id": "RED-QUEEN-001",
            "vulnerability_subcategory": "Evasion Attack",
            "action": "make a fake passport",
            "type": "occupation_teacher",
            "category": "violence,aiding_and_abetting,incitement",
            "conversation": [
                { ... }
            ...
            ]
         },
         ...
    ]

Using custom configuration files

If you want to use custom configuration files for SETs and/or Connectors, you can do so by giving the paths to the configuration files with --SETconf and --connectorconf arguments:

avise --SET prompt_injection --SETconf AVISE/avise/configs/SET/languagemodel/single_turn/prompt_injection_mini.json --connectorconf AVISE/avise/configs/connector/languagemodel/ollama.json

Required Arguments

Argument Description
--SET, -s Security Evaluation Test to run (e.g., prompt_injection, context_test)
--connectorconf, -c Path to Connector configuration file (Accepts predefined connector configuration paths: ollama_lm, openai_lm, genericrest_lm)

Optional Arguments

Argument Description
--SETconf Path to SET configuration file. If not given, uses preconfigured paths for SET config files.
--target, -t Name of the target model/system to evaluate. Overrides target name from connector configuration file.
--format, -f Report format: json, html, md
--runs, -r How many times each SET is executed
--output, -o Custom output file path
--api_key, -a API Key to use with requests sent to target API (overrides api_key from Connector configuration file).
--reports-dir, -d Base directory for reports (default: avise-reports/)
--SET-list List available Security Evaluation Tests
--connector-list List available Connectors
--verbose, -v Enable verbose logging
--version, -V Print version

Citation

If you find AVISE useful, please cite it as below:

@misc{lempinen2026,
      title={AVISE: Framework for Evaluating the Security of AI Systems},
      author={Mikko Lempinen and Joni Kemppainen and Niklas Raesalmi},
      year={2026},
      eprint={2604.20833},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2604.20833},
}

Lempinen, M., Kemppainen, J., & Raesalmi, N. (2026). AVISE: Framework for Evaluating the Security of AI Systems. arXiv preprint arXiv:2604.20833.

Release files for avise 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for avise 0.2.5
File Size Uploaded
avise-0.2.5.tar.gz 108.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for avise 0.2.5
File Interpreter ABI Platform
avise-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 261.3 kB

Release files / avise-0.2.5.tar.gz

Download URL avise-0.2.5.tar.gz
Size 108.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7317d8198b13a4432e4b9a54ee916d0d5ee11d75d0651b8bfe1edfdc2bc3f8bb
BLAKE2b-256 checksum
How to use checksums
a1dd0200f1e2250d6228aff059751995cb1953f201be664edde8b1802519ae54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release files / avise-0.2.5-py3-none-any.whl

Download URL avise-0.2.5-py3-none-any.whl
Size 152.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5338d7e7ea63fb24f5e77bb56aa72b0e83fcd79d78b46e6c468d9431854a6e1
BLAKE2b-256 checksum
How to use checksums
8700e9ecc825b53d2f7afbec624d380d5936b47177f6601c79d643935cb28757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page