agents Mistral dans OpenWebUI (pipe via API)
un extrait détaillé pour importer un pipe (fonction) dans OpenWebUI et utiliser un agent Mistral via l'API.
Ce pipe permet de prendre en charge nativement les agents mistral ai dans OpenWebUI en appelant l’API Mistral.
Il vous permet de sélectionner un agent créé dans la console Mistral et de discuter directement avec lui depuis votre instance OpenWebUI.
fonctionnalités
- intégration directe avec l’API des agents Mistral (
/v1/agents/completions). - prise en charge des réponses en streaming.
- configuration facile via les valves (pas besoin de modifier le code après l’import).
- compatible avec n’importe quel agent créé dans la console Mistral (outils, instructions, base de connaissances, etc.).
prérequis
- un compte Mistral avec accès à l’API.
- une clé
MISTRAL_API_KEYvalide (obtenez-la sur https://console.mistral.ai/). - un agent existant (vous avez besoin de l’ID de l’agent pour remplir la valve
AGENT_ID, il commence généralement parag_). - les permissions pour importer/modifier des fonctions dans votre instance OpenWebUI.
où obtenir l’ID de l’agent
- allez sur https://console.mistral.ai/build/agents.
- créez (ou ouvrez) un agent.
- copiez l’ID de l’agent.
Remarque : dans certains cas, il peut apparaître sous la forme ag: ; ce pipe attend une valeur de type chaîne de caractères et le format le plus courant est ag_....
comment importer dans OpenWebUI
Vous avez généralement deux options :
option a : importer depuis la page OpenWebUI
Utilisez la publication officielle de la fonction (import en un clic) :
https://openwebui.com/posts/mistral_agents_integration_pipe_42bce620
Dans OpenWebUI :
- ouvrez la page ci-dessus.
- cliquez sur
importer. - confirmez l’import.
option b : import manuel (copier et coller)
- dans OpenWebUI, allez dans le
panneau d'administration. - ouvrez
fonctions. - cliquez sur
+(ounouveau) pour créer une nouvelle fonction/pipe. - collez le code ci-dessous et enregistrez.
configuration (valves)
Après l’import, configurez les valves (généralement via l’icône d’engrenage ⚙️) :
MISTRAL_API_KEY: votre clé API Mistral.AGENT_ID: l’ID de votre agent (exemple :ag_...).
le code (pipe)
Important :
- ne codez pas en dur votre vraie clé API dans les fichiers.
- définissez
MISTRAL_API_KEYetAGENT_IDdans les valves (paramètres OpenWebUI) après l’import.
# title: Mistral Agents
# author: Yuri Cunha
# version: 1.0.0
# license: MIT
import requests
import json
from typing import List, Dict, Generator
from pydantic import BaseModel, Field
class Pipe:
class Valves(BaseModel):
MISTRAL_API_KEY: str = Field(default="")
AGENT_ID: str = Field(
default="ag_"
) # Your Agent ID aqui or put in var, please, use VAR!
def __init__(self):
self.type = "manifold"
self.id = "mistral-agent"
self.name = "mistral-agent/"
self.valves = self.Valves()
self.agents_endpoint = "https://api.mistral.ai/v1/agents/completions"
def pipes(self) -> List[Dict[str, str]]:
return [{"id": "agent", "name": f"Mistral Agent ({self.valves.AGENT_ID[:10]})"}]
def pipe(self, body: dict) -> Generator:
headers = {
"Authorization": f"Bearer {self.valves.MISTRAL_API_KEY}",
"Content-Type": "application/json",
}
payload = {
"agent_id": self.valves.AGENT_ID,
"messages": body["messages"],
"stream": body.get("stream", False),
}
response = requests.post(
self.agents_endpoint, headers=headers, json=payload, stream=True
)
for line in response.iter_lines():
if line:
yield line.decode("utf-8")
Ne commitez jamais votre vraie clé API dans un dépôt public. En production, privilégiez les variables d’environnement et le gestionnaire de secrets de votre déploiement.
comment utiliser dans le chat
- ouvrez un chat dans OpenWebUI.
- sélectionnez le
pipemistral agent (...)dans la liste des modèles/fournisseurs. - envoyez des messages normalement.
OpenWebUI transmettra body["messages"] à Mistral, en conservant les rôles (user, assistant, etc.).
notes importantes
- ID de l’agent vs modèle : ce
pipeutilise la route des agents (/v1/agents/completions), qui est différente des complétions de chat standard. - outils : si votre agent a des outils configurés dans la console Mistral, ils seront appliqués automatiquement par l’agent.
notes sur le streaming
- lorsque
streamest activé dans OpenWebUI, la charge utile envoie"stream": true. - le
piperenvoie les lignes de réponse brutes de la requête de streaming (iter_lines).
Si vous voyez une sortie “brute” (lignes JSON) au lieu de texte rendu, vérifiez si OpenWebUI attend un format spécifique de sse/chunk pour ce pipe.
dépannage rapide
- 401 non autorisé / 403 interdit :
MISTRAL_API_KEYest vide, invalide ou manque de permissions. - 404 / agent invalide :
AGENT_IDest incorrect ou l’agent a été supprimé. - pas de réponse / délai dépassé : vérifiez que votre serveur OpenWebUI peut atteindre
https://api.mistral.ai. - pas de streaming : confirmez qu’OpenWebUI envoie
stream: truedans le corps de la requête.
références
- publication d’import sur OpenWebUI : https://openwebui.com/posts/mistral_agents_integration_pipe_42bce620