API的力量:AI介面的無名英雄
本文探討了API在人工智慧領域中的關鍵作用,透過一個語音控制電腦的實驗展示了API如何將複雜的研究轉化為簡單的介面,並突顯了工具呼叫和系統整合的重要性。
在人工智慧領域,我們常常把目光聚焦於模型本身:更大的規模、更快的速度、更智慧的表現,以及一個又一個的基準測試突破。然而,真正改變單個開發者構建能力的關鍵技術卻鮮少得到讚譽——那就是API。如今,最先進的計算能力已經悄然變成了介面:語音識別透過WebSocket提供,語言模型透過HTTP端點訪問,多年的研究成果變成了別人可以依賴的一層基礎設施。
我們最近用一個實驗驗證了這一趨勢:透過語音控制電腦。只需說“電腦,開啟終端並輸入ls”,電腦便會即時轉錄語音,由語言模型理解並執行命令。十年前,這個句子的每一部分都代表一個獨立的研究領域——語音識別、自然語言理解、系統命令執行。而我們的實現只花了一個下午,寫了大約400行Python程式碼,其中沒有一行涉及AI核心演算法。我們只是呼叫了現成的API:WhisperLive進行流式語音轉錄,llama.cpp提供語言模型推理,再透過少量膠水程式碼將它們連線起來。
能力成為介面
將能力包裝成API究竟意味著什麼?以語音識別為例,WhisperLive是一個開源流式轉錄伺服器,它背後整合了Whisper模型、GPU推理引擎和語音活動檢測——這些是多年的研究成果。但對使用者來說,它只提供一個簡單的介面:傳入音訊流,收到回撥返回的轉錄文本。同樣,我們在容器中執行llama.cpp並透過其API與之互動。llama.cpp並未定義自己的介面,而是故意實現了與OpenAI相容的聊天API——這個格式已成為行業事實標準。開發者無需關心底層模型是GPT、Llama還是其他,只需一個統一的API即可呼叫。
反向執行的API
最有趣的發展並非我們如何呼叫AI,而是AI現在可以呼叫我們。標準聊天API中包含一種稱為工具呼叫(tool calling)的機制:除了使用者輸入的詞語,你還可以給模型提供一個機器可讀的函式列表。例如:
{
"name": "open_application",
"description": "透過名稱開啟桌面應用程式,例如'Chromium'",
"parameters": {
"name": {"type": "string"}
}
}當使用者說“開啟瀏覽器”時,模型不會用散文回答,而是以結構化方式返回:
{
"name": "open_application",
"arguments": {
"name": "Chromium"
}
}在我們的實驗中,沒有針對任何特定句子的規則。我們只定義能力,模型處理語言,介面則在兩者之間充當粘合劑。這意味著開發者無需為每一個可能的使用者表達編寫解析邏輯,只需宣告可用的工具,剩下的交給模型去理解並選擇合適的工具。
整合成為新的實現
實驗中一個耐人尋味的細節是:我們遇到的所有問題幾乎都是管道問題——容器中庫版本不匹配、下載器不喜歡我們的DNS設定等。在API之上構建應用已經越來越不像研究,而更像系統整合。如今,任何開發者都可以選擇兩個具有公開介面的AI服務——比如WhisperLive提供現成的Docker映象,llama.cpp可以服務於任何開源權重模型——然後將它們連線起來,構建一個語音控制電腦的系統。曾經是“那會是一個酷炫的研究專案”的想法,如今變成了“一個週六下午就能搞定”的事情。剩下的工作只是將各個部件插在一起。
這一轉變意義深遠:它降低了AI應用開發的門檻,讓更多開發者能夠利用最先進的能力,而無需從頭研究演算法。API是AI領域的無名英雄,它們默默地將複雜性封裝在簡單的介面背後,加速了創新和普及。我們的實驗程式碼已開源,歡迎探索。