SDK 總覽
Asgard 提供官方 JavaScript 與 React SDK,讓開發者能快速整合聊天機器人功能,無需自行處理底層 API 細節。
SDK 提供什麼
- 簡化 API 存取:封裝 REST API 請求,統一管理驗證與端點設定
- SSE 串流處理:自動處理 Server-Sent Events,即時接收機器人回應
- Channel 管理:內建 session 持久化,支援多輪對話
- React 元件:
@asgard-js/react提供現成的聊天室 UI 元件與 Hook
安裝
JavaScript SDK
適用於所有 JavaScript 環境(Node.js、瀏覽器、框架無關):
npm install @asgard-js/core
React SDK
適用於 React 應用程式,包含 UI 元件與 Hook:
npm install @asgard-js/react
@asgard-js/react以@asgard-js/core為 peer dependency,請確保兩者都已安裝。
快速開始
以下範例展示如何使用 @asgard-js/core 發送訊息並接收串流回應:
import { AsgardClient } from '@asgard-js/core';
const client = new AsgardClient({
baseUrl: 'https://api.asgard.example.com',
namespace: 'my-namespace',
botProviderName: 'my-bot',
apiKey: 'your-api-key',
});
await client.sendMessage({
message: '你好,請介紹一下你自己',
onMessage: (content) => {
process.stdout.write(content);
},
onComplete: (fullMessage) => {
console.log('\n[完成]', fullMessage);
},
onError: (error) => {
console.error('發生錯誤:', error);
},
});
如果使用 React,可以用 AsgardProvider 與 useAsgard Hook 更簡潔地整合:
import { AsgardProvider, useAsgard } from '@asgard-js/react';
function App() {
return (
<AsgardProvider
baseUrl="https://api.asgard.example.com"
namespace="my-namespace"
botProviderName="my-bot"
apiKey="your-api-key"
>
<ChatWidget />
</AsgardProvider>
);
}
function ChatWidget() {
const { sendMessage, messages, isLoading } = useAsgard();
return (
<div>
{messages.map((msg, i) => (
<div key={i}>{msg.content}</div>
))}
<button onClick={() => sendMessage('你好!')} disabled={isLoading}>
發送
</button>
</div>
);
}
SDK 與直接呼叫 REST API 比較
| 功能 | SDK | REST API |
|---|---|---|
| SSE 串流處理 | 自動處理 | 需自行實作 |
| 驗證設定 | 初始化一次,自動帶入 | 每次請求需手動加入 header |
| Channel 管理 | 內建 session 持久化 | 需自行維護 channelId |
| React 整合 | 提供 Hook 與元件 | 需自行封裝 |
| 錯誤處理 | 統一錯誤介面 | 需自行解析各類錯誤 |
| TypeScript 支援 | 完整型別定義 | 需自行定義型別 |
延伸閱讀
- JavaScript SDK 參考文件 —
@asgard-js/core完整 API 說明 - React SDK 參考文件 —
@asgard-js/react元件與 Hook 說明
GitHub
原始碼與最新版本:asgard-ai-platform/asgard-js-sdk