Gan-Tu/Widgets
A compact, schema-driven open source alternative to OpenAI ChatKit widgets.
何を解決するか
このプロジェクトは、チャットインターフェース内にコンパクトで構造化されたUIウィジェットをレンダリングする方法を提供します。開発者が単純なテキスト応答にとどまらず、テンプレートとデータを用いた標準化されたシステムにより、チャート、フォーム、エージェント固有のプリミティブなど、豊富でインタラクティブなコンポーネントをレンダリングできるようにします。
動作方法
システムは WidgetRenderer を使用し、3つの主要な入力を受け取ります:UIテンプレート文字列(厳密なJSXに似た言語で記述)、オプションのZodスキーマ(データ検証用)、および実際のデータオブジェクト。
安全性和予測可能性を確保するために、レンダラーは制限されたテンプレートエンジンを使用しており、宣言的ロジック(バインディング、条件、ループ)をサポートしますが、任意のJavaScriptの実行を禁止しています。142の事前登録済みコンポーネント(基本的なレイアウトやタイポグラフィから、ThinkingReasoning や StreamingText といった複雑なエージェントネイティブプリミティブまで)のライブラリを備えています。インタラクションはローカルクライアントアクション(例:テキストのコピー、URLの開封)または onAction コールバック経由でホストアプリケーションに転送されます。
対象ユーザー
AIチャットUIやエージェントベースのアプリケーションを開発しており、あらゆるAI出力に対して個別にReactコンポーネントを手動で構築しなくても、構造化されたインタラクティブな視覚的応答を提供したい開発者。
特徴
- 豊富なコンポーネントライブラリ:チャート、フォーム、ワークスペースプリミティブを含む142の組み込みコンポーネント。
- スキーマ検証:レンダリング前にデータが有効であることを保証するためのオプションのZod統合。
- 安全なテンプレート:任意のJS実行を防ぎつつ、ループや条件付きレンダリングをサポートする制限付きJSXに似た言語。
- エージェントネイティブプリミティブ:推論ブロックや承認カードなど、AIインタラクションに特化したコンポーネント。
- テーマサポート:CSSデザイントークンを介して完全にカスタマイズ可能で、組み込みのライトモードとダークモード対応。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト