首頁 > 科技與 AI > Free.ai 每日 30,000 Token 怎麼用?qwen2.5-7b 學生 Agent 敲門路線

延伸主題

Free.ai 每日 30,000 Token 怎麼用?qwen2.5-7b 學生 Agent 敲門路線

Free.ai 官方宣稱每日 30,000 free tokens、...

Free.ai 宣稱每日 30,000 token、qwen2.5-7b self-hosted canary 與 Web/API scope review 的 YOLO LAB 原創封面

本篇是系列第 74 篇本機草稿,介紹 Free.ai 官方目前宣稱的每日 30,000 free tokens,以及它對學生 AI agent 可能有用的 API 入口。它不是「已經替我們拿到一把免費 key」,也不是鼓勵大量建立帳戶;本篇只做官方頁面查核、額度分類、風險標記和未來 canary 規格。任何 key 都必須由 owner 在自己的帳戶中建立、保管、撤銷,不能貼到文章、聊天室、學生作業或公開 repository。

Free.ai 宣稱每日 30,000 token、qwen2.5-7b self-hosted canary 與 Web/API scope review 的 YOLO LAB 原創封面
YOLO LAB 原創編輯封面:以 Free.ai 30K/day 宣稱、qwen2.5-7b self-hosted、Web/API read-back 與 scope review 呈現學生 Agent 的導流入口;非 Free.ai 官方宣傳圖。

本篇分類為 CONDITIONAL_FREE_AI_30000_DAILY_POOL_SOURCE_CONFLICT。Free.ai 的 Developer 頁目前寫有 30,000 tokens/day、免信用卡起步、確認 email 後可產生 sk-free-... Bearer token;API 頁又列 Free plan 的 daily pool 與 API rate limit。不過同一個 Developer 頁的價格表把 free pool 標成「Web only」,FAQ 又說 pool 同時涵蓋 web 和 API,API 頁的流程還先寫「Purchase tokens, then generate key」。所以這篇把它放進候選清單,不把 30,000 視為已對所有帳戶、所有 API 路由成立的保證。

這個判斷對主要 agent 很重要:免費額度的第一個問題不是「每天幾個 token」,而是「官方目前到底把哪些 token 授權給哪一種入口」。學生 queue 只能在 owner read-back 確認 account、API key、model type、daily pool、request cap、實際扣款來源和 402/429 行為後,才可小量啟用。沒有這些證據時,route 只能是 CONDITIONAL_REVIEW,不能進入自動 fallback。

主要 agent 的資料分類、secret、fallback 和人工接手規則可延伸閱讀 YOLO LAB AI Agent 常見問題。以下會把宣稱額度、API 讀取條件、模型分流、資料政策、帳務、限流、錯誤和學生工作排程拆開,避免把免費網頁服務、免費 API pool、付費 token pack 和 BYOK 混成同一種燃料。

Free.ai 每日 30,000 token 宣稱

Free.ai Developer 頁目前最醒目的說法是「30,000 free tokens/day」以及起步不需要信用卡;它把服務描述成一個 Bearer token、OpenAI-compatible 的多工具 API,涵蓋 chat、image、video、music、voice、OCR 和 translation。官方 API 頁則列出 Free plan 的 30K/day (pool)、每分鐘 10 次、價格 $0。這些是官方當日公開頁面的宣稱,不是我們實際登入帳戶後的測試結果。

function classifyFreeAiClaim(snapshot) {
  if (snapshot.provider !== 'FREE_AI') return 'PROVIDER_MISMATCH';
  if (snapshot.dailyPoolTokens !== 30000) return 'DAILY_POOL_NOT_CONFIRMED';
  if (snapshot.creditCardRequired !== false) return 'PAYMENT_GATE_PRESENT';
  if (snapshot.apiPoolCoverage !== 'READ_BACK_CONFIRMED') {
    return 'API_POOL_SCOPE_UNKNOWN';
  }
  return 'FREE_AI_CANARY_REVIEW';
}

官方頁面之間的第一個矛盾

