Quickstart

1

Prerequisites

  • Python 3.11+

  • A Qualys CSV export (place it in the input directory; default is Insumos/Reports/)

  • An OpenAI API key (recommended via environment variable):

    • OPENAI_API_KEY

If you only want to test ingestion/output structure without calling the LLM, you can run with --dry-run (see below).

2

Install (local)

Create and activate a virtual environment, then install the package in editable mode:

python -m venv .venv
.\.venv\Scripts\activate
pip install -U pip
pip install -e .
3

Create your config

Copy the example config:

  • Copy config/config.example.yamlconfig/config.yaml

Then set at least:

  • app.language (for example en-US)

  • input.input_dir (where your Qualys CSV files are)

  • input.file_glob (for example *.csv)

4

Set your OpenAI key

In PowerShell (Windows):

$env:OPENAI_API_KEY="YOUR_KEY_HERE"
5

Validate config and list inputs

miyabi-qualys-ai-triage-pack validate-config --config config/config.yaml
miyabi-qualys-ai-triage-pack list-inputs --config config/config.yaml

If list-inputs shows no files, confirm your input.input_dir and input.file_glob.

6

Run the pipeline

Run for all inputs:

miyabi-qualys-ai-triage-pack run --config config/config.yaml

After completion, you should see:

  • One report directory per CSV under output/<csv_name>/

  • A run summary at output/run_summary.json

Open:

  • output/<csv_name>/index.html

7

Optional: Dry-run (no OpenAI calls)

To validate ingestion/aggregation without calling the LLM:

miyabi-qualys-ai-triage-pack run --config config/config.yaml --dry-run

Expected result:

  • Output directories are created per CSV

  • candidates.json is written (candidate shortlist used by selection/LLM in a full run)

8

Optional: Simple entrypoint

If you prefer not to use the CLI yet, you can run:

python main.py

This loads config/config.yaml (or config/config.yml) and runs across all matching input files.