ChatKit est la meilleure solution pour créer des interfaces de discussion avec des agents. Que vous développiez un assistant pour consulter une base de connaissances interne, accueillir de nouveaux collaborateurs, mener des recherches, faire des achats ou gérer un agenda, un bot de dépannage, un conseiller en planification financière ou un agent d’assistance, ChatKit fournit une interface de discussion personnalisable qui s’intègre à votre produit et prend en charge tous les détails de l’expérience utilisateur.
Utilisez les widgets d’interface intégrables, les prompts personnalisables, les appels d’outils, les pièces jointes et les visualisations du raisonnement détaillé (« chain-of-thought ») de ChatKit pour créer des agents sans avoir à réinventer l’interface de discussion.
Vue d’ensemble
Choisissez l’une des deux options d’intégration de ChatKit :
- Intégration sur votre propre serveur. Exécutez ChatKit sur votre infrastructure. Utilisez le SDK Python de ChatKit et connectez ChatKit au service d’agents de votre choix, y compris à un service créé avec le SDK Agents. Créez l’interface côté client à l’aide de widgets.
- Intégration existante hébergée dans Agent Builder. Si vous utilisez déjà ChatKit avec un workflow Agent Builder, vous pouvez continuer à utiliser ce workflow hébergé pendant la période de transition d’Agent Builder.
OpenAI retire progressivement Agent Builder. Si vous l’utilisez déjà, vous pouvez continuer à le faire pendant la période de transition. Son arrêt est prévu le 30 novembre 2026. ChatKit reste disponible. Pour démarrer un nouveau projet ou préparer une migration, utilisez les intégrations avancées de ChatKit avec votre propre agent côté serveur. Pour préparer la transition, consultez le guide Migrer depuis Agent Builder.
Premiers pas avec ChatKit


Intégrez ChatKit à votre interface côté client
Utilisez cette option uniquement si votre intégration de ChatKit repose déjà sur un workflow Agent Builder. Pour créer une application ChatKit ou migrer avant l’arrêt d’Agent Builder, utilisez l’intégration avancée afin de connecter ChatKit à votre propre agent côté serveur.
La configuration de ChatKit avec un workflow hébergé existant se déroule en trois étapes. Ouvrez votre workflow existant tant qu’Agent Builder est disponible. Configurez ensuite ChatKit, puis ajoutez les fonctionnalités dont vous avez besoin pour votre interface de discussion.

