面向 iPad / iOS 6.1.3 等老旧设备的原生 Objective-C AI 对话客户端,兼容 OpenAI 与 Anthropic 接口。
- 支持三种接口模式:OpenAI Responses、OpenAI Chat Completions、Anthropic Messages。
- 设置页可自定义 API Base URL、API Key,并可拉取
/v1/models模型列表或手动输入自定义模型名。 - 文字对话、图片上传、流式(streaming)输出。
- 多会话管理:新建、删除、清空对话,本地持久化历史记录。
- 消息以左右聊天气泡展示,附带时间戳;点击消息可复制文字、查看大图、保存图片到相册、复制图片或分享。
- 可调节 reasoning / thinking effort:none、minimal、low、medium、high、xhigh。
- Responses 模式下支持通过
tools参数开关 OpenAI 内置的网页搜索与图片生成工具。
| 文件 | 作用 |
|---|---|
AIPadChat/AIClient.m |
接口请求与流式响应解析 |
AIPadChat/AIConfig.m |
API 地址、Key、默认模型等配置管理 |
AIPadChat/ChatViewController.m |
主聊天界面 |
AIPadChat/SettingsViewController.m |
设置页 |
AIPadChat/AIStore.m |
会话历史本地存储 |
AIPadChat/AIConversation.m、AIMessage.m |
会话与消息模型 |
AIPadChat/MessageCell.m、HistoryViewController.m |
聊天气泡、历史列表 UI |
首次运行需要在设置页填写你自己的 API Key(OpenAI / Anthropic)与 API Base URL,配置保存在本地 NSUserDefaults 中,不会随代码上传,也不包含在本仓库中。
用支持对应 iOS SDK 的 Xcode 打开 AIPadChat.xcodeproj 直接编译运行/真机安装。
依赖:
ldid(brew install ldid)- iPhoneOS SDK(例如从 theos/sdks 获取)
IOS_SDK=/path/to/iPhoneOS10.3.sdk ./build-unsigned-ipa.sh生成的 AIPadChat-unsigned.ipa 为 armv7 架构、最低支持 iOS 6.0,使用 ldid fake-sign,适用于越狱设备安装,不需要正式开发者签名。
Responses 模式下工具字段按当前 Responses API 写法发送:
{
"tools": [
{ "type": "web_search" },
{ "type": "image_generation" }
],
"include": ["output_image_generation_call.results"]
}如果所用的 API 中转服务对工具字段使用了不同别名,可修改 AIPadChat/AIClient.m 里的 responsesBodyForMessages:config:。
- 代码中不包含任何 API Key,请勿将自己的 Key 提交到仓库。
- 该应用主要面向老旧 iOS 系统(iOS 6+)与越狱设备场景,非 App Store 分发用途。