🛠️ Come fare: ponte Knodge.eu per Obsidian

🛠️ Come fare: ponte Knodge.eu per Obsidian

Questa guida descrive come configurare Obsidian come interfaccia professionale per il vostro portale della conoscenza Knodge.eu. Con questa configurazione, è possibile caricare direttamente le note e richiedere le analisi dell'intelligenza artificiale (come le recensioni degli esperti o i riassunti) con la semplice pressione di un pulsante [citazione: API.md].


#1 Preparazione in Knodge.eu

Prima di collegare Obsidian, gli accessi API devono essere disponibili in Knodge.eu:

Chiavi API: Sono necessarie due chiavi dal cruscotto del portale:
1. Chat API key: Per le query e le analisi (api-chat).
2. Chiave API di caricamento: Una chiave con diritti di editor o manager per il caricamento dei documenti.
Portal slug: È l'identificatore del vostro portale nell'URL (ad esempio, my-knowledge-hub).
Istruzioni: Assicurarsi che file come _istruzione_esperto.md o _istruzione_sommario.md siano già stati caricati sul portale, in modo che le parole chiave (#esperto, #sommario) funzionino [citare: _istruzione_esperto.md, _istruzione_sommario.md].


2a configurazione in Obsidian

Utilizziamo il popolare plugin Templater per eseguire lo script JavaScript.

Passo 1: installare i plugin

  1. aprire le Impostazioni di Obsidian.
  2. andare su Community Plugins e disattivare la "Modalità sicura".
  3. cercare Templater e installarlo/attivarlo.

Passo 2: creare lo script

Creare una nuova nota (ad esempio nella cartella Templates/Knodge-Bridge.md) e inserire il seguente codice:

<%*
/* Knodge.eu Unified Bridge / SCP compatibile (Upload e Chat)
   Personalizzato per il caricamento dei domini e i messaggi degli agenti.
*/

// CONFIGURAZIONE
const CHAT_API_KEY = "6393c04f..."; // La vostra chiave di chat
const UPLOAD_API_KEY = "cb7106f5..."; // La vostra chiave di upload
const DOMAIN_ID = "efdb0c9f..."; // Dalla vostra impostazione API
const PORTAL_SLUG = "faq"; // Il vostro identificativo del portale
const BASE_URL = "https://knodge.eu/api";

const activeView = app.workspace.getActiveViewOfType(obsidian.MarkdownView);
if (!activeView) {
    new Notice("Nessuna nota attiva trovata.");
    return;
}

const content = activeView.editor.getValue();
const fileName = `${activeView.file.basename}.md`;

// DIALOGO DI SELEZIONE
const mode = await tp.system.suggester(
    ["📤 Carica il documento sul dominio", "💬 Richiedi l'agente AI (Messaggi)"],
    ["upload", "chat"]
);

if (mode === "upload") {
    // 1° LOGICA DI CARICAMENTO (basata sul dominio)
    const formData = new FormData();
    const blob = new Blob([content], { type: 'text/markdown' });
    formData.append('file', blob, fileName);

    nuovo avviso("Caricamento sul dominio in corso...");
    try {
        const res = await fetch(`${BASE_URL}/domains/${DOMAIN_ID}/documents`, {
            metodo: "POST",
            intestazioni: {
                "X-API-Key": UPLOAD_API_KEY // Richiesta di header
            },
            corpo: formData
        });

        if (res.ok) new Notice("✅ Documento salvato con successo nel dominio!");
        altrimenti new Notice("❌ Errore durante il caricamento.");
    } catch (e) {
        new Notice("❌ Errore di rete durante il caricamento.");
    }

} else if (mode === "chat") {
    // 2a LOGICA CHAT (endpoint messaggi agente)
    new Notice("È stato richiesto un agente AI...");
    
    try {
        const res = await fetch(`${BASE_URL}/portal/${PORTAL_SLUG}/agent/messages`, {
            metodo: "POST",
            intestazioni: {
                "Content-Type": "application/json",
                "X-API-Key": CHAT_API_KEY //
            },
            body: JSON.stringify({
                messaggi: [{ruolo: "utente", contenuto: contenuto }], // corpo conforme a SCP
                stream: false, // Streaming disabilitato per l'integrazione con Obsidian
                locale: "de"
            })
        });

        const data = await res.json();
        
        // Assunzione: la risposta viene restituita nel campo "response" o "message".
        const aiMessage = data.response || (data.messages && data.messages[0].content);

        if (aiMessage) {
            const insertion = `\n\n---\n### 🤖 Agent response\n${aiMessage}`;
            activeView.editor.replaceRange(insertion, { line: activeView.editor.lineCount(), ch: 0 });
            nuovo avviso("✅ Risposta ricevuta.");
        } else {
            new Notice("❌ Nessuna risposta valida dall'agente.");
        }
    } catch (e) {
        new Notice("❌ Errore con la richiesta dell'agente.");
    }
}
%>

3. uso nella vita quotidiana

Nota di analisi (#parole chiave)

Scrivete i vostri pensieri in Obsidian. Se volete un'analisi specifica, aggiungete una parola chiave:

  • #esperto: Per un'analisi tecnica approfondita [citare: _istruzione_esperto.md].
  • #summary: Per ottenere un riassunto strutturato [citare: _instruction_summary.md].
  • #quiz: Per generare domande di prova per il testo [citare: _instruction_quiz.md].

Quindi premere il tasto di scelta rapida per Templater (o chiamare il modello), selezionare "🎓 Richiedi analisi AI" e Knodge inserirà la risposta direttamente sotto il testo [citare: API.md].

Salva la nota come conoscenza

Selezionate "📤 Carica nota" per spostare definitivamente il documento corrente nel vostro portale Knodge. Questa conoscenza è immediatamente disponibile per tutte le future interrogazioni RAG (anche tramite OpenClaw).


Perché funziona

Istruzioni dinamiche: Poiché Knodge controlla le #parole chiave sul lato server tramite i file istruzioni_*.md, non dovrete mai cambiare lo script in Obsidian quando aggiungete nuove abilità AI [citare: API.md, _istruzioni_expert.md].
**Attraverso il sistema automatico di onboarding, Knodge riconosce il vostro stile dal file _user_{userId}.md e adatta le risposte in Obsidian alle vostre preferenze [cita: _instruction_onboarding.md].

ad esempio.
istruzione_esperto.md

# Modello di istruzione per la modalità esperto

## Scopo
Questa istruzione attiva una modalità di analisi per esperti con approfondimenti, dettagli tecnici e analisi complete.

---

## DE - Tedesco

Si attiva la modalità esperto per analisi approfondite.

**Caratteristiche della modalità esperto

1 **Analisi approfondita**
   - Andare oltre le risposte superficiali
   - Analizzare cause e connessioni
   - Considerare il contesto e le sfumature

2 **Dettagli tecnici**
   - Utilizzare una terminologia specializzata (con spiegazioni)
   - Mostrare le fonti dei dati e le prove
   - Discutere la metodologia

3. **Visione critica**
   - Illuminare le diverse prospettive
   - Identificare limiti e incertezze
   - Distinguere i fatti dalle interpretazioni

4 **Altre risorse**
   - Fare riferimento ai documenti pertinenti nel portale
   - Suggerire ulteriori domande
   - Identificare le lacune nella conoscenza

**Formato per le risposte degli esperti

🎓 ANALISI DEGLI ESPERTI

📋 Messaggio chiave:
[Riassunto conciso del risultato principale]

🔍 Analisi dettagliata:
[Spiegazione approfondita con termini tecnici]

📊 Dati e prove:
[Cifre, studi e fonti rilevanti tratte dai documenti].

⚠️ Limitazioni:
[Cosa c'è di incerto, cosa manca?]

💭 Prospettive diverse:
[Punti di vista o interpretazioni alternative].

📚 Ulteriori informazioni:
[Documenti rilevanti nel portale]
[Domande di approfondimento]

🤔 Domande aperte:
[Cos'altro si dovrebbe indagare?]


**Comportamento:**
- Rispondere in modo più dettagliato rispetto alla modalità standard
- Utilizzare un linguaggio tecnico, ma spiegarlo
- Essere precisi nel citare le fonti
- Distinguere chiaramente tra conoscenze comprovate e supposizioni.

---

## IT - Inglese

Si attiva la modalità esperto per un'analisi approfondita.

**Proprietà della modalità esperto:**

1. **Analisi approfondita**
   - Andare oltre le risposte di superficie
   - Analizzare cause e connessioni
   - Considerare il contesto e le sfumature

2. **Dettagli tecnici**
   - Utilizzare la terminologia tecnica (con spiegazioni)
   - Mostrare le fonti dei dati e le prove
   - Discutere la metodologia

3. **Esame critico**
   - Illuminare le diverse prospettive
   - Identificare limiti e incertezze
   - Distinguere i fatti dalle interpretazioni

4. **Risorse aggiuntive**
   - Fare riferimento ai documenti rilevanti del portale
   - Suggerire domande di approfondimento
   - Identificare le lacune di conoscenza

---

## FR - Français

Attivate la modalità esperto per un'analisi approfondita.

**Proprietà dell'esperto di modalità:**
1. analisi approfondita
2. tecniche di dettaglio
3. esame critico
4. risorse aggiuntive

---

## ES - Español

Attiva il modo esperto per un'analisi approfondita.

**Proprietà del modo experto:**
1. analisi approfondita
2. dettagli tecnici
3. esame critico
4. risorse aggiuntive

---

## IT - Italiano

Attivi la modalità esperto per analisi approfondite.

**Proprietà modalità esperto:**
1. analisi approfondita
2. approfondimenti tecnici
3. analisi critica
4. rischi aggiuntivi

---

## PT - Português

Você ativa o modo especialista para análise aprofundada.

**Proprietà del modo especialista:**
1. analisi approfondita
2. dettagli tecnici
3. esame critico
4. risorse aggiuntive

---

## Uso

Gli utenti si attivano con `#esperto` nel loro messaggio. Esempio: `#esperto Analizza gli effetti di X su Y`.