Developer 頁的 Pricing 區塊把 30,000 / day 的 free pool 標成「Web only – covers self-hosted models」;但同頁 FAQ 又說「30,000-token daily free pool covers self-hosted models on both web and API」。API 參考頁也說 Free accounts get 30K tokens/day,並把 Free plan 放在 API rate-limit table。這三段文字不能被我們自行挑一段當成最終真相,應該記錄為 SOURCE_CONFLICT,等 owner console 的 daily pool 與 API response usage 讀回後再提升資格。

因此本篇不會寫成「註冊後 API 一定每天有 30,000 token」。較準確的說法是:官方公開頁面目前提供一項 30,000 token/day 的 free pool 宣稱,並在不同頁面對 API 是否共用這個 pool 有不一致描述。學生 agent 可以先做 adapter、ledger 和停止線;只有 read-back 結果與當日文件一致,才可把它標為 CONFIRMED_FREE_API

官方頁面之間的第二個矛盾

Developer 頁 FAQ 說明,免費帳戶確認 email 後可在 account 的 API 分頁產生 key,且沒有 application 或 waitlist;但 API 參考頁的 How It Works 第一項寫成「Purchase tokens, then generate your sk-free- key」。這不代表一定要付費,也不代表一定不用付費,而是代表註冊、key generation、daily pool 和購買 token 之間的現行文件需要在 console 逐項核對。文章不替任何人填 email、不代確認、不代產生 token。

function decideKeyGate(account) {
  if (account.emailVerified !== true) return 'EMAIL_VERIFICATION_REQUIRED';
  if (account.keyGeneration === 'PURCHASE_REQUIRED') return 'PAYMENT_REQUIRED_BLOCKED';
  if (account.keyGeneration !== 'FREE_ACCOUNT_ALLOWED') return 'KEY_GATE_UNKNOWN';
  if (account.dailyPoolReadBack !== true) return 'POOL_READBACK_REQUIRED';
  return 'OWNER_CANARY_REVIEW';
}

免費 token 與 API request cap 分開記

30,000 是 token pool,不是 request 數。API 頁列出 Free plan 每分鐘 10 次,Developer 頁的 API request tiers 則列 Free plan 每月 1,000 requests、每分鐘 60 次;兩張表的 rate limit 也不一致。學生 agent 不應使用較大的數字做排程上限,而要使用 owner account read-back 的實際值,並把官方文件頁面、抓取時間與 plan snapshot 一起保存。

對短 prompt 而言,daily token pool 可能比 request cap 先耗盡;對長文件、圖像、語音或多輪 agent 而言,單次工作也可能快速消耗 pool。token ledger 需要同時記 tokens_usedtokens_charged、model、source、request status 和 remaining estimate,不能只記呼叫次數。

一次 balance 共用 web 與 API

Free.ai API 頁說網站和 API 使用相同 token pricing,帳戶是一個 balance;Developer FAQ 也說 daily pool 對 self-hosted model 同時涵蓋 web 和 API。若這個描述在帳戶中成立,學生在網頁 playground 消耗的 token 會與 API queue 競爭同一份燃料。主要 agent 必須把 web、API、playground、image、voice 和 background job 的消耗放進同一個 provider ledger,不可把網頁使用量當成額外贈送額度。

function admitSharedBalance(job, account) {
  if (account.provider !== 'FREE_AI') return 'PROVIDER_MISMATCH';
  if (account.balanceScope !== 'WEB_AND_API_SHARED') {
    return 'BALANCE_SCOPE_UNKNOWN';
  }
  if (job.estimatedTokens > account.remainingDailyEstimate) {
    return 'DAILY_POOL_BUDGET_BLOCKED';
  }
  if (account.apiRequestRemaining <= 0) return 'REQUEST_CAP_BLOCKED';
  return 'QUEUE_REVIEW';
}

真正可用的免費範圍是 self-hosted model

Free.ai 官方把 model 分成 self-hosted 和 external。Developer 頁說 free models 運行在它自己的 GPU fleet 上,例子包括 Qwen 2.5、FLUX、Whisper 和 Kokoro;premium model 則路由到外部 provider,需要 purchased tokens,不能從 daily free pool 支付。這個分流是學生 agent 的核心安全閘門:model name 看起來便宜,不等於它屬於免費 pool。

