Skip to content

caporro/hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Script LLM per Knowledge Base

Questo repository contiene script Python per generare report e aggiornare topic utilizzando provider LLM multipli.

🔧 Setup

1. Installazione dipendenze

pip install python-dotenv

# Per OpenAI (opzionale)
pip install openai

# Per Google Gemini (opzionale)
pip install google-generativeai

2. Configurazione API Keys e Default

Copia il file di esempio e aggiungi le tue API keys:

cp .env.example .env

Modifica .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 default

Priorità di configurazione:

  1. Parametri CLI (--provider, --model)
  2. Variabili d'ambiente (export OPENAI_API_KEY=...)
  3. File .env nella directory dello script
  4. Default hardcodati nel codice

📋 Script Disponibili

report.py - Generazione Report

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.2

Parametri:

  • --provider: openai o gemini (default: gemini)
  • --model: Modello specifico (override dei default)
  • --mode: 1to1, team, o generic
  • --meet_description: Descrizione della riunione
  • --temperature: Temperatura per la generazione (0.0-1.0)

update_topic_from_report.py - Aggiornamento Topic

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-mini

Parametri:

  • --provider: openai o gemini (default: openai)
  • --model: Modello specifico (override dei default)
  • --vault: Path del vault Obsidian (default: directory corrente)
  • --temperature: Temperatura per la generazione

🏗️ Architettura

llm_providers.py - Modulo Comune

Centralizza la gestione dei provider LLM:

  • LLMManager: Gestisce configurazione e istanze provider
  • OpenAIProvider: Implementazione per OpenAI
  • GeminiProvider: Implementazione per Google Gemini
  • Gestione automatica API keys: Da variabili d'ambiente e file .env

Vantaggi della Refactorizzazione

  1. Codice DRY: Logica di connessione centralizzata
  2. Supporto multiplo: Entrambi i provider in entrambi gli script
  3. Configurazione flessibile: API keys da env o .env
  4. Manutenibilità: Facile aggiungere nuovi provider
  5. Error handling: Gestione errori unificata

🎯 Modelli Supportati

OpenAI

  • gpt-4o-mini (default)
  • gpt-4o
  • gpt-3.5-turbo

Google Gemini

  • gemini-2.5-pro-preview-05-06 (default)
  • gemini-1.5-pro-latest
  • gemini-2.5-flash-preview-04-17

📝 Note di Compatibilità

  • File Audio: Solo Gemini supporta file audio direttamente
  • File Markdown: Entrambi i provider supportano elaborazione testo
  • API Keys: Necessaria solo per il provider utilizzato

🚨 Risoluzione Problemi

Errori Comuni

  1. "API Key non trovata": Verifica che .env sia presente e corretto
  2. "Provider non supportato": Usa --provider openai o --provider gemini
  3. "File audio con OpenAI": Converti in testo o usa Gemini

Debug

# 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')"

About

local scripts for daily use

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages