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!"
            }
        ]
    }'