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

Code Interpreter API

LibreChatのCode Interpreter APIを使用して、安全にコードを実行し、ファイルをシームレスに管理しましょう

はじめに

LibreChatのCode Interpreter APIは、シンプルなAPIインターフェースを通じて、安全かつ手軽にコードを実行し、ファイルを管理する方法を提供します。LibreChatのAgentsを通じて使用する場合でも、アプリケーションに直接統合する場合でも、このAPIは複数のプログラミング言語でコードを実行するための強力なサンドボックス環境を提供します。

Code Interpreter デモ

オープンソース

LibreChatのCode Interpreterは、オープンソース(Apache 2.0)のサンドボックス化されたコード実行サービスであるClickHouse/code-interpreterによって提供されています。これをセルフホストし、LibreChatから自身のインスタンスを指定してください。

はじめに

  1. code-interpreter サービスをデプロイします(Docker Compose または Helm を使用。リポジトリの README を参照してください)
  2. LIBRECHAT_CODE_BASEURL および LIBRECHAT_CODE_API_KEY 環境変数を使用して、LibreChat をそれに向けるように設定します。
  3. LibreChatのAgentsまたは「Run Code」ボタンを使用して、安全にコードの実行やファイルの生成を開始します。

主な機能

対応言語

複数のプログラミング言語でコードを実行する:

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

シームレスなファイル処理

  • 処理のためにファイルをアップロード
  • 生成された出力をダウンロード
  • 安全なファイル管理
  • セッションベースのファイル整理

セキュリティと利便性

  • 安全なサンドボックス化された実行環境
  • 強力な分離モード (NsJail または libkrun による microVM)
  • エンドユーザー向けのローカルセットアップは不要です
  • セッションベースの分離されたファイルストレージ

Programmatic Tool Calling

Programmatic Tool Calling(プログラムによるツール呼び出し)を使用すると、LibreChatのAgentは選択したMCPツールをCode Interpreterのサンドボックス経由でルーティングできるようになります。モデルに各ツールを直接呼び出すよう指示する代わりに、LibreChatはCode Interpreterによってバックアップされたオーケストレーションツールを提供します。生成されたサンドボックスコードは、登録されたツールスタブの呼び出し、ループや条件分岐の使用、中間結果の処理を行い、最終的な回答を返すことができます。

サンドボックスは依然として一般的なネットワークアクセスを受け取りません。ツール呼び出しは Code Interpreter Tool Call Server および LibreChat の登録済みツールマップを介して仲介されるため、エージェントが利用可能なツールのみが呼び出し可能です。

APIの使用

LibreChatにて

LibreChatでは、以下の主要な方法を通じてAPIがファーストクラスでサポートされています。

  1. AI Agents: エージェントの設定で Code Interpreter を有効にすると、コードを実行してファイルを自動的に処理できるようになります。

  2. 手動実行: チャットインターフェース内のコードブロックにある「Run Code」ボタンを使用します(以下を参照)。

  3. Programmatic Tool Calling: programmatic_tools 機能を有効にし、選択した MCP ツールを Programmatic としてマークすることで、エージェントがサンドボックス化されたコードからそれらのツールをオーケストレーションできるようにします。

LibreChatでのコードインタープリター

APIキーの設定

  • ユーザーごとのセットアップ: プロンプトが表示されたら、LibreChatにAPIキーを入力します(上記の方法を使用してください)。
  • グローバル設定: プロジェクトの .env ファイルで LIBRECHAT_CODE_API_KEY 環境変数を使用します(すべてのユーザーにアクセス権を付与します)

直接API統合

Code Interpreter APIは、シンプルなAPIキー認証を使用して任意のアプリケーションに統合できます:

  1. 独自の code-interpreter インスタンスをデプロイし、APIキーを作成します
  2. x-api-key ヘッダーを使用して、リクエストに API キーを含めてください。

セルフホストのベースURL

LIBRECHAT_CODE_BASEURL 環境変数を設定して、LibreChat がセルフホストしている code-interpreter インスタンスを指すようにします。また、そのデプロイメントで生成された API キーを上記と同様の方法で使用してください。

コア機能

Code Execution

  • サポートされている言語でコードスニペットを実行する
  • stdout/stderr出力を受信する
  • 実行統計(メモリ使用量、CPU時間)を取得する
  • プログラム引数を処理する
  • 実行ステータスと結果へのアクセス

ファイル操作

  • 入力ファイルをアップロード
  • 生成された出力をダウンロード
  • LibreChatが安全に抽出・レンダリングできる場合、生成されたOffice、CSV、テキスト、およびPDFのようなアーティファクトをインラインでプレビューします。
  • 利用可能なファイルの一覧を表示
  • 不要なファイルを削除
  • ファイルセッションの管理

生成されたアーティファクトのプレビューは、意図的にサイズ制限が設けられています。インラインプレビュー抽出のソースファイルサイズ制限を変更するには、LibreChatの.envFILE_PREVIEW_MAX_EXTRACT_BYTESを設定してください。これより大きいファイルは、引き続きダウンロード可能です。

制限事項

  • コードはネットワークにアクセスできません
  • 1回の実行につき最大10ファイルまで生成可能です
  • リソース制限(実行あたりのRAM、ファイルアップロードサイズ、リクエストクォータ)は、デプロイメントのプロビジョニングおよび設定方法に依存します。

ユースケース

  • コードのテスト: 複数の言語でコードスニペットをテストします
  • File Processing: プログラムでファイルを変換および分析する
  • AI Applications: AIが生成したコードを安全に実行
  • Development Tools: インタラクティブなコーディング環境を構築する
  • Objective Logic: コードのロジックと正確性を検証し、AIモデルを改善する

オープンソースとセルフホスティング

Code Interpreterサービスは、Apache 2.0ライセンスの下でClickHouse/code-interpreterにてオープンソースとして公開されています。コード実行を独立したサービスとして維持することで、LibreChatのコアアプリケーションを軽量に保つことができます。つまり、サンドボックスインフラストラクチャが必要な場合にのみデプロイすればよく、チャットアプリとは独立してスケーリングすることが可能です。

このサービスは、独立してスケーリング可能なコンポーネント(APIゲートウェイ、サンドボックス化されたワーカー、ファイルサーバー)のセットとして実行され、強力な分離モード(NsJailまたはlibkrunを介したmicroVM)をサポートしているため、信頼できないコードを安全に実行できます。Docker ComposeおよびHelmのデプロイ手順については、リポジトリのREADMEを参照してください。


結論

Code Interpreter APIは、分離されたサンドボックス内でコードを実行し、ファイルを管理するための安全で便利な方法を提供します。LibreChatのAgentsを通じて使用する場合でも、アプリケーションに直接統合する場合でも、コード実行のニーズに対して堅牢なソリューションを提供します。

詳細な技術仕様、デプロイガイド、およびAPIリファレンスについては、code-interpreter repositoryを参照してください。

#LibreChat #CodeExecution #API #Development

このガイドはいかがでしたか?