Skip to content

Ollama offre une compatibilité avec certaines parties de l'API OpenAI pour faciliter la connexion d'applications existantes à Ollama.

Utilisation

Exemple simple avec /v1/chat/completions

Exemple simple avec /v1/responses

Exemple avec vision pour /v1/chat/completions

Points de terminaison

/v1/chat/completions

Fonctionnalités prises en charge

  • [x] Complétions de chat
  • [x] Streaming
  • [x] Mode JSON
  • [x] Sorties reproductibles
  • [x] Vision
  • [x] Outils
  • [x] Contrôle du raisonnement/pensée (pour les modèles de pensée)
  • [ ] Logprobs

Champs de requête pris en charge

  • [x] model
  • [x] messages
    • [x] content de texte
    • [x] content d'image
      • [x] Image encodée en Base64
      • [ ] URL d'image
    • [x] Tableau de parties de content
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort ("high", "medium", "low", "max", "none")
  • [x] reasoning
    • [x] effort ("high", "medium", "low", "max", "none")
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

Fonctionnalités prises en charge

  • [x] Complétions
  • [x] Streaming
  • [x] Mode JSON
  • [x] Sorties reproductibles
  • [ ] Logprobs

Champs de requête pris en charge

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

Notes

  • Le champ prompt n'accepte actuellement qu'une chaîne de caractères

/v1/models

Notes

  • Le champ created correspond à la date de dernière modification du modèle
  • Le champ owned_by correspond au nom d'utilisateur ollama, avec la valeur par défaut "library"

/v1/models/{model}

Notes

  • Le champ created correspond à la date de dernière modification du modèle
  • Le champ owned_by correspond au nom d'utilisateur ollama, avec la valeur par défaut "library"

/v1/embeddings

Champs de requête pris en charge

  • [x] model
  • [x] input
    • [x] chaîne de caractères
    • [x] tableau de chaînes de caractères
    • [ ] tableau de tokens
    • [ ] tableau de tableaux de tokens
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations (expérimental)

Note : Ce point de terminaison est expérimental et peut être modifié ou supprimé dans les versions futures.

Générer des images à l'aide de modèles de génération d'images.

Champs de requête pris en charge

  • [x] model
  • [x] prompt
  • [x] size (par ex. "1024x1024")
  • [x] response_format (seul b64_json est pris en charge)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

Note : Ajouté dans Ollama v0.13.3

Ollama prend en charge l'API Responses d'OpenAI. Seule la variante non stateful est prise en charge (c'est-à-dire qu'il n'y a pas de prise en charge pour previous_response_id ou conversation).

Fonctionnalités prises en charge

  • [x] Streaming
  • [x] Outils (appel de fonction)
  • [x] Résumés de raisonnement (pour les modèles de pensée)
  • [ ] Requêtes stateful

Champs de requête pris en charge

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id (les requêtes stateful v1/responses ne sont pas prises en charge)
  • [ ] conversation (les requêtes stateful v1/responses ne sont pas prises en charge)
  • [ ] truncation

Modèles

Avant d'utiliser un modèle, téléchargez-le localement avec ollama pull :

shell
ollama pull llama3.2

Noms de modèles par défaut

Pour les outils qui s'appuient sur les noms de modèles OpenAI par défaut comme gpt-3.5-turbo, utilisez ollama cp pour copier un nom de modèle existant vers un nom temporaire :

shell
ollama cp llama3.2 gpt-3.5-turbo

Par la suite, ce nouveau nom de modèle peut être spécifié dans le champ model :

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

Définition de la taille du contexte

L'API OpenAI ne dispose d'aucune méthode pour définir la taille du contexte d'un modèle. Si vous avez besoin de modifier la taille du contexte, créez un Modelfile qui ressemble à :

FROM <some model>
PARAMETER num_ctx <context size>

Utilisez la commande ollama create mymodel pour créer un nouveau modèle avec la taille de contexte mise à jour. Appelez l'API avec le nom de modèle mis à jour :

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mymodel",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'