API 頁的 self-hosted table 目前列出 Qwen 2.5 7B 的 chat/write/code、FLUX.2 Klein 圖像、Kokoro TTS、faster-whisper STT、MadLAD-400 translation、Real-ESRGAN、BRIA RMBG、CogVideoX 和 Demucs 等例子;同一頁也列出 GPT、Claude、Gemini、DeepSeek 等 external model。這些清單可能更新,不能把文章中的 model id 當永久承諾,執行前仍要讀取 GET /v1/models 或官方 model directory。

當日敲門模型:qwen2.5-7b self-hosted

截至 2026-08-25,Free.ai Developer 與 API 頁仍把 qwen2.5-7b/Qwen 2.5 7B 當作 self-hosted 文字範例,因此它是目前最適合做第一個短文字 canary 的候選。這不是永久的免費保證:送出前仍要以 GET https://api.free.ai/v1/models 或官方 model directory 讀回當前 model id、source=self_hosted、daily pool 是否覆蓋 API、key scope、request cap、tokens_charged 與 zero-balance 行為。官方頁面目前對 Web-only、Web+API 和購買 token 後產生 key 的說法尚未一致,不能用這個 model name 自行推導資格。

Premium model 不得穿透免費路由

官方 API 範例直接把 premium/... model 標成 paid tokens only。若 adapter 只看 HTTP 200、沒有檢查 sourcetokens_charged,就可能把 external model 誤送進學生免費 queue,最後扣到 owner 的 purchased balance。免費方案的安全做法是 allowlist self-hosted model,遇到 externalpremium、unknown provider 或 model metadata 缺失時停止。

function allowFreeAiModel(model) {
  if (!model || model.status !== 'CURRENT') return 'MODEL_REFRESH_REQUIRED';
  if (model.source !== 'self_hosted') return 'PREMIUM_ROUTE_BLOCKED';
  if (!['qwen2.5-7b', 'qwen7b', 'whisper', 'kokoro'].includes(model.id)) {
    return 'MODEL_ALLOWLIST_REVIEW';
  }
  return 'SELF_HOSTED_FREE_ROUTE_REVIEW';
}

token 單位不是 provider 原生 token

Free.ai API response 範例提供 free_ai_usage block,內含 tokens_usedtokens_chargedsourcemodel。這表示平台自己的 token ledger 才是扣款依據,不能把其他 provider 的 tokenizer、OpenAI billing unit 或學生作業字數直接換算成 Free.ai token。每次 response 都要保存非敏感的 usage metadata,讓 local ledger 和帳戶頁能夠對帳。

官方 self-hosted pricing 例子包含「實際 input 加 output tokens」、「每張圖 5,000 tokens」、「每四個字元 1 token」、「每秒音訊 4 tokens」等不同算法。這些不是一個統一的 LLM token 公式。agent 對文字、圖片、聲音、翻譯和影片應使用不同的預算桶,不能用一次 chat 的估算數字去放行高成本媒體工作。

OpenAI-compatible 只代表介面相容

官方 Developer 頁提供 https://api.free.ai/v1/chat/ 的 POST 範例,使用 Authorization: Bearer 和 JSON body;API 頁也說 chat endpoint 遵循 OpenAI chat completions format,可以透過 base URL 改用相容 SDK。這方便學生學習,但不表示所有 OpenAI 參數、tool calling、streaming、usage schema、錯誤碼和 model capability 都完全一致。

const FREE_AI_API_KEY = process.env.FREE_AI_API_KEY;

