メインコンテンツまでスキップ
@asgard-js/core JavaScript SDK 參考文件

JavaScript SDK (@asgard-js/core)

@asgard-js/core 是框架無關的 JavaScript SDK,處理 SSE 串流連線、Channel 管理與 Conversation 狀態。適用於 Node.js、瀏覽器,以及不使用 @asgard-js/react 元件的場景(Headless、Vue、Svelte 等)。

使用 React?

若你用 React,通常不需要直接使用 @asgard-js/core。改用 @asgard-js/react<Chatbot> 元件即可,詳見 React SDK 參考文件

安裝

npm install @asgard-js/core

核心概念

類別說明
AsgardServiceClient連線設定(endpoint、apiKey、customHeaders)
Channel一個對話頻道,透過 SSE 與 Bot Provider 通訊
Conversation儲存訊息狀態的容器

基本使用

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('isConnecting:', states.isConnecting);
console.log(
'Messages:',
Array.from(states.conversation.messages.values()),
);
},
});

await channel.sendMessage({ text: '你好!' });

AsgardServiceClient 設定

參數型別必填說明
botProviderEndpointstringBot Provider 的 base URL
apiKeystringAPI 金鑰(Direct Connect 模式)
customHeadersRecord<string, string>自訂 HTTP header

互動式 Demo

@asgard-js/core 的 Headless 用法與事件處理範例:SDK Demo — Headless

延伸閱讀