Questo repository contiene script Python per generare report e aggiornare topic utilizzando provider LLM multipli.
pip install python-dotenv
# Per OpenAI (opzionale)
pip install openai
# Per Google Gemini (opzionale)
pip install google-generativeaiCopia il file di esempio e aggiungi le tue API keys:
cp .env.example .envModifica .env con le tue chiavi e preferenze:
# API Keys (obbligatorie)
OPENAI_API_KEY=your_openai_key_here
GEMINI_API_KEY=your_gemini_key_here
# Configurazione default (opzionali)
LLM_PROVIDER=gemini # Provider di default
OPENAI_DEFAULT_MODEL=gpt-4o-mini # Modello OpenAI di default
GEMINI_DEFAULT_MODEL=gemini-2.5-flash-preview-04-17 # Modello Gemini di defaultPriorità di configurazione:
- Parametri CLI (
--provider,--model) - Variabili d'ambiente (
export OPENAI_API_KEY=...) - File
.envnella directory dello script - Default hardcodati nel codice
Genera report Markdown da file audio o testo usando OpenAI o Gemini.
Supporta entrambi i provider:
# Usando Gemini (default)
python3 report.py meeting.m4a --provider gemini
# Usando OpenAI
python3 report.py meeting.m4a --provider openai --model gpt-4o
# Con parametri aggiuntivi
python3 report.py meeting.m4a \
--provider gemini \
--model gemini-2.5-pro-preview-05-06 \
--mode team \
--meet_description "Retrospettiva sprint Q2" \
--temperature 0.2Parametri:
--provider:openaiogemini(default: gemini)--model: Modello specifico (override dei default)--mode:1to1,team, ogeneric--meet_description: Descrizione della riunione--temperature: Temperatura per la generazione (0.0-1.0)
Estrae informazioni da un report e le aggiunge a note topic in Obsidian.
Supporta entrambi i provider:
# Usando Gemini
python3 update_topic_from_report.py \
--report "meeting_report.md" \
--topic "Progetto Alpha" \
--vault "/path/to/obsidian/vault" \
--provider gemini
# Usando OpenAI
python3 update_topic_from_report.py \
--report "meeting_report.md" \
--topic "Progetto Alpha" \
--vault "/path/to/obsidian/vault" \
--provider openai \
--model gpt-4o-miniParametri:
--provider:openaiogemini(default: openai)--model: Modello specifico (override dei default)--vault: Path del vault Obsidian (default: directory corrente)--temperature: Temperatura per la generazione
Centralizza la gestione dei provider LLM:
LLMManager: Gestisce configurazione e istanze providerOpenAIProvider: Implementazione per OpenAIGeminiProvider: Implementazione per Google Gemini- Gestione automatica API keys: Da variabili d'ambiente e file
.env
- Codice DRY: Logica di connessione centralizzata
- Supporto multiplo: Entrambi i provider in entrambi gli script
- Configurazione flessibile: API keys da env o .env
- Manutenibilità: Facile aggiungere nuovi provider
- Error handling: Gestione errori unificata
gpt-4o-mini(default)gpt-4ogpt-3.5-turbo
gemini-2.5-pro-preview-05-06(default)gemini-1.5-pro-latestgemini-2.5-flash-preview-04-17
- File Audio: Solo Gemini supporta file audio direttamente
- File Markdown: Entrambi i provider supportano elaborazione testo
- API Keys: Necessaria solo per il provider utilizzato
- "API Key non trovata": Verifica che
.envsia presente e corretto - "Provider non supportato": Usa
--provider openaio--provider gemini - "File audio con OpenAI": Converti in testo o usa Gemini
# Test configurazione
python3 -c "from llm_providers import llm_manager; print(llm_manager.load_api_keys())"
# Test provider specifico
python3 -c "from llm_providers import llm_manager; provider = llm_manager.get_provider('gemini'); print('OK')"