IT ▾
Ottieni la chiave API

API Ollama vs API OpenAI: endpoint e codice

La domanda tra API Ollama e API OpenAI si riduce a due formati di richiesta e due modi per eseguire un modello. Ollama ha la sua API nativa e anche uno strato compatibile con OpenAI, quindi passare a un endpoint ospitato in stile OpenAI può significare cambiare URL di base e chiave.

Aggiornato

Macchina desktop e server cloud collegati da due ponti leggeri che trasportano buste di messaggio identiche
Finestra di chat collegata a un computer locale e a un server cloud con cavi luminosi

Nessuna carta necessaria. Dopo la registrazione, ottieni $0,50 di credito di prova gratuito con un clic (una volta per persona).

Ottieni la chiave API

Punti chiave

  • Ollama ha endpoint nativi sotto /api e uno strato compatibile con OpenAI sotto /v1; i client scritti per l'SDK OpenAI di solito funzionano con entrambi.
  • Lo streaming nativo di Ollama restituisce JSON delimitati da a capo, mentre il formato OpenAI utilizza eventi inviati dal server.
  • Passare da locale a ospitato significa cambiare l'URL di base, la chiave e il nome del modello, non il codice.
  • Il locale mantiene i dati sulla tua macchina; l'ospitato elimina il lavoro hardware e aggiunge un costo per token.

La versione breve

Entrambe richiedono di POSTARE un elenco di messaggi e restituiscono testo. La differenza è la forma della richiesta, dove risiede il server e chi paga la GPU. Ollama esegue modelli sul tuo computer e ascolta sulla porta 11434. L'API OpenAI è un servizio ospitato con modelli a pagamento propri. Nel confronto tra API Ollama e API OpenAI spesso si trascura una terza cosa: Ollama espone anche endpoint compatibili con OpenAI, quindi i due formati si sovrappongono.

Questa sovrapposizione rende la migrazione economica. Se la tua app usa già l'SDK OpenAI, puoi puntarla oggi a Ollama locale e domani a un URL ospitato compatibile con OpenAI. L'endpoint ospitato su questo sito è uno di questi. Serve un singolo modello, uncensored, a https://api.ollamansfw.com/v1, e non è un prodotto ufficiale di OpenAI, Meta o di altri laboratori.

Differenze endpoint per endpoint

AttivitàOllama nativoIn stile OpenAI
ChatPOST /api/chatPOST /v1/chat/completions
Prompt singoloPOST /api/generatePOST /v1/responses o chat completions
Elenco modelliGET /api/tagsGET /v1/models
AutenticazioneNessuno per impostazione predefinitaAuthorization: Bearer chiave
StreamingJSON delimitato a righeEventi inviati dal server, che terminano con un marcatore done
Nome del modelloQualunque tu abbia scaricato, come llama3Qualunque elenchi il provider

Ollama serve anche /v1/chat/completions e /v1/models sulla stessa porta, il che permette ai client OpenAI di funzionare con essa. Il suo comportamento predefinito per le chiamate native è lo streaming, quindi imposta stream: false quando vuoi una singola risposta JSON.

L'endpoint ospitato implementa POST /v1/chat/completions, POST /v1/responses e GET /v1/models, più i controlli del saldo a GET /v1/balance. Vedi la documentazione API per l'elenco completo.

La stessa richiesta, tre modi

Ollama nativo in Python:

import requests

r = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "llama3",
        "messages": [{"role": "user", "content": "Say hello in five words."}],
        "stream": False,
    },
)
print(r.json()["message"]["content"])

L'SDK OpenAI, con impostazioni locali e ospitate affiancate. Solo la riga commentata cambia:

from openai import OpenAI

# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",   # local would be e.g. "llama3"
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)

E con curl contro l'endpoint ospitato con streaming attivo:

curl https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'

L'analisi differisce sul lato nativo: ogni riga in streaming è un oggetto JSON con message.content, e l'ultima riga contiene done: true. Nel formato OpenAI ogni evento inizia con data: , trasporta un frammento choices[0].delta.content e lo streaming termina con [DONE]. Usando l'SDK non vedi nessuno di questi dettagli.

