|
| 1 | +# Report Summaries with AI |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +OpenCVE includes a feature that automatically generates **daily summaries of reports** using a Large Language Model (LLM). |
| 6 | + |
| 7 | +Each night at **2:00 AM UTC**, an Airflow DAG (`summarize_reports`) collects all the reports created the previous day and generates a concise summary for each of them by calling an LLM. |
| 8 | + |
| 9 | +This feature is especially useful for quickly identifying what really matters in the list of CVEs of the day, without having to manually read through each report in full. |
| 10 | + |
| 11 | +!!! info "Reminder" |
| 12 | + |
| 13 | + A report is always linked to a project. It gathers all modifications concerning CVEs related to this project. |
| 14 | + |
| 15 | + A CVE is related to a project when the project is subscribed to at least one of the CVE’s vendors or products. |
| 16 | + |
| 17 | +{.center style="width:100%"} |
| 18 | + |
| 19 | +## Availability |
| 20 | + |
| 21 | +!!! info |
| 22 | + |
| 23 | + On [OpenCVE.io](https://www.opencve.io), this feature is enabled for **Starter**, **Pro**, and **Enterprise** customers. |
| 24 | + |
| 25 | +If you are using the [on-premise version](https://github.com/opencve/opencve) of OpenCVE, you can also enable this feature, provided you have access to an API compatible with the **OpenAI API format** (Chat Completions endpoint). |
| 26 | + |
| 27 | +Compatible providers include: |
| 28 | + |
| 29 | +- OpenAI (ChatGPT models) |
| 30 | +- Anthropic (Claude models via OpenRouter) |
| 31 | +- Mistral (Mixtral, Mistral Small, etc.) |
| 32 | +- Llama.cpp (local inference with OpenAI-compatible API) |
| 33 | +- Ollama (self-hosted LLMs with OpenAI API compatibility) |
| 34 | +- Any other API exposing an OpenAI-compatible `/v1/chat/completions` endpoint |
| 35 | + |
| 36 | +## Configuration |
| 37 | + |
| 38 | +To enable report summarization on your own deployment, you need to configure the LLM endpoint in your Airflow scheduler. |
| 39 | + |
| 40 | +Edit the file `scheduler/airflow.cfg` and update the following section: |
| 41 | + |
| 42 | +```` |
| 43 | +# The starting date of the summarize_reports workflow |
| 44 | +start_date_summarize_reports = 2025-08-28 |
| 45 | +
|
| 46 | +# The configuration for the LLM |
| 47 | +llm_api_key = sk-proj-1234567890 |
| 48 | +llm_api_url = https://api.example.com |
| 49 | +llm_model = Mistral-7B-Instruct-v0.3 |
| 50 | +```` |
| 51 | + |
| 52 | +- `llm_api_key`: API key used for authentication (set to notused if not required by your provider). |
| 53 | +- `llm_api_url`: Base URL of your OpenAI-compatible API. |
| 54 | +- `llm_model`: Identifier of the model to use (provider-dependent). |
| 55 | + |
| 56 | +## Activating the DAG |
| 57 | + |
| 58 | +Once the configuration is in place, you need to activate the Airflow DAG named `summarize_reports`. |
| 59 | + |
| 60 | +You can do this from the Airflow UI: |
| 61 | + |
| 62 | +- Open the DAGs list. |
| 63 | +- Locate the DAG `summarize_reports`. |
| 64 | +- Switch it to active. |
| 65 | + |
| 66 | +From now on, every night at 2:00 AM UTC, the summaries of all reports created the previous day will be automatically generated. |
0 commit comments