指南
SDK
一个已发布的 Flutter 挂件 SDK,外加可用任意语言调用的 REST API 和 OpenAPI 规范。
AskAIs 采用协议优先的方式:一份 OpenAPI 3.1 规范、一套 WebSocket 协议,以及经 HMAC 签名的 webhook。你可以用任意语言调用 API 并渲染自己的 UI。目前我们只发布一个打包好的 UI SDK,即原生 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。有两条受支持的路径:
- WebView(推荐),从
/api/widget-embed加载网页挂件。它是全功能挂件并会自动更新,因此你无需为获得新的聊天功能而发布新的 App 版本。 - 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 key,按 token 计费,支持自动充值与人工兜底,也可自带密钥。
- AI 训练中心:爬取你的网站,上传 PDF、Word 或 DOCX 文件,通过 CSV 添加问答对,并在上线前的 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" }'