Dove ciascuno ha senso

Ollama locale è la scelta giusta quando la privacy è la priorità, quando hai una GPU con memoria sufficiente per il modello che vuoi, o quando fai esperimenti con molti modelli. Nulla lascia la tua macchina e non vi è una fattura per token. I costi si manifestano come hardware, energia e il tuo tempo. La nostra guida su come usare Ollama con un'interfaccia grafica copre il lato più amichevole di questa strada.

Un endpoint ospitato compatibile con OpenAI si adatta meglio quando non hai l'hardware, hai bisogno di molte richieste parallele, esegui un bot o un servizio per altre persone, o vuoi un URL stabile che non dipenda dal fatto che il tuo laptop sia acceso. Una chiave a pagamento permette 8 richieste concorrenti e 300 richieste al minuto. La finestra di contesto è di 100.000 token, che sono più di quanto molti setup locali possano tenere in memoria.

Molte persone usano entrambi: locale per gli esperimenti, ospitato per tutto ciò che deve rimanere attivo. Se stai valutando altri strumenti locali, leggi alternative software per Ollama.

Migrazione da Ollama locale a ospitato

  1. Passa prima al formato OpenAI. Se il tuo codice chiama /api/chat, spostalo verso l'SDK OpenAI puntando all'/v1 endpoint di Ollama. Verifica che funzioni ancora localmente.
  2. Ottieni una chiave. Iscriviti e richiedi il credito di prova da $0,50 nella pagina delle chiavi API. Non richiede pagamento e dura 7 giorni.
  3. Modifica tre valori. URL di base a https://api.ollamansfw.com/v1, chiave alla tua, modello a uncensored.
  4. Verifica i parametri. Temperature, top_p, stop, seed e le penalità vengono passati. Le opzioni solo locali come num_ctx o keep_alive di Ollama non si applicano; la finestra è fissa a 100.000 token.
  5. Aggiungi logica di retry. L'API ospitata restituisce 429 con rate_limited o concurrency superato un limite, e 429 con Retry-After: 5 durante sovraccarico temporaneo. I server locali raramente lo fanno, quindi il codice esistente potrebbe non gestirlo.

Se qualcosa fallisce dopo il passaggio, l'articolo su errori comuni nell'API Ollama copre cause frequenti come porte errate e nomi di modello mancanti.

Cosa costa il servizio ospitato e cosa non fa

La fatturazione è a consumo su credito prepagato: $0,15 per 1M di token di input e $0,50 per 1M di token di output. Un turno di chat con 1.000 token di input e 400 token di output costa $0,00015 + $0,0002 = $0,00035, quindi $20 copre circa 57.000 turni di questo tipo. Le richieste fallite o rifiutate non vengono addebitate e il credito non scade mai. Le ricariche vanno da $20 a $500 con bonus del +5% da $50, +10% da $100 e +15% da $200. Il pagamento è solo in cripto (USDT su TRC20 o USDC su Base). Maggiori dettagli nella pagina dei prezzi.

Limiti da conoscere: solo testo, quindi nessun embedding, generazione di immagini o fine-tuning. Se dipendi dagli embedding locali, mantienili locali. Il modello è ottimizzato per rispondere senza blocchi del contenuto per uso adulto legale. I contenuti sessuali che coinvolgono minorenni non sono mai permessi. I prompt non sono usati per l'addestramento.

Domande e risposte

L'API Ollama è compatibile con l'API OpenAI?

Parzialmente. Ollama ha route native sotto /api e offre anche route in stile OpenAI come /v1/chat/completions, quindi i client SDK OpenAI possono comunicare con essa.

Cosa devo modificare per passare da Ollama locale a un endpoint ospitato?

L'URL di base, la chiave API e il nome del modello. Se il tuo codice usa già l'SDK OpenAI, non deve cambiare nient'altro.

L'API ospitata supporta embedding come Ollama?

No. È solo generazione di testo: completions di chat e risposte, senza embedding, immagini o affinamento.

Ollama è gratuito?

Il software è gratuito da scaricare ed eseguire. Paghi comunque hardware e energia, mentre un'API ospitata si paga per token.