Gan-Tu/Widgets

A compact, schema-driven open source alternative to OpenAI ChatKit widgets.

何を解決するか

このプロジェクトは、チャットインターフェース内にコンパクトで構造化されたUIウィジェットをレンダリングする方法を提供します。開発者が単純なテキスト応答にとどまらず、テンプレートとデータを用いた標準化されたシステムにより、チャート、フォーム、エージェント固有のプリミティブなど、豊富でインタラクティブなコンポーネントをレンダリングできるようにします。

動作方法

システムは WidgetRenderer を使用し、3つの主要な入力を受け取ります:UIテンプレート文字列(厳密なJSXに似た言語で記述)、オプションのZodスキーマ(データ検証用)、および実際のデータオブジェクト。

安全性和予測可能性を確保するために、レンダラーは制限されたテンプレートエンジンを使用しており、宣言的ロジック(バインディング、条件、ループ)をサポートしますが、任意のJavaScriptの実行を禁止しています。142の事前登録済みコンポーネント(基本的なレイアウトやタイポグラフィから、ThinkingReasoningStreamingText といった複雑なエージェントネイティブプリミティブまで)のライブラリを備えています。インタラクションはローカルクライアントアクション(例:テキストのコピー、URLの開封)または onAction コールバック経由でホストアプリケーションに転送されます。

対象ユーザー

AIチャットUIやエージェントベースのアプリケーションを開発しており、あらゆるAI出力に対して個別にReactコンポーネントを手動で構築しなくても、構造化されたインタラクティブな視覚的応答を提供したい開発者。

特徴

  • 豊富なコンポーネントライブラリ:チャート、フォーム、ワークスペースプリミティブを含む142の組み込みコンポーネント。
  • スキーマ検証:レンダリング前にデータが有効であることを保証するためのオプションのZod統合。
  • 安全なテンプレート:任意のJS実行を防ぎつつ、ループや条件付きレンダリングをサポートする制限付きJSXに似た言語。
  • エージェントネイティブプリミティブ:推論ブロックや承認カードなど、AIインタラクションに特化したコンポーネント。
  • テーマサポート:CSSデザイントークンを介して完全にカスタマイズ可能で、組み込みのライトモードとダークモード対応。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト