가이드
SDK
공개된 SDK는 Flutter 위젯 하나, 그리고 모든 언어에서 호출할 수 있는 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에서 웹 위젯을 로드합니다. 전체 기능 위젯이며 자동으로 업데이트되므로, 새 채팅 기능을 얻기 위해 앱을 다시 릴리스할 필요가 없습니다. - 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" }'