Back to blog
    從 Cursor 到生產:在沒有供應商鎖定的情況下部署 AI 功能
    indie-devvendor-lock-inproductiondeploymentsegment:vibecoder

    從 Cursor 到生產:在沒有供應商鎖定的情況下部署 AI 功能

    您用 Cursor 構建了應用程式並接入了 OpenAI。現在您被鎖定了。以下說明如何部署您擁有的 AI 功能——從原型到生產,沒有供應商依賴。

    EErtas Team·

    您構建了真實的東西。也許您使用了 Cursor,也許是 Copilot,也許您只是在 VS Code 中敲出代碼,旁邊有一個 AI 助手。不管您是如何到達這裡的,您的應用程式可以運行,它有用戶喜愛的 AI 功能。只有一個問題——每個 AI 調用都通過 OpenAI 的 API,您對它沒有任何控制。

    這是 vibe coder 的陷阱。原型開發體驗如此順暢,以至於您在依賴關係重要之前沒有注意到它。然後您的 API 密鑰在流量激增時被速率限制,或者 OpenAI 廢棄了您微調的模型,或者您的月度帳單翻倍因為他們調整了定價。突然間,您的產品基礎是一個您完全沒有控制的服務。

    讓我們解決這個問題。

    Vibe 編碼的應用程式如何被鎖定

    鎖定是逐漸發生的,在多個層面上。了解這些層次是擺脫它們的第一步。

    當您使用 Cursor 或類似的 AI 編碼工具來構建您的應用程式時,生成的代碼自然會使用 OpenAI SDK。它是默認建議,記錄最多的路徑,以及 Stack Overflow 答案最多的一個。在幾次會話內,您的代碼庫以 openai 作為核心依賴項,您的提示針對 GPT-4 的特定行為進行了調優,您的錯誤處理圍繞 OpenAI 的響應格式構建。

    這些都不是惡意的。只是阻力最小的路徑。但它創造的依賴關係,每次提交都讓解開的成本更高。

    三種類型的供應商鎖定

    1. API 格式鎖定

    您的代碼圍繞特定的 API 合約構建——請求格式、響應架構、錯誤代碼、流式協議。切換提供商意味著重寫每個集成點、更新錯誤處理,以及測試您從未想到過的邊緣案例。

    這是最可見的鎖定形式,幸運的是,也是最容易解決的。

    2. 模型行為鎖定

    這是隱蔽的一種。您的提示、您的少樣本示例、您的輸出解析邏輯——所有這些都針對特定模型的響應方式進行了調優。GPT-4 在它如何格式化輸出、如何處理歧義以及如何遵循指令方面有特定的傾向。切換到 Claude 或 Gemini,您精心製作的提示會產生不同的結果。

    您每寫一個不考慮可移植性的提示,就把這條溝挖得更深。

    3. 定價鎖定

    您已圍繞某個每查詢成本假設設計了您的產品。您的免費層、您的定價頁面、您的單位經濟都假設 OpenAI 當前的定價。當他們改變定價時——他們一定會,無論是哪個方向——您的商業模式由他們擺佈。

    這是殺死業務的鎖定。不是因為技術失敗,而是因為經濟學在您腳下移動。

    擁有您的模型如何消除所有三種鎖定

    當您運行自己的微調模型時,所有三種類型的鎖定都消解了。

    API 格式: 您選擇推理伺服器。Ollama、vLLM、llama.cpp——都支持 OpenAI 兼容的 API 格式。您現有的代碼只需最少的更改即可工作。您控制 API 合約,除非您更改它,否則它永遠不會改變。

    模型行為: 微調模型在您的資料上訓練,針對您的特定任務。其行為是確定性的,在您的控制之下。沒有來自更新其模型的提供商的意外更改。沒有「在基準測試上更好」但對您的用例更差的新版本的退化。

    定價: 您的成本是您的基礎設施成本。無論您每天運行 1,000 還是 100,000 次推理,GPU 伺服器的成本都是一樣的。您的單位經濟是可預測的,完全在您的控制之內。

    從 OpenAI 依賴到自主托管的遷移路徑

    以下是將現有應用程式從 OpenAI 遷移到自主托管模型的實際路徑。

    步驟 1:審計您的 AI 集成點

    清點您的代碼調用 OpenAI API 的每個地方。記錄每個調用的作用——分類、生成、提取、嵌入。大多數應用程式的不同 AI 任務比您想象的要少,通常只有三到五個核心操作。

    步驟 2:收集您的訓練資料

    您應用程式中的每次成功 AI 互動都是訓練資料。匯出您的提示-完成對,過濾品質,並將其格式化為微調。如果您一直在記錄 API 調用(您應該這樣做),您已經有了一個資料集。

    步驟 3:微調基礎模型

    採用有能力的開源基礎模型——Llama 3.3 8B 或 Qwen 2.5 7B 是很好的起點——並在您收集的資料上微調它。模型不需要是通才。它需要在您的應用程式所需的特定任務上表現出色。

    步驟 4:使用 OpenAI SDK 兼容性部署

    這是使遷移無痛的關鍵見解。Ollama 和類似的推理伺服器公開了 OpenAI 兼容的 API 端點。您更改 OpenAI SDK 配置中的基礎 URL,並將其指向您的本地伺服器。您現有的代碼——提示、響應解析、錯誤處理——無需修改就可以工作。

    // 之前:鎖定到 OpenAI
    const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
    
    // 之後:您自己的模型,相同的代碼
    const openai = new OpenAI({
      baseURL: "http://localhost:11434/v1",
      apiKey: "not-needed",
    });

    這就是 SDK 級別的整個遷移。其餘的是確保您的微調模型處理您的特定任務,效果與雲端模型一樣好甚至更好。

    步驟 5:驗證並切換

    對自主托管的模型運行您的測試套件。比較輸出。對於大多數特定領域的任務,調優好的 8B 模型匹配或超過 GPT-4 的性能,因為它是專業的而非通用的。

    Ollama 的 OpenAI SDK 兼容性

    OpenAI SDK 兼容層值得特別強調,因為它是使這種遷移對獨立開發者切實可行的原因。您不需要重寫您的應用程式。您不需要新的 SDK。您更改一個 URL 和可選地更改一個 API 密鑰。

    Ollama 支持聊天完成、嵌入和流式傳輸——這三個端點涵蓋了 99% 的獨立應用程式 AI 使用。響應格式與 OpenAI 規範匹配,所以您現有的解析代碼無需更改即可工作。

    這種兼容性不是偶然的。開源推理生態系統故意採用 OpenAI API 格式作為標準,特別是為了使遷移無摩擦。

    用 Ertas 讓它成真

    Ertas 簡化了從雲端依賴到模型所有權的路徑。使用 Ertas Studio 在您的應用程式特定任務上微調模型,匯出優化的 GGUF 文件,並使用 Ollama 或任何兼容的推理伺服器部署它。

    該平台處理 ML 工程複雜性——資料集準備、訓練配置、評估和匯出——讓您可以專注於您擅長的事情:構建產品。

    準備好擁有您的 AI 堆疊了嗎? 加入 Ertas 優先預約,部署您控制的 AI 功能。

    延伸閱讀

    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