Back to blog
    移动应用中的OpenAI API:快速入门与没人提到的成本
    OpenAIAPImobile developmentcost optimizationiOSAndroidsegment:mobile-builder

    移动应用中的OpenAI API:快速入门与没人提到的成本

    将OpenAI API集成到iOS和Android应用的实用指南,附带1K到100K用户规模下大多数教程跳过的真实成本预测。

    EErtas Team·

    每个关于为移动应用添加AI的教程都是这样开始的:获取API密钥,发POST请求,显示响应。很简单。但没有一个教程提到当真正的用户开始使用这个功能时你的账单会变成什么样。

    本指南给你两方面的内容。你需要的快速集成指南来发布功能,以及你需要的成本计算来在规模化中生存。

    快速入门

    从移动应用集成OpenAI的API很简单。以下是两个平台的模式。

    Swift (iOS)

    func sendMessage(_ message: String) async throws -> String {
        var request = URLRequest(url: URL(string: "https://api.openai.com/v1/chat/completions")!)
        request.httpMethod = "POST"
        request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
        let body: [String: Any] = [
            "model": "gpt-4o-mini",
            "messages": [
                ["role": "system", "content": systemPrompt],
                ["role": "user", "content": message]
            ]
        ]
        request.httpBody = try JSONSerialization.data(withJSONObject: body)
    
        let (data, _) = try await URLSession.shared.data(for: request)
        let response = try JSONDecoder().decode(ChatResponse.self, from: data)
        return response.choices.first?.message.content ?? ""
    }

    Kotlin (Android)

    suspend fun sendMessage(message: String): String {
        val client = OkHttpClient()
        val json = JSONObject().apply {
            put("model", "gpt-4o-mini")
            put("messages", JSONArray().apply {
                put(JSONObject().put("role", "system").put("content", systemPrompt))
                put(JSONObject().put("role", "user").put("content", message))
            })
        }
        val request = Request.Builder()
            .url("https://api.openai.com/v1/chat/completions")
            .post(json.toString().toRequestBody("application/json".toMediaType()))
            .addHeader("Authorization", "Bearer $apiKey")
            .build()
        val response = client.newCall(request).execute()
        return JSONObject(response.body!!.string())
            .getJSONArray("choices")
            .getJSONObject(0)
            .getJSONObject("message")
            .getString("content")
    }

    这是简单的部分。发布它就能工作。现在来看教程跳过的部分。

    定价全景(2026年初)

    模型输入(每百万令牌)输出(每百万令牌)最适合
    GPT-4o$2.50$10.00复杂推理
    GPT-4.1-mini$0.40$1.60质量/成本均衡
    GPT-4o-mini$0.15$0.60成本敏感应用

    输出令牌比输入令牌贵2.5-4倍。这很重要,因为大多数成本估算低估了输出端。

    粗略估算 vs 现实

    粗略成本计算:(输入令牌 + 输出令牌)* 每令牌价格 * 请求数量。这是错的。它严重低估了真实成本,因为忽略了隐藏的乘数效应。

    隐藏乘数1:系统提示词

    你的系统提示词随每个API调用一起发送。它不会在请求间缓存。一个典型的移动应用系统提示词有500-1,500个令牌。有些超过2,000。

    以每个系统提示词1,000个令牌和10,000 MAU每天发3个请求计算:仅系统提示词每月就额外增加9亿个输入令牌。按GPT-4o-mini的费率,这本身就要$135/月。

    隐藏乘数2:对话历史

    基于聊天的功能会包含之前的消息作为上下文。到对话的第三轮,你在重新发送前两轮加上系统提示词。到第五轮,你在重新发送所有内容。

    一个5轮对话,每条消息500个令牌,发送的令牌数为:第1轮 = 500,第2轮 = 1,500,第3轮 = 2,500,第4轮 = 3,500,第5轮 = 4,500。总输入:12,500个令牌,而感觉上只是5条短消息。

    隐藏乘数3:重试和失败

    在规模化后,2-5%的API调用会失败(速率限制、超时、服务器错误)并需要重试。每次重试都是完整重发整个提示词,包括系统提示词和历史记录。

    隐藏乘数4:真实总成本

    当你把系统提示词、对话历史增长和重试开销组合起来,真实成本通常是粗略估算的3-5倍。

    规模化成本表

    使用移动AI助手模式:每天3次交互,每次1,000个令牌(粗略值),应用3倍隐藏成本乘数。

    GPT-4o-mini ($0.15 / $0.60 每百万令牌)

    MAU粗略月成本真实月成本(3倍)
    1,000$33.75$101
    5,000$168.75$506
    10,000$337.50$1,013
    50,000$1,687.50$5,063
    100,000$3,375.00$10,125

    GPT-4o ($2.50 / $10.00 每百万令牌)

    MAU粗略月成本真实月成本(3倍)
    1,000$562.50$1,688
    5,000$2,812.50$8,438
    10,000$5,625.00$16,875
    50,000$28,125.00$84,375
    100,000$56,250.00$168,750

    如果你的应用收费$4.99/月,10K MAU时你的收入是$49,900。GPT-4o吃掉其中$16,875,占收入的34%,仅仅用于AI推理。GPT-4o-mini好一些,$1,013,但这仍然是收入的2%,并且随用户线性增长。

    当数学不再成立

    根本问题是成本结构,不是每令牌的价格。云AI是随每个用户增长的可变成本。每种定价优化(切换模型、缩短提示词长度、缓存)都能争取时间,但不会改变底层曲线。

    替代方案是端侧推理。在你的领域数据上微调一个小模型,导出为GGUF,通过llama.cpp在本地运行。一次性微调成本$5-50。之后零推理成本,不受MAU影响。

    微调的3B模型在领域特定任务上达到94%准确率,而GPT-4通过提示工程只有71%。对于大多数移动应用用例(聊天助手、分类、内容起草),端侧模型不仅更便宜,而且在特定任务上表现更好。

    像Ertas这样的平台通过可视化界面处理微调流水线:上传数据,在云GPU上训练,导出GGUF,在应用中发布。从云API迁移到端侧不需要ML团队。

    现在该做什么

    从GPT-4o-mini开始。它是验证阶段成本和能力的最佳平衡点。构建功能,发布它,确认你的用户参与其中。

    从第一天起跟踪你的实际令牌使用量。不是粗略估算,而是包括系统提示词、对话历史和重试的真实数字。建一个仪表板显示每用户每月成本。

    当这个数字超过每用户每月$0.05时,开始规划迁移到端侧。你的API日志已经包含了你需要的训练数据。

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading