SDK 概要
Asgard は JavaScript と React の公式 SDK を提供しています。低レベルな API の詳細を自分で扱わずに、チャットボット機能を組み込めます。
SDK が提供するもの
- API アクセスの簡素化: REST リクエストをラップし、認証とエンドポイント設定を一箇所にまとめます
- SSE ストリームの処理: Server-Sent Events を自動で処理し、ボットの応答を生成されたそばから受け取れます
- Channel の管理: セッションの永続化が組み込まれており、複数ターンの対話に対応します
- React コンポーネント:
@asgard-js/reactがすぐ使えるチャット UI とフックを同梱しています
インストール
JavaScript SDK
あらゆる JavaScript 環境(Node.js、ブラウザ、フレームワーク非依存)向けです。
npm install @asgard-js/core
React SDK
React アプリケーション向けで、UI コンポーネントとフックを含みます。
npm install @asgard-js/react
@asgard-js/reactは@asgard-js/coreを peer dependency とするため、両方をインストールしてください。
クイックスタート
次の例は @asgard-js/core の低レベル API でメッセージを送り、ストリーミング応答を受け取るものです。
import { AsgardServiceClient, Channel, Conversation } from '@asgard-js/core';
const client = new AsgardServiceClient({
botProviderEndpoint:
'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
});
const conversation = new Conversation({ messages: new Map() });
const channel = await Channel.reset({
client,
customChannelId: 'channel-123',
conversation,
statesObserver: (states) => {
console.log('Messages:', Array.from(states.conversation.messages.values()));
},
});
await channel.sendMessage({ text: 'こんにちは、自己紹介をお願いします' });
React を使う場合は <Chatbot> コンポーネントから始めるのが簡単です。
import { Chatbot } from '@asgard-js/react';
import '@asgard-js/react/style';
export default function App() {
return (
<div style={{ height: '100vh' }}>
<Chatbot
title="マイ AI アシスタント"
customChannelId="user-123"
config={{
botProviderEndpoint:
'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
}}
/>
</div>
);
}
SDK と REST API 直接呼び出しの比較
| 機能 | SDK | REST API |
|---|---|---|
| SSE ストリームの処理 | 自動 | 自前で実装 |
| 認証 | 初期化時に一度設定すれば自動付与 | リクエストごとにヘッダーを付与 |
| Channel の管理 | セッション永続化が組み込み済み | channelId を自前で保持 |
| React 連携 | フックとコンポーネントを提供 | 自前でラップ |
| エラー処理 | 統一されたエラーインターフェース | 種類ごとに自前で解析 |
| TypeScript 対応 | 完全な型定義 | 自前で型を定義 |
関連ドキュメント
- JavaScript SDK リファレンス —
@asgard-js/coreの全 API - React SDK リファレンス —
@asgard-js/reactのコンポーネントとフック - SDK Demo — SDK の各機能を実際に動かせるサンプル(メッセージテンプレート、テーマ、認証、headless での利用など)
- SDK Demo — 統合の全体像 — ボットの作成からフロントエンド公開までの一連の流れ
GitHub
ソースコードと最新版: asgard-ai-platform/asgard-js-sdk