一个自包含的 Android 聊天应用,直接调用智谱 AI 的 Anthropic 兼容 API,无需后端服务。
┌──────────────┐ HTTPS ┌─────────────────────┐ │ Android APK │ ─────────────────► │ 智谱 AI API │ │ (React Native)│ Anthropic 兼容格式 │ open.bigmodel.cn │ │ │ ◄───────────────── │ │ │ 流式显示回复 │ SSE 流式响应 │ 模型: glm-5.1 等 │ └──────────────┘ └─────────────────────┘
| 组件 | 技术 |
|---|---|
| 框架 | Expo SDK 54 + React Native 0.81.5 |
| 语言 | TypeScript |
| API 协议 | Anthropic Messages API (SSE 流式) |
| 构建 | CNB Cloud Build (Docker + Gradle) |
| Android SDK | 34 |
claude-chat-expo/ ├── App.tsx # 入口 ├── components/ │ ├── ChatScreen.tsx # 主界面 + 设置页 │ └── MessageBubble.tsx # 消息气泡组件 └── services/ └── ClaudeApi.ts # API 客户端 (XHR + SSE)
从 CNB 构建产物下载 app-release.apk,安装到 Android 手机。
首次打开进入设置页面,填写:
| 字段 | 说明 | 示例 |
|---|---|---|
| API Base URL | 智谱 AI 的 Anthropic 兼容端点 | https://open.bigmodel.cn/api/anthropic |
| API Key | 智谱 AI API 密钥 | xxxxxxxx.xxxxxxxx |
| Model | 模型名称 | glm-5.1 |
点击「开始聊天」即可对话,回复会流式逐字显示。
.cnb.yml 定义了 CI 流水线:
setup-node → install-deps → expo-prebuild → build-apk → package-apk → upload-apk
推送代码后通过 API 触发:
curl -X POST \
-H "Authorization: Bearer $CNB_TOKEN" \
-H "Content-Type: application/json" \
"https://api.cnb.cool/{repo}/-/build/start" \
-d '{"branch":"main","event":"api_trigger"}'
构建完成后 APK 自动上传至 CNB commit 产物,可直接下载。
cd claude-chat-expo
npm install
npx expo prebuild --platform android --clean
cd android && chmod +x gradlew
./gradlew assembleRelease
APK 位置: claude-chat-expo/android/app/build/outputs/apk/release/app-release.apk
使用 Anthropic Messages API 格式:
POST {baseUrl}/v1/messagesx-api-key 请求头stream: true,解析 SSE content_block_delta 事件