Cos'è l'API Ollama?

Ollama è uno strumento open-source per eseguire modelli linguistici di grandi dimensioni (LLM) localmente sul proprio computer. Fornisce una REST API che accetta richieste HTTP, consentendo di interagire con modelli come Llama 3, Mistral, Gemma e molti altri direttamente dal terminale o dal codice dell'applicazione. L'API segue un semplice schema di richiesta/risposta basato su JSON e supporta la generazione di testo, conversazioni chat multi-turno e embedding di testo.

cURL è il metodo più comune per testare e interagire con l'API Ollama. Tuttavia, costruire il comando cURL corretto con tutti i parametri, gli header e la formattazione del corpo JSON appropriati può essere tedioso e soggetto a errori, specialmente quando si regolano le opzioni del modello come la temperatura e il campionamento top-k.

Descrizione dello strumento

Questo strumento genera comandi cURL pronti all'uso per gli endpoint dell'API Ollama. Seleziona un endpoint, configura il modello e i parametri, e ottieni immediatamente un comando cURL correttamente formattato. Il comando generato include tutti gli header necessari, la struttura del corpo JSON e le opzioni del modello — pronto per essere incollato nel terminale.

Esempi

Generazione di testo di base:

curl -X POST "http://localhost:11434/api/generate" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "prompt": "Explain quantum computing in simple terms",
  "stream": true
}'

Chat con prompt di sistema e temperatura personalizzata:

curl -X POST "http://localhost:11434/api/chat" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "messages": [
    { "role": "system", "content": "You are a helpful coding assistant." },
    { "role": "user", "content": "Write a Python function to reverse a string" }
  ],
  "stream": false,
  "options": {
    "temperature": 0.3
  }
}'

Generazione di embedding:

curl -X POST "http://localhost:11434/api/embeddings" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "prompt": "The quick brown fox jumps over the lazy dog",
  "stream": false
}'

Funzionalità

  • Supporta tutti e tre i principali endpoint di Ollama: /api/generate, /api/chat e /api/embeddings
  • Opzioni del modello configurabili: temperatura, top-p, top-k, numero massimo di token, penalità di ripetizione e seed
  • Supporto del prompt di sistema per gli endpoint generate e chat
  • Opzione di formato di risposta JSON per output strutturato
  • Download del comando generato come file .sh

Spiegazione delle opzioni

Opzione Descrizione Predefinito Intervallo
Temperatura Controlla la casualità dell'output. Valori più bassi producono testo più mirato, valori più alti aumentano la creatività. 0.7 0–2
Top P Soglia di campionamento nucleus. Il modello considera i token la cui probabilità cumulativa raggiunge questo valore. 0.9 0–1
Top K Limita la selezione dei token ai K candidati più probabili ad ogni passo. 40 1–100
Token massimi Numero massimo di token da generare nella risposta. Impostare a -1 per illimitato. 128 -1–4096
Penalità di ripetizione Penalizza i token ripetuti. Valori superiori a 1.0 scoraggiano la ripetizione. 1.1 0–2
Seed Seed fisso per output riproducibile. Lasciare vuoto per risultati casuali. Qualsiasi intero
Formato di risposta Impostare su JSON per forzare il modello a restituire output JSON valido. Nessuno Nessuno / JSON
Stream Se abilitato, la risposta viene trasmessa token per token. Disabilitare per ricevere la risposta completa in una sola volta. Attivo Attivo / Disattivo

Casi d'uso

  • Prototipazione rapida e test delle chiamate all'API Ollama dal terminale senza dover scrivere manualmente il JSON
  • Generazione di comandi cURL da condividere con i colleghi o da includere nella documentazione
  • Sperimentazione con diversi parametri del modello per trovare le impostazioni ottimali per il proprio caso d'uso