今天練習是利用Hugging Face API Token來做翻譯文本的練習,跟昨天練習不同的是,API 能夠直接調用 Hugging Face 提供的翻譯模型,無需本地安裝任何模型或依賴繁瑣的硬件要求。通過遠程請求,我們可以快速獲得高質量的翻譯結果,這也提升了操作的靈活性。
在這個練習中,我們將學習如何通過 Hugging Face API:
這不僅提升了文本翻譯的效率,也展示了 API 的強大功能,特別是在處理多語言文本時具備優勢。
步驟 1:建立 Hugging Face API Token
登入 Hugging Face 的 官方網站,若你還沒有帳號,請先註冊。
進入「Settings」頁面,找到「Access Tokens」部分,並生成一個新的 API token。記得複這次練習使用 Hugging Face API 進行翻譯,因此只需勾選Make calls to the serverless Inference API,允許對「推理」(Inference)功能的訪問。
生成token畫面如下,記得將API Tokens(一串序號)複製下來 :
步驟 2:Google Colab 環境設置
在 Google Colab 中打開一個新的 Notebook,並安裝 requests 套件來處理 API 請求。!pip install requests
步驟 3:設定 API 使用程式碼
在 Notebook 中輸入以下 Python 程式碼,這將會利用 Hugging Face 的翻譯模型進行 API 請求。
import requests
# Hugging Face API 的 URL
API_URL = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-fr"
# Hugging Face API token (將 YOUR_HUGGINGFACE_TOKEN 替換成你的 API token)
headers = {"Authorization": "Bearer YOUR_HUGGINGFACE_TOKEN"}
# 查詢函式,用來向 API 發送請求
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
# 發送請求並翻譯文本
data = query({"inputs": "Hello, how are you?"})
print(data)
步驟 4:運行程式碼並查看翻譯結果
Helsinki-NLP/opus-mt-en-fr
,這個模型會把英文翻譯成法文。"Hello, how are you?"
。步驟 5:輸出解釋
在運行程式碼後,你應該會看到類似以下的輸出:
步驟 6:錯誤處理
為了讓程式更穩定,讓我們加入一些錯誤處理功能,以防止 API 請求失敗或無效輸入導致錯誤:
def query(payload):
try:
response = requests.post(API_URL, headers=headers, json=payload)
response.raise_for_status() # 檢查 HTTP 請求是否成功
return response.json()
except requests.exceptions.RequestException as e:
return f"An error occurred: {str(e)}"
# 發送請求並翻譯文本
data = query({"inputs": "Good evening!"})
print(data)
這樣就可以更好地應對請求失敗的情況。
**筆記 - Hugging face API的應用場景 : **
在使用Hugging face API時,覺得它就像一個「店員」,我們呼叫它,跟它「點菜」,向API傳遞需求,接著,它再幫我們跟「廚師」講我們要的菜,Hugging Face 平台上訓練好的各種 NLP 模型,能夠處裡自然語言處理相關的功能,像是翻譯文本、總結文章等。
一開始覺得Hugging face API就像函數一樣,呼叫它,它幫我們做某些功能。但是在執行的環境其實很不一樣。具體來講兩者在執行環境與應用場景的比較為下:
這兩者的應用場景大不相同:
API 利用遠端請求(remote request) 的方式來呼叫模型,就是調用一個外部服務(如 Hugging Face 的 NLP 模型),你的應用程序發送請求,然後接收處理結果。
函數 則是利用本地執行(Local Execution) 的方式,下載一個機器學習模型並在本地計算機上運行,處理數據。
總結如下:
API 遠程請求: 適合輕量級應用、無法使用高性能硬件的場景,或者開發者希望快速部署並試用不同模型的場景。API 也是原型設計或需要靈活訪問各種模型的最佳選擇。
函數本地執行: 適合高性能要求、需要低延遲回應的應用場景,或需要在無網絡環境下運行的情境。這也是開發者需要高度自定義、模型調優或需要頻繁使用模型的場景的理想選擇。