Hugging Face TGI 訊息 API 發佈

Hugging Face 已在版本 1.4.0 起推出了用於文字生成推論(TGI)的訊息 API。此更新提供了與 OpenAI Chat Completion API 的相容性,讓開發者能以最小的程式碼變更,從 OpenAI 模型轉換至開放式大型語言模型(LLM)。

與 OpenAI 相容的開放式 LLM

TGI 版本 1.4.0 與 Inference Endpoints 現已支援與 OpenAI Chat Completion API 相容的訊息 API。此相容性允許使用者透過現有的 OpenAI 客戶端函式庫或第三方編排工具(如 LangChain 與 LlamaIndex)將 OpenAI 模型替換為開放式 LLM。

根據 Ryght 的 CTO Johnny Crupi 表示:

"全新具備 OpenAI 相容性的訊息 API 讓 Ryght 的即時 GenAI 編排平台能輕鬆將 LLM 用例從 OpenAI 轉換為開放模型。我們從 GPT4 遷移至 Inference Endpoints 上的 Mixtral/Llama2 毫不費力,現在我們擁有更簡化的工作流程,且對 AI 解決方案有更大的控制權。"

技術實作與需求

透過 Inference Endpoints 部署

使用者可以使用 TGI 將模型(例如 Nous-Hermes-2-Mixtral-8x7B-DPO)部署至 Inference Endpoints。部署可透過 Hugging Face UI 或以程式方式使用 huggingface_hub Python 函式庫進行管理。使用 Hub 函式庫時,端點預設在閒置 15 分鐘後自動縮減至零,以優化成本。

與客戶端函式庫整合

若要將 Inference Endpoint 與 OpenAI 客戶端函式庫整合,使用者必須在端點 URL 後加上 /v1/,並提供有效的 Hugging Face 使用者令牌作為 API 金鑰。

  • Python 客戶端OpenAI 客戶端以指向 TGI 端點的 base_url 初始化,api_key 設為 HF 令牌。model 參數設定為 "tgi"
  • JavaScript 客戶端OpenAI Node 函式庫以類似方式使用,設定 baseURLapiKey 指向 TGI 基礎設施。

框架整合(LangChain 與 LlamaIndex)

  • LangChain:使用者可透過傳入 TGI 端點 URL 與 HF 令牌的方式使用 ChatOpenAI 類別,僅更改一行程式碼即可讓現有的 RAG 流程在開放模型上運作。
  • LlamaIndex:整合透過 OpenAILike 類別完成。需設定參數如 is_chat_model=Trueis_local=Falseis_function_calling_model=False,同時確保 context_window 與端點的 MAX_TOTAL_TOKENS 設定相符。

功能與限制

支援的參數

訊息 API 目前支援以下聊天完成參數:

  • stream
  • max_tokens
  • frequency_penalty
  • logprobs
  • seed
  • temperature
  • top_p

目前的限制

  • 函式呼叫:訊息 API 目前不支援函式呼叫。
  • 模型需求:此 API 僅適用於在其 tokenizer 設定中定義了 chat_template 的 LLM(例如 Mixtral 8x7B Instruct)。

策略意涵

透過提供相容 OpenAI 的端點,Hugging Face 讓使用者能完全掌控與透明化其模型與資料,消除對第三方速率限制的依賴,並能根據特定需求完整客製化 AI 系統。

Sources