Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Ollama

Configurer Ollama en tant qu'endpoint personnalisé dans LibreChat.

Ollama exécute des modèles ouverts localement et expose une API compatible avec OpenAI, vous permettant ainsi de pointer LibreChat vers votre propre machine. Téléchargez des modèles avec ollama run <model> et parcourez ce qui est disponible dans la Ollama Library.

Configuration

Ollama ignore la clé API mais s'attend tout de même à ce que le champ soit présent, définissez-le donc sur n'importe quel espace réservé. Pointez baseURL vers votre serveur Ollama. Ajoutez l'endpoint sous endpoints.custom dans votre librechat.yaml :

    - name: "Ollama"
      apiKey: "ollama"
      # use 'host.docker.internal' instead of localhost if running LibreChat in a docker container
      baseURL: "http://localhost:11434/v1/" 
      models:
        default: [
          "llama2",
          "mistral",
          "codellama",
          "dolphin-mixtral",
          "mistral-openorca"
          ]
        # fetching list of models is supported but the `name` field must start
        # with `ollama` (case-insensitive), as it does in this example.
        fetch: true
      titleConvo: true
      titleModel: "current_model"
      summarize: false
      summaryModel: "current_model"
      modelDisplayLabel: "Ollama"

Notes

  • Définissez titleModel sur "current_model" afin que la génération de titre réutilise le modèle de la conversation au lieu d'en charger un second. Cela permet à Ollama de conserver un seul modèle chargé par conversation.
  • Le tableau default ci-dessus est une liste d'exemples de modèles populaires. Avec fetch: true, LibreChat récupère la liste complète depuis votre serveur.

Ollama -> llama3

Une fois que stop a été supprimé des paramètres par défaut, le problème ci-dessous ne devrait plus se produire.

Si llama3 continue de générer sans s'arrêter, ajoutez un bloc addParams avec les séquences d'arrêt :

    - name: "Ollama"
      apiKey: "ollama"
      baseURL: "http://host.docker.internal:11434/v1/"
      models:
        default: [
          "llama3"
        ]
        fetch: false # fetching list of models is not supported
      titleConvo: true
      titleModel: "current_model"
      summarize: false
      summaryModel: "current_model"
      modelDisplayLabel: "Ollama"
      addParams:
          "stop": [
              "<|start_header_id|>",
              "<|end_header_id|>",
              "<|eot_id|>",
              "<|reserved_special_token"
          ]

Si vous exécutez uniquement llama3 avec Ollama, définir stop au niveau de la configuration via addParams est suffisant. Lorsque vous exécutez plusieurs modèles, ajoutez plutôt les séquences d'arrêt depuis l'interface via les paramètres de conversation et les préréglages, et omettez addParams :

    - name: "Ollama"
      apiKey: "ollama"
      baseURL: "http://host.docker.internal:11434/v1/" 
      models:
        default: [
          "llama3:latest",
          "mistral"
          ]
        fetch: false # fetching list of models is not supported
      titleConvo: true
      titleModel: "current_model"
      modelDisplayLabel: "Ollama"

Définissez les séquences d'arrêt dans les paramètres de conversation (et enregistrez-les en tant que préréglage) :

image

Que pensez-vous de ce guide ?