1. Utilisez un workflow hébergé existant
Ouvrez votre workflow existant dans Agent Builder pour obtenir son identifiant. Pour préparer la transition, consultez le guide Migrer depuis Agent Builder.
L’interface de discussion intégrée à votre application se connectera au workflow que vous aurez sélectionné.
2. Configurez ChatKit dans votre produit
Pour configurer ChatKit, créez une session ChatKit et un point de terminaison sur votre serveur, transmettez l’identifiant de votre workflow, récupérez le secret client et transmettez-le au client ChatKit, puis ajoutez un script pour intégrer ChatKit à votre site.
Consigne de sécurité importante : lors de la création d’une session ChatKit, vous devez fournir le paramètre user avec une valeur propre à chaque utilisateur final. Votre serveur doit
authentifier les utilisateurs de votre application et transmettre dans ce paramètre un identifiant unique pour chacun d’eux.
-
Générez un jeton client sur votre serveur.
Cet exemple démarre un service qui crée une session ChatKit via l’API OpenAI et renvoie le secret client de la session :
Python# Replace the illustrative IDs and URLs below with your own resource values. import hmac import json import os from typing import Annotated import requests from fastapi import Depends, FastAPI, HTTPException from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from pydantic import BaseModel api_key = os.environ["OPENAI_API_KEY"] workflow_id = "wf_123" authenticated_users: dict[str, str] = json.loads( os.environ["CHATKIT_AUTHENTICATED_USERS"] ) bearer_auth = HTTPBearer(auto_error=False) def get_authenticated_user_id( credentials: Annotated[ HTTPAuthorizationCredentials | None, Depends(bearer_auth), ], ) -> str: if credentials is not None: for token, user_id in authenticated_users.items(): if hmac.compare_digest(credentials.credentials, token): return user_id raise HTTPException(status_code=401, detail="Invalid authentication token") class ChatKitSession(BaseModel): client_secret: str app = FastAPI() @app.post("/api/chatkit/session") def create_chatkit_session( user_id: Annotated[str, Depends(get_authenticated_user_id)], ): response = requests.post( "https://api.openai.com/v1/chatkit/sessions", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "OpenAI-Beta": "chatkit_beta=v1", }, json={ "workflow": {"id": workflow_id}, "user": user_id, }, timeout=30, ) response.raise_for_status() session = ChatKitSession.model_validate(response.json()) return {"client_secret": session.client_secret}Pour Ruby, installez WEBrick avec
gem install webrick.Avant de démarrer le service, remplacez
wf_123par l’identifiant de votre workflow et définissezOPENAI_API_KEYetCHATKIT_AUTHENTICATED_USERS. Cette dernière variable contient un objet JSON qui associe chaque jeton Bearer de votre application à un identifiant utilisateur stable. En production, remplacez cette table de correspondance stockée dans une variable d’environnement par le mécanisme d’authentification ou de recherche de session de votre application. -
Dans votre code côté serveur, transmettez l’identifiant de votre workflow et votre clé secrète au point de terminaison de session.
Le secret client permet à votre interface ChatKit d’ouvrir ou d’actualiser la session de discussion. Transmettez-le immédiatement à la bibliothèque cliente de ChatKit sans le stocker.
Consultez le dépôt chatkit-js sur GitHub.
Pour Go, exécutez
go get github.com/openai/openai-go/v3@v3.70.0. Pour Java, ajoutez la dépendance Mavencom.openai:openai-java:4.75.1.Créez un jeton de session ChatKitJavaScriptexport default async function getChatKitSessionToken(deviceId) { const apiKey = process.env.OPENAI_API_KEY; if (!apiKey) { throw new Error("OPENAI_API_KEY is required"); } const response = await fetch("https://api.openai.com/v1/chatkit/sessions", { method: "POST", headers: { "Content-Type": "application/json", "OpenAI-Beta": "chatkit_beta=v1", Authorization: `Bearer ${apiKey}`, }, body: JSON.stringify({ workflow: { id: "wf_68df4b13b3588190a09d19288d4610ec0df388c3983f58d1" }, user: deviceId, }), }); if (!response.ok) { throw new Error( `Failed to create a ChatKit session: ${response.status} ${await response.text()}` ); } const { client_secret } = await response.json(); if (!client_secret) { throw new Error("ChatKit session response did not include client_secret"); } return client_secret; } -
Dans le répertoire de votre projet, installez les liaisons React de ChatKit :
npm install @openai/chatkit-react -
Ajoutez le script JavaScript de ChatKit à votre page. Insérez cet extrait dans le
<head>de votre page ou à l’endroit où vous chargez vos scripts. Le navigateur téléchargera et exécutera ChatKit.index.html<script src="https://cdn.platform.openai.com/deployments/chatkit/chatkit.js" async ></script> -
Affichez ChatKit dans votre interface. Passez au composant React
MyChatune fonctiongetAppAuthTokenqui renvoie le jeton Bearer de l’utilisateur actuel. Si vous utilisez l’onglet JavaScript, assurez-vous que cette même fonction est accessible dans la portée de l’extrait de code. Ce code envoie le jeton à votre serveur, récupère le secret client et monte un widget de discussion en direct connecté à votre workflow.Votre code côté clientreactimport { ChatKit, useChatKit } from '@openai/chatkit-react'; export function MyChat({ getAppAuthToken }) { const { control } = useChatKit({ api: { async getClientSecret(existing) { if (existing) { // implement session refresh } const appAuthToken = await getAppAuthToken(); const res = await fetch('/api/chatkit/session', { method: 'POST', headers: { 'Authorization': 'Bearer ' + appAuthToken, 'Content-Type': 'application/json', }, }); const { client_secret } = await res.json(); return client_secret; }, }, }); return <ChatKit control={control} className="h-[600px] w-[320px]" />; }
3. Développez et affinez votre intégration
Consultez la documentation sur la personnalisation des thèmes, les widgets et les actions pour mieux comprendre le fonctionnement de ChatKit. Vous pouvez aussi explorer les ressources suivantes pour tester votre interface de discussion, affiner vos prompts et ajouter des widgets et des outils.
Développez votre intégration
Découvrez notamment comment gérer l’authentification, ajouter des thèmes et personnaliser l’interface.
Ajoutez du stockage côté serveur, des contrôles d’accès, des outils et d’autres fonctionnalités backend.
Consultez le dépôt JavaScript de ChatKit.
Explorez l’interface de ChatKit
Essayez une démo interactive de ChatKit.
Parcourez les widgets disponibles.
Prenez ChatKit en main grâce à une démo interactive.
Découvrez des exemples fonctionnels
Inspirez-vous d’exemples concrets de ChatKit en fonctionnement.
Clonez le dépôt pour démarrer avec un modèle d’application entièrement fonctionnel.
Étapes suivantes
Lorsque votre intégration de ChatKit vous convient, découvrez comment l’optimiser à l’aide d’évaluations. Pour créer une application ChatKit ou migrer une application ChatKit existante qui repose sur un workflow hébergé dans Agent Builder, consultez la documentation sur l’intégration avancée.