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

API d'interprète de code

Exécutez du code de manière sécurisée et gérez vos fichiers en toute transparence avec l'API Code Interpreter de LibreChat

Introduction

L'API Code Interpreter de LibreChat offre un moyen sécurisé et sans tracas d'exécuter du code et de gérer des fichiers via une interface API simple. Que vous l'utilisiez via les Agents de LibreChat ou que vous l'intégriez directement dans vos applications, l'API offre un environnement sandbox puissant pour exécuter du code dans plusieurs langages de programmation.

Démo de l'interprète de code

Open source

L'interpréteur de code de LibreChat est propulsé par ClickHouse/code-interpreter, un service d'exécution de code en bac à sable open-source (Apache 2.0). Hébergez-le vous-même et pointez LibreChat vers votre propre instance.

Démarrage

  1. Déployez le service code-interpreter (Docker Compose ou Helm, consultez le README du dépôt)
  2. Pointez LibreChat vers celui-ci avec les variables d'environnement LIBRECHAT_CODE_BASEURL et LIBRECHAT_CODE_API_KEY
  3. Commencez à exécuter du code et à générer des fichiers de manière sécurisée via les Agents de LibreChat ou le bouton "Run Code"

Fonctionnalités clés

Langues prises en charge

Exécutez du code dans plusieurs langages de programmation :

  • Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, Fortran, Rscript

Gestion transparente des fichiers

  • Téléverser des fichiers pour traitement
  • Télécharger les sorties générées
  • Gestion sécurisée des fichiers
  • Organisation des fichiers basée sur la session

Sécurité et commodité

  • Environnement d'exécution sécurisé et isolé (sandboxed)
  • Modes d'isolation renforcés (NsJail ou microVM via libkrun)
  • Aucune configuration locale requise pour les utilisateurs finaux
  • Stockage de fichiers isolé, basé sur la session

Appel d'outils programmatique

L'appel d'outils programmatique (Programmatic Tool Calling) permet aux agents LibreChat d'acheminer les outils MCP sélectionnés via le bac à sable (sandbox) de l'interpréteur de code (Code Interpreter). Au lieu de demander au modèle d'appeler chaque outil directement, LibreChat fournit un outil d'orchestration basé sur l'interpréteur de code ; le code généré dans le bac à sable peut appeler des stubs d'outils enregistrés, utiliser des boucles et des conditions, traiter des résultats intermédiaires et renvoyer une réponse finale.

Le sandbox ne reçoit toujours pas d'accès réseau général. Les appels d'outils sont négociés via le Code Interpreter Tool Call Server et la carte d'outils enregistrée de LibreChat, de sorte que seuls les outils disponibles pour l'agent peuvent être appelés.

Utilisation de l'API

Dans LibreChat

L'API bénéficie d'une prise en charge de premier ordre dans LibreChat via ces méthodes principales :

  1. Agents IA : Activez l'Interpréteur de code dans la configuration de votre agent pour lui permettre d'exécuter du code et de traiter des fichiers automatiquement.

  2. Exécution manuelle : Utilisez le bouton "Run Code" dans les blocs de code au sein de l'interface de chat, comme indiqué ici :

  3. Appel d'outils programmatique : Activez la fonctionnalité programmatic_tools et marquez les outils MCP sélectionnés comme étant programmatiques afin que les agents puissent orchestrer ces outils à partir de code en bac à sable (sandboxed).

Code Interpreter dans LibreChat

Configurer la clé API

  • Configuration par utilisateur : saisissez votre clé API dans LibreChat lorsque vous y êtes invité (en utilisant les méthodes ci-dessus)
  • Configuration globale : utilisez la variable d'environnement LIBRECHAT_CODE_API_KEY dans le fichier .env de votre projet (donne accès à tous les utilisateurs)

Intégration directe de l'API

L'API Code Interpreter peut être intégrée dans n'importe quelle application en utilisant une authentification par clé API simple :

  1. Déployez votre propre instance code-interpreter et créez une clé API
  2. Incluez la clé API dans vos requêtes en utilisant l'en-tête x-api-key

URL de base auto-hébergée

Définissez la variable d'environnement LIBRECHAT_CODE_BASEURL pour pointer LibreChat vers votre instance auto-hébergée de code-interpreter, accompagnée d'une clé API générée sur ce déploiement, utilisée de la même manière que ci-dessus.

Fonctionnalités principales

Exécution de code

  • Exécuter des extraits de code dans les langages pris en charge
  • Recevoir la sortie stdout/stderr
  • Obtenir les statistiques d'exécution (utilisation de la mémoire, temps CPU)
  • Gérer les arguments du programme
  • Accéder au statut d'exécution et aux résultats

Opérations sur les fichiers

  • Télécharger des fichiers d'entrée
  • Télécharger les sorties générées
  • Prévisualisez les artefacts de type Office, CSV, texte et PDF générés en ligne lorsque LibreChat peut les extraire/rendre en toute sécurité
  • Lister les fichiers disponibles
  • Supprimer les fichiers inutiles
  • Gérer les sessions de fichiers

Les aperçus d'artefacts générés sont intentionnellement limités en taille. Définissez FILE_PREVIEW_MAX_EXTRACT_BYTES dans le fichier .env de LibreChat pour modifier la limite de taille des fichiers sources pour l'extraction d'aperçus en ligne ; les fichiers plus volumineux restent disponibles au téléchargement.

Limitations

  • Le code ne peut pas accéder au réseau
  • Seuls 10 fichiers peuvent être générés par exécution
  • Les limites de ressources (RAM par exécution, taille de téléchargement de fichiers et quotas de requêtes) dépendent de la manière dont vous provisionnez et configurez votre déploiement.

Cas d'utilisation

  • Test de code : Testez des extraits de code dans plusieurs langages
  • Traitement de fichiers : Transformez et analysez des fichiers par programmation
  • Applications IA : Exécutez du code généré par l'IA en toute sécurité
  • Outils de développement : Créez des environnements de programmation interactifs
  • Logique objective : Vérifier la logique et l'exactitude du code, en améliorant les modèles d'IA

Open Source & Self-Hosting

Le service Code Interpreter est open source sous licence Apache 2.0 sur ClickHouse/code-interpreter. Maintenir l'exécution du code en tant que service séparé permet à l'application principale LibreChat de rester légère : vous ne déployez l'infrastructure sandbox que lorsque vous en avez besoin, et vous pouvez la mettre à l'échelle indépendamment de l'application de chat.

Le service s'exécute sous la forme d'un ensemble de composants évolutifs indépendamment (une passerelle API, des workers en bac à sable et un serveur de fichiers) et prend en charge des modes d'isolation robustes (NsJail ou une microVM via libkrun) afin que vous puissiez exécuter du code non fiable en toute sécurité. Consultez le README du dépôt pour les instructions de déploiement avec Docker Compose et Helm.


Conclusion

L'API Code Interpreter fournit un moyen sécurisé et pratique d'exécuter du code et de gérer des fichiers dans un bac à sable isolé. Que vous l'utilisiez via les Agents de LibreChat ou que vous l'intégriez directement dans vos applications, elle offre une solution robuste pour les besoins d'exécution de code.

Pour des spécifications techniques détaillées, des guides de déploiement et la référence de l'API, consultez le code-interpreter repository.

#LibreChat #CodeExecution #API #Development

Que pensez-vous de ce guide ?