2137150da3
- Aggiunti docs/ (9 pagine MkDocs, tema Material) + mkdocs.yml - Fix mkdocs.yml: repo_url -> git.enne2.net, tasklist (era taskbuttons), fence Mermaid via helper locale mermaid_fence.py (def_fence_mermaid rimosso da pymdown-extensions moderne) - Documentate le nuove funzionalità: agy_create_verified (generazione verificata con verifica OpenCV DINAMICA generata dall'LLM), workflow vocale a 2 fasi (vocalPlanningMode), chiavi config context/webSearch - tools.md ora documenta 14 tool; vocal-workflow.md include l'overlay di conferma piano; configuration.md include vocalPlanningMode - .gitignore: esclusi site/ e __pycache__/ - Build MkDocs verificata (site/ generato correttamente)
3.7 KiB
3.7 KiB
Sistema di Configurazione
L'estensione agy-pi implementa un sistema di configurazione gerarchico e persistente, progettato per garantire massima sicurezza ed elasticità sia in ambienti locali che server.
File di Configurazione (config.json)
Le impostazioni vengono memorizzate nel file JSON:
~/.config/agy-pi/config.json
!!! security "Sicurezza e Permessi"
Il file config.json viene creato con permessi restrittivi 0600 (leggibile e modificabile unicamente dall'utente proprietario del processo) per prevenire l'accesso non autorizzato alle chiavi API memorizzate.
Gerarchia delle Risoluzione Chiavi
Quando un modulo o un tool dell'estensione richiede un valore di configurazione (es. geminiApiKey), l'estensione segue questa priorità:
graph TD
ENV[1. Variabili d'Ambiente System/Shell] -->|Se assente| CONFIG[2. File ~/.config/agy-pi/config.json]
CONFIG -->|Se assente| SECRET[3. File ~/.agy-chat/gemini-key]
SECRET -->|Se assente| DEFAULT[4. Valore Default di Fabbrica CONFIG_DEFAULTS]
Tabella delle Opzioni di Configurazione
| Chiave | Tipo | Default | Descrizione |
|---|---|---|---|
geminiApiKey |
string |
undefined |
Chiave API Google Gemini (usata per STT, TTS e Web Search grounding). |
enne2ApiKey |
string |
undefined |
Bearer token opzionale per l'autenticazione verso il proxy ai.enne2.net. |
sttBackend |
string |
"gemini" |
Backend per la trascrizione vocale: "gemini" | "enne2". |
sttUrl |
string |
"https://ai.enne2.net" |
URL endpoint base per il backend STT enne2. |
sttModel |
string |
"gemma4:E4B" |
Identificativo modello per il backend STT enne2. |
sttMaxDuration |
number |
120 |
Durata massima della registrazione audio in secondi. |
ttsBackend |
string |
"gemini" |
Backend per la sintesi vocale: "gemini" | "enne2". |
ttsNotify |
boolean |
true |
Abilita o disabilita le notifiche acustiche/vocali automatiche a fine trascrizione. |
ttsModel |
string |
"gemini-2.5-flash-preview-tts" |
Modello Gemini dedicato al Text-To-Speech. |
agyBin |
string |
"agy" |
Percorso assoluto o nome del binario eseguibile agy. |
agyDefaultModel |
string |
undefined |
Modello predefinito per le chiamate ad agy (es. Gemini 3.1 Pro (High)). |
agyTimeoutMs |
number |
180000 |
Timeout generale in millisecondi per l'esecuzione di agy (3 minuti). |
contextInject |
boolean |
true |
Iniezione automatica del contesto dell'agente nel prompt agy. |
contextTokens |
number |
1500 |
Budget massimo di token allocato per il blocco di contesto iniettato. |
webSearch |
string |
"auto" |
Modalità ricerca web (Strada A): "auto" | "on" | "off". |
vocalPlanningMode |
boolean |
true |
Workflow vocale a 2 fasi: piano + conferma in overlay prima di eseguire. |
Esempio di File config.json
{
"sttBackend": "gemini",
"sttUrl": "https://ai.enne2.net",
"sttModel": "gemma4:E4B",
"sttMaxDuration": 120,
"ttsBackend": "gemini",
"ttsNotify": true,
"ttsModel": "gemini-2.5-flash-preview-tts",
"agyTimeoutMs": 180000,
"contextInject": true,
"contextTokens": 1500,
"webSearch": "auto",
"vocalPlanningMode": true,
"geminiApiKey": "AIzaSyD-EXAMPLE_KEY_STRING_HERE"
}
Variabili d'Ambiente Mappate
Le seguenti variabili di ambiente sovrascrivono la configurazione quando presenti:
export GEMINI_API_KEY="AIzaSy..."
export ENNE2_API_KEY="sk-..."
export AGY_STT_BACKEND="enne2" # oppure "gemini"
export AGY_STT_URL="https://ai.enne2.net"
export AGY_STT_MODEL="gemma4:E4B"
export AGY_BIN="/home/utente/.local/bin/agy"
export AGY_TTS_NOTIFY="0" # disabilita notifiche TTS