Back to blog
    v0应用AI功能固定成本——无按Token计费
    v0VercelAI功能成本降低微调segment:vibecoder

    v0应用AI功能固定成本——无按Token计费

    v0 by Vercel通过Vercel AI SDK轻松实现AI功能。以下是如何用固定月费的微调本地模型替代按Token的云API成本。

    EErtas Team·

    v0 by Vercel从自然语言生成生产级React组件。当你为这些组件添加AI功能时,自然路径是Vercel AI SDK——默认路由到OpenAI或Anthropic。按Token计费。每次请求。

    对于原型和早期应用,这没问题。对于有真实用户的应用,成本曲线很快成为问题,因为Vercel AI SDK使得在各处添加流式AI响应变得容易。

    v0应用通常如何使用AI

    Vercel AI SDK是v0生成的应用中AI功能的标准。模式很清晰:

    // app/api/chat/route.ts — typical v0 AI feature
    import { openai } from "@ai-sdk/openai";
    import { streamText } from "ai";
    
    export async function POST(req: Request) {
      const { messages } = await req.json();
    
      const result = streamText({
        model: openai("gpt-4o-mini"),
        messages,
        system: "You are a helpful assistant for [your domain].",
      });
    
      return result.toDataStreamResponse();
    }

    这是优秀的代码。它流式传输响应,处理错误,与React的流式模式配合。v0生成的前端组件完美地消费它。

    问题是每个streamTextgenerateText调用都是一次云API请求。SDK抽象了成本,这对开发很方便,对账单到来时不那么方便。

    Vercel AI SDK规模化成本

    流式响应比单次调用响应略贵,因为它们在整个生成期间维持连接,并且通常生成更长的输出(用户在流式停止时停止阅读,所以模型倾向于生成更多token)。

    假设一个典型的v0 AI功能:聊天式交互,每次交换400个token输入 + 600个token输出,使用gpt-4o-mini:

    月活跃用户会话/用户交换/会话月API成本
    20045$9.60
    1,00045$48
    5,00045$240
    20,00045$960
    100,00045$4,800

    这些是gpt-4o-mini的估算。升级到gpt-4o-2024,乘以约14倍。

    v0的部署优势

    v0/Vercel应用有一个特点:它们部署到Vercel的边缘网络,使用无服务器函数处理API路由。这种架构实际上有助于本地模型迁移。

    你的AI API路由可以调用任何HTTP端点。不是调用api.openai.com,而是调用你的Ollama VPS。无服务器函数不在乎请求去哪里——它发出HTTP调用并将响应返回给客户端。

    这意味着迁移完全包含在API路由文件中。你的React组件不变。你的流式行为不变。只有模型提供者改变。

    用微调本地模型替换AI SDK后端

    Vercel AI SDK通过createOpenAI函数原生支持OpenAI兼容的API:

    // Before — using OpenAI directly:
    import { openai } from "@ai-sdk/openai";
    const model = openai("gpt-4o-mini");
    
    // After — using your fine-tuned Ollama model:
    import { createOpenAI } from "@ai-sdk/openai";
    
    const ollama = createOpenAI({
      baseURL: process.env.OLLAMA_BASE_URL, // http://your-vps:11434/v1
      apiKey: "not-required",
    });
    
    const model = ollama("your-fine-tuned-model-name");
    
    // The rest of your route code stays exactly the same:
    const result = streamText({
      model, // just this variable changes
      messages,
      system: "...",
    });

    设置OLLAMA_BASE_URL为Vercel环境变量。你的流式实现无需更改——Ollama以与OpenAI相同的格式支持Server-Sent Events流式传输。

    流式传输:本地能用吗?

    可以。Ollama支持OpenAI SSE格式的流式传输。Vercel AI SDK正确消费它。你的前端流式组件看不到区别——相同的事件格式,相同的数据结构。

    性能考虑:CPU VPS上的本地Ollama以15-25 token/秒流式传输。云API以50-100+ token/秒流式传输。对于大多数用例,15-25 token/秒对用户来说无法感知(感觉像快速打字)。对于长文本生成(超过500个token输出),差异变得明显。

    如果延迟重要:GPU VPS($60-120/月)以40-80 token/秒流式传输。仍然是固定成本,明显更快。

    成本比较

    方案5K用户月成本20K用户月成本
    Vercel AI SDK + gpt-4o-mini$240$960
    Vercel AI SDK + gpt-4o$3,360$13,440
    Ertas微调 + Ollama CPU VPS$40.50$40.50
    Ertas微调 + Ollama GPU VPS$140-190$140-190

    微调本地模型方案在5K用户时比gpt-4o-mini更便宜,与gpt-4o相比则大幅便宜。GPU VPS选项在仍然远低于规模化云API的情况下提供明显更好的性能。

    从v0应用获取训练数据

    如果你的v0应用已经与真实用户运行了2-4周,你的API路由正在记录请求和响应。提取这些来构建你的训练数据集:

    // Add to your API route to log training data:
    const result = streamText({ model, messages });
    
    // Log the full interaction for training data
    const fullResponse = await result.text;
    await db.trainingLogs.create({
      input: messages[messages.length - 1].content,
      output: fullResponse,
      timestamp: new Date(),
      accepted: true, // assume accepted until user signals otherwise
    });

    2-4周后,你将有500-2,000条记录的交互。按质量过滤(最小会话时间,无立即重试),导出为JSONL,并上传到Ertas。


    Ship AI that runs on your users' devices.

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

    延伸阅读

    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