function buildFreeAiRequest(job, state) {
  if (!FREE_AI_API_KEY) return { action: 'BLOCK', reason: 'OWNER_SECRET_MISSING' };
  if (state.apiPool !== 'READ_BACK_CONFIRMED') {
    return { action: 'BLOCK', reason: 'API_POOL_SCOPE_UNKNOWN' };
  }
  if (state.model.source !== 'self_hosted') {
    return { action: 'BLOCK', reason: 'EXTERNAL_MODEL_NOT_FREE' };
  }
  return {
    url: 'https://api.free.ai/v1/chat/',
    headers: {
      Authorization: `Bearer ${FREE_AI_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: {
      model: state.model.id,
      messages: job.messages,
      max_tokens: Math.min(job.maxTokens, state.policy.maxOutputTokens),
      stream: false
    },
    secretForwardedToStudent: false
  };
}

API key 只能由 owner 管理

官方頁面使用 sk-free-... 作為示意格式,但文章中的 FREE_AI_API_KEY 是環境變數名稱,不是真實 token。owner 若日後決定啟用,應在 server-side secret manager 或受控環境變數保存,將 key version、建立時間、scope 和撤銷時間寫入 metadata;log 只記 hash 或版本識別,不記 Bearer value。

學生只應取得被限制的 agent capability,例如「公開資料摘要」或「synthetic code review」,而不是看到 provider key。不要將 key 放進 browser bundle、client-side JavaScript、課堂投影片、issue、Git history、shell history 或文章 HTML。若發現 key 泄漏,先撤銷並更換,再審計 usage;不要靠多帳戶或換 key 逃避額度。

Streaming 與 tool calling 要獨立驗證

Developer 頁說 chat 支援 stream:true 的 Server-Sent Events,也說 chat 可接受 tools array;但它同時提醒部分 model 的 native tool use 能力不同,沒有 native support 時可能退回 JSON-mode prompt。OpenAI-compatible 不代表學生 agent 可以無條件打開 tools。工具名稱、參數 schema、stream parser 和中途中止都要先以目前 model metadata 做 canary。

function admitFreeAiTools(state, job) {
  if (job.tools?.length && state.model.toolCalling !== 'CONFIRMED') {
    return 'TOOL_CAPABILITY_UNCONFIRMED';
  }
  if (job.stream === true && state.model.streaming !== 'CONFIRMED') {
    return 'STREAMING_UNCONFIRMED';
  }
  if (job.tools?.some((tool) => tool.network !== 'ALLOWLISTED')) {
    return 'TOOL_NETWORK_SCOPE_BLOCKED';
  }
  return 'CHAT_FEATURES_REVIEWED';
}

402、429 和 400 必須分流

官方 Developer FAQ 說標準 JSON error 會放在 error object;HTTP 402 代表 credits 不足,HTTP 429 代表非 API 呼叫的 daily pool 用完,HTTP 400 則是 validation error。對 API 來說,還要以 response body 和 account usage 判斷是否是 daily pool、request cap、purchased balance 或 model route 問題,不能看到 429 就無限重試。

function classifyFreeAiError(response, body) {
  if (response.status === 400) return 'REQUEST_VALIDATION_REVIEW';
  if (response.status === 402) return 'CREDIT_STOP_NO_AUTORETRY';
  if (response.status === 429) return 'RATE_OR_DAILY_POOL_STOP';
  if (response.status >= 500) return 'PROVIDER_OUTAGE_FALLBACK';
  if (response.status === 401 || response.status === 403) {
    return 'AUTH_OR_ACCOUNT_GATE_STOP';
  }
  return body?.error ? 'UNMAPPED_ERROR_REVIEW' : 'RESPONSE_REVIEW';
}

402 不是「換一把 key」的訊號,429 也不是「開更多帳戶」的訊號。合理處置是停止該 route、保存 request id 和錯誤類型、更新 ledger、通知 owner,必要時轉到另一個已核准且有額度的 provider。任何 retry 都必須有上限、退避和 idempotency;未確認是否已扣 token 前,不要重送可能產生重複工作。

daily reset 時間不能自行猜測

官方公開頁面使用 daily pool 和 daily limit 的說法,但本次查核沒有找到可作為固定承諾的 reset 時刻、時區或跨日邊界。主 agent 不得把台北午夜、UTC 午夜或本地 cron 的某一刻當成官方 reset。ledger 應等待 account usage read-back 或下一次成功回應證明 pool 已恢復,並記錄 observed reset,而不是編造 reset schedule。

function scheduleAfterPoolStop(state, now) {
  if (state.resetAtFromOfficial !== true) {
    return { action: 'PAUSE', reason: 'RESET_TIME_UNCONFIRMED' };
  }
  if (new Date(state.resetAt) <= new Date(now)) {
    return { action: 'READ_BACK_USAGE', reason: 'RESET_WINDOW_REACHED' };
  }
  return { action: 'WAIT_UNTIL', at: state.resetAt };
}

資料政策不適合秘密與個資

Free.ai Privacy Policy 的有效日期目前是 2026-03-25,營運者標示為 Muddy Holdings LLC。政策說服務會收集帳戶 email、input prompt、output、IP、使用資料和裝置資訊;usage data 包含使用哪些工具、token consumption 和基本互動資料。這表示即使沒有付費,學生工作內容也不是「不留資料」的本地模型。

政策還區分 self-hosted 和 external:選 self-hosted Free.ai model 時,資料留在 Free.ai server,不送給第三方;選 external model 時,prompt 會轉送給該模型 provider。external model 的原廠條款、logging、training、地域和 retention 不能由 Free.ai 的一個 Bearer token 自動消除。agent 必須在 model manifest 中保存 source,並在送出前執行資料分類。

function classifyFreeAiData(job, model) {
  if (job.dataClass === 'SECRET' || job.dataClass === 'PERSONAL_DATA') {
    return 'DATA_CLASS_BLOCKED';
  }
  if (model.source === 'external') return 'EXTERNAL_PROVIDER_REVIEW';
  if (model.source !== 'self_hosted') return 'MODEL_SOURCE_UNKNOWN';
  if (job.dataClass !== 'PUBLIC_SYNTHETIC') return 'OWNER_REVIEW_REQUIRED';
  return 'SELF_HOSTED_PUBLIC_CANARY_ALLOWED';
}

保留、刪除與資料最小化

Privacy Policy 說 chat 和 generation history 會為了提供 usage history 而保存,使用者可以在 account settings 刪除;刪除帳戶後,政策寫個人資料和歷史會在 30 天內清除,server log 的 IP 和 access log 最多保存 90 天。這些是服務政策的聲明,不是我們能替 provider 做的 deletion proof,因此學生 queue 還是只送公開、去識別化、synthetic 或可撤回的資料。

不要把 WordPress 草稿、未公開產品資料、學生姓名、email、校務資料、客戶內容、私有 repository 或 token 放進免費 route。即使任務只是摘要,也要先做 local redaction;若 prompt 需要原始個資,應停止並改用已核准的資料處理環境。免費不是資料處理合規的替代品。

Free.ai 條款的帳戶邊界

Terms of Service 目前寫使用者至少 13 歲,建立帳戶要提供有效 email 和 password,並由使用者負責帳戶憑證與活動。條款也明確禁止用多個帳戶規避 usage limits;API 使用者需要遵守 API documentation 和 rate limits,濫用或違反條款時 API access 可能被撤銷。學生方案不能建立在多帳號、共享 login、代理註冊或輪換 key 上。

條款另說 self-hosted model 與 external model 受不同條件影響:external model 由第三方 provider 處理,使用者要自行閱讀該 provider 的 terms 和 acceptable use policy;Free.ai 不對第三方 model output 負責。agent 的 allowlist 因此要同時保存 Free.ai 條款版本與上游 model license,而不是只記一個 model name。

學生 agent 的最小免費路由

若未來 read-back 解開 API pool 的矛盾,最小 route 應從短、可重複、低敏感的文字工作開始:公開文件摘要、公開 API 文件問答、synthetic JSON 格式化、短程式片段解釋和小型測試案例產生。每個 job 預先限制 input bytes、max output tokens、總等待時間和重試次數,並將 model 固定在已確認的 self-hosted allowlist。

圖像、影片、音樂、長音訊和跨工具 workflow 不應與文字 queue 共用同一個免費預算桶。即使官方宣稱多工具共用 daily token pool,媒體工作成本模型和失敗重試成本也不同。學生若需要多媒體學習,應以一個明確的工作類型、單獨的 daily cap 和人工批准啟動,避免一個失控 job 吃掉整個 pool。

function admitStudentJob(job, state) {
  if (state.provider !== 'FREE_AI') return 'PROVIDER_MISMATCH';
  if (state.apiPool !== 'READ_BACK_CONFIRMED') return 'CONDITIONAL_ROUTE';
  if (job.dataClass !== 'PUBLIC_SYNTHETIC') return 'DATA_CLASS_BLOCKED';
  if (job.kind !== 'SHORT_TEXT') return 'MEDIA_ROUTE_REVIEW';
  if (job.estimatedTokens > state.policy.maxJobTokens) return 'JOB_BUDGET_BLOCKED';
  if (job.retryCount > 1) return 'RETRY_LIMIT_BLOCKED';
  return 'STUDENT_CANARY_QUEUE';
}

每日 token ledger 的必要欄位

每次 request 至少記錄 provider、account alias、key version、model、source、job id、input token estimate、actual tokens used、tokens charged、HTTP status、error class、observed remaining pool、文件 snapshot date 和是否為 web/API 共用。這些欄位不含 secret value,也不保存完整 prompt;若要除錯,保存經過遮罩的 prompt hash 或 synthetic fixture。

function recordFreeAiUsage(response, context) {
  return {
    provider: 'FREE_AI',
    jobId: context.jobId,
    keyVersion: context.keyVersion,
    model: response.free_ai_usage?.model ?? 'UNKNOWN',
    source: response.free_ai_usage?.source ?? 'UNKNOWN',
    tokensUsed: response.free_ai_usage?.tokens_used ?? null,
    tokensCharged: response.free_ai_usage?.tokens_charged ?? null,
    httpStatus: response.status,
    promptHash: context.promptHash,
    secretIncluded: false
  };
}

沒有 read-back 就不做自動化

本篇沒有註冊 Free.ai、沒有確認 email、沒有產生 key、沒有充值、沒有呼叫 API,也沒有把任何 token 寫入 agent。這不是漏做,而是此系列的邊界:官方頁面存在 API coverage、key gate 和 request limit 的文字衝突,在沒有 owner 帳戶證據以前,不應把第三方公開宣稱轉成 live permission。

未來若 owner 明確批准 canary,順序應是:先保存當日 official pages snapshot,再 read-back account plan、email verified、key scope、daily pool、API request cap、model source 和 balance;接著只送一個 synthetic prompt,核對 response usage、charged tokens、remaining pool、HTTP status 和 ledger;最後再測一個 402/429 停止情境。任何一項 mismatch 都要停止 route。

function verifyFreeAiCanary(readback) {
  const required = [
    readback.emailVerified,
    readback.apiKeyOwnerControlled,
    readback.apiPoolConfirmed,
    readback.modelSourceConfirmed,
    readback.usageReadBack,
    readback.noPurchaseRequired
  ];
  if (required.some((value) => value !== true)) {
    return { status: 'STOP', reason: 'CANARY_CONTRACT_MISMATCH' };
  }
  if (readback.tokensCharged < 0 || readback.tokensUsed < 0) {
    return { status: 'STOP', reason: 'USAGE_LEDGER_INVALID' };
  }
  return { status: 'REVIEW', reason: 'OWNER_MAY_APPROVE_ONE_SYNTHETIC_JOB' };
}

免費 pool 耗盡後的 fallback

Free.ai 只應是 agent fuel matrix 的一個 route,不應成為唯一 provider。daily pool、API request cap、model outage、external route block 或 account policy change 都可能使它暫停。fallback 必須選擇另一個已完成官方查核且有明確剩餘額度的 route,並將原始 job 重新放入 queue;不要為了維持表面成功率而自動切到 premium model。

如果所有免費 route 都停用,正確結果是 WAITING_FOR_APPROVED_FUEL,讓學生看到清楚的停止原因,而不是暗中向 owner 的付費 balance 借額度。agent 的可靠性包括能安全停下來,不只是每次都回一段文字。

把官方文件當成可變更的輸入

Free.ai Terms 說服務可以修改、暫停或停止任何部分,Privacy Policy 也保留更新政策與有效日期的方式。對一個每天重置的免費 pool 來說,文章發佈日的數字很快可能變成歷史資料。主要 agent 不應把 30,000、10 RPM、1,000 requests 或某個 model id 寫死在永不更新的設定檔;它們應該是帶有 sourceUrlcapturedAteffectiveDatereviewDueAt 的 provider snapshot。

function isFreeAiSnapshotFresh(snapshot, now) {
  if (snapshot.provider !== 'FREE_AI') return false;
  if (!snapshot.sourceUrl || !snapshot.capturedAt) return false;
  if (!snapshot.dailyPoolTokens || !snapshot.apiRequestsPerMinute) return false;
  if (new Date(snapshot.reviewDueAt) <= new Date(now)) return false;
  return snapshot.sourceConflictRecorded === true;
}

先查 model source 再查 token balance

很多額度事故不是 token 數字算錯,而是把 external model 當成 self-hosted。API 頁的 model table 同時放了 self-hosted 與 external model,並說 external model 的 token cost 會依上游價格換算;Developer 頁則說 premium model 需要 purchased tokens。由於兩類 model 共用相似的 chat endpoint,adapter 必須先取得 model source,再計算可用額度。不能因為請求仍是 /v1/chat/ 就假設它走免費池。

模型快取也要有失效時間。官方 model directory、GET /v1/models 和帳戶 response 可能不在同一時間更新;若 model metadata 標示不一致,安全選擇是暫停而不是猜測。學生可以使用固定的 synthetic fixture 做 compatibility test,但不能把 fixture 通過當成 production model 的能力證明。

帳戶讀回要驗證六個欄位

Free.ai 的最小 read-back contract 應包含:帳戶 email 是否已驗證、key 是否由 owner 控制、Free plan 是否真的存在、API 是否被 daily pool 覆蓋、當前 request cap 是多少、response 是否回傳可對帳的 usage block。若其中任一欄位只能從行銷頁推測,而不能從 account 或 API response 讀回,資格仍然是候選,不是可自動執行的 route。

function checkFreeAiReadback(account) {
  const fields = [
    'emailVerified', 'keyOwnerControlled', 'planReadBack',
    'apiPoolReadBack', 'requestCapReadBack', 'usageBlockReadBack'
  ];
  const missing = fields.filter((field) => account[field] !== true);
  return missing.length
    ? { status: 'BLOCK', missing }
    : { status: 'READY_FOR_OWNER_REVIEW' };
}

學生課程的透明配額顯示

若日後讓學生使用這個 route,前端或課程控制台應顯示「本次工作的 provider、model source、預估 token、當日剩餘估算、request cap、資料分類和停止條件」。不要只顯示一個綠色的「Free」標籤,因為那會遮住 API pool 尚未證實、external model 可能付費、或 daily reset 尚未確認等重要資訊。學生需要知道工作為什麼被排隊、拒絕或轉交。

配額顯示也不能洩漏 owner 的 email、Bearer token、完整帳務或其他學生的 usage。可以只呈現 route alias、policy version、剩餘估算的區間和 job id。若 exact balance 會造成誤導,顯示「低於本次預算」「等待 reset read-back」會比捏造精確數字更安全。

最小評測要檢查品質與成本

一個免費 route 即使能回應,也未必適合主要 agent。正式納入前至少要用公開 synthetic fixture 檢查:短文字是否完整、JSON 是否可解析、stream 是否能安全收尾、tool call 是否尊重 schema、usage block 是否存在、tokens charged 是否非負、錯誤是否可分類,以及同一 job 重試是否會重複扣款。這組評測應與 provider 的額度 read-back 分開記錄。

品質變差時不可直接放寬 max tokens 或切換 premium model。先確認 model source、當日 pool、rate limit 和服務狀態,再決定是否轉交另一條已核准 route。若只是免費模型輸出不符合課程需求,應標記 QUALITY_NOT_ACCEPTED,而不是把付費消耗藏在 fallback 後面。

不把開源 license 等同於服務保證

API 頁把部分 self-hosted model 的 Apache、MIT 或 BSD license 列在 model table;這有助於學生理解模型來源與輸出使用邊界,但 license 只處理模型或程式的授權問題,不保證 Free.ai API 的 uptime、資料保存、額度、延遲或輸出正確性。Free.ai Terms 也明確以「as is」和「as available」描述服務,並否認 AI output 必然可靠。課堂教材要把這兩層責任分開說清楚。

如果學生要把輸出放入公開作品,仍要檢查模型 license、第三方 provider terms、內容中的著作權和個人資料。Free token 只代表帳務上的零成本或候選額度,不代表輸出自動沒有法律、內容或署名責任。

這也是本系列持續捕獲的原則:先把免費燃料做成可查核的候選,再讓資料、成本與停止線通過驗證,最後才談是否進入主要 agent 的學生 queue。

這個方案適合什麼工作

以目前官方資料來看,Free.ai 最值得觀察的價值是把文字、語音、翻譯和開源 self-hosted model 放在同一個 token ledger;如果 API pool 的文件矛盾在帳戶中獲得解決,它可能適合學生練習 provider adapter、OpenAI-compatible request、usage accounting、SSE stream、tool schema 和 queue backpressure。這是工程學習價值,不代表輸出品質、可用性或長期配額已獲保證。

這個方案不適合什麼工作

它目前不適合承載需要穩定 SLA 的 production traffic、私有資料、客戶個資、未公開研究、需要固定 model version 的評測、或不能接受第三方 model forwarding 的 agent。它也不適合用作「永遠免費」的核心依賴,因為官方條款允許修改、暫停或停止服務,公開頁面也已出現額度與 API scope 的文字差異。

第 74 篇的結論與狀態

截至 2026-08-25,Free.ai 可以列為「官方宣稱 30,000 token/day、免信用卡起步、但 API scope 仍需 read-back」的條件式候選。它不是已確認的 zero-cost API,也不是學生可以共享的公用 key。當日最保守的分類是 CONDITIONAL_FREE_AI_30000_DAILY_POOL_SOURCE_CONFLICT;只有在 owner console 證明 API 使用確實從 free pool 扣除、沒有購買門檻、model 是 self-hosted、request cap 已知、usage 可對帳後,才可提升為 agent canary。

本篇正式完成本機草稿後,下一輪會繼續搜尋另一個未重複、以官方資料可核對的免費 token 或 API credit 方案。若下一個候選也有 region、付款、期限、資料政策或文件矛盾,會保留矛盾並降級分類,不會為了湊數把不確定的額度寫成保證。

Free.ai 官方查核來源

  • Free.ai Developer API:30,000 token/day 宣稱、key 入口、API 範例、self-hosted/external 分流、streaming、tool calling、錯誤與文件矛盾。
  • Free.ai API reference:endpoint、Bearer authentication、free_ai_usage、Free plan 30K/day、API 每分鐘限制、model 和 token pricing。
  • Free.ai Pricing:free/paid plan 的 token、request、媒體工作和 token pack 分流。
  • Free.ai Privacy Policy:input/output、usage data、self-hosted 與 external model 的資料流、保存與刪除。
  • Free.ai Terms of Service:年齡、帳戶責任、多帳戶限制、API 條件、第三方 model 條款和服務可變更邊界。

作者與編輯責任

本文署名作者:

|YOLO LAB 主編

YOLO LAB 的文章由署名作者或編輯團隊完成。主編 Dex 負責編輯制度、重要事實查核原則、AI 協作規範與重大更正;文章中的分析與判斷以公開來源、作品內容及可驗證資料為依據。

文章若有需要補充或修正的資料,可透過聯絡頁提供原始來源、日期與具體段落,編輯團隊會依出版政策檢查。

KEEP READING

接著讀什麼?

從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。

發表迴響

探索更多來自 YOLO LAB 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

繼續閱讀