ガイド
SDK
公開している SDK は Flutter ウィジェット 1 つ、そしてあらゆる言語から呼び出せる REST API と OpenAPI 仕様。
AskAIs はプロトコルファーストです。1 つの OpenAPI 3.1 仕様、1 つの WebSocket プロトコル、そして HMAC 署名付き webhook。API はあらゆる言語から呼び出し、自前の UI を描画できます。現在公開しているパッケージ済み UI SDK は 1 つ、ネイティブ Flutter ウィジェットです。
公開している SDK:Flutter ウィジェット
現在提供している唯一の SDK は sdks/flutter-widget/ にあります。テーマ変更可能な完全なチャット UI で、REST API と WebSocket との通信を代わりに行います。ローカルパッケージとして pubspec.yaml に追加してください。
# pubspec.yaml
dependencies:
singchat_widget:
path: ../sdks/flutter-widgetiOS と Android
iOS と Android 用の独立したネイティブ SDK はありません。サポートされる方法は 2 つです。
- WebView(推奨)、
/api/widget-embedからウェブウィジェットを読み込みます。全機能のウィジェットで自動更新されるため、新しいチャット機能のためにアプリをリリースし直す必要はありません。 - REST API、API を直接呼び出して自前のネイティブ UI を描画します。
既製の SwiftUI や Jetpack Compose のチャットビューはありません。WebView を埋め込むか、API の上に自分で UI を構築します。
その他の言語:REST API を呼び出す
Python、Go、Rust、C#、Java、PHP、Ruby などの事前ビルド済みクライアントは提供しておらず、公式の React Native、Unity、Unreal の SDK もありません。代わりに OpenAPI 3.1 仕様を備えた公開 REST API があり、素の HTTP で呼び出すか、自分でクライアントを生成できます。
- OpenAPI:
GET /api/v1/openapi.json - WebSocket:イベント JSON については Web ウィジェットのドキュメントを参照してください
openapi-generator で、必要な言語のクライアントを生成します。
# generate a client from the public spec
npx @openapitools/openapi-generator-cli generate \
-i https://singchat.org/api/v1/openapi.json \
-g python \
-o ./singchat-clientAskAIs が提供するもの
ウィジェット以外にも、以下の機能が現在稼働しています。
- 統合インボックス、ウェブウィジェット、Telegram、WhatsApp をまたぎ、X(Twitter)の枠も用意済みです。
- プラットフォームホスト型 AI:API キー不要、トークン従量課金、自動チャージと人間へのフォールバックに対応、または自分のキーを使用可能。
- AI トレーニングセンター:サイトをクロールし、PDF、Word、DOCX ファイルをアップロードし、CSV から Q&A ペアを追加し、公開前の Playground でリハーサルできます。
- 50 言語のヘルプセンター、自己解決の記事と FAQ を提供します。
- 完全なホワイトラベル、すべての顧客向け画面にわたります。
- ブロック回避マルチドメイン配信、ウィジェット向けです。
クイック例
Flutter widget
import 'package:singchat_widget/singchat_widget.dart';
// mount the themeable chat UI
SingChatWidget(
appId: 'ws_abc123',
user: SingChatUser(
externalId: 'user_42',
email: 'ada@example.com',
),
)iOS WebView
import WebKit
let webView = WKWebView(frame: view.bounds)
let url = URL(string: "https://singchat.org/api/widget-embed?appId=ws_abc123")!
webView.load(URLRequest(url: url))
view.addSubview(webView)Android WebView
val webView = WebView(this)
webView.settings.javaScriptEnabled = true
webView.loadUrl("https://singchat.org/api/widget-embed?appId=ws_abc123")
setContentView(webView)生の curl
# identify against the REST API (any language, no library)
curl https://singchat.org/api/v1/auth/identify \
-H "Content-Type: application/json" \
-d '{ "appId": "ws_abc123", "email": "ada@example.com" }'