Hugging Face TGI 消息 API 发布
Hugging Face 在 1.4.0 版本开始推出了文本生成推理(TGI)的消息 API。此更新提供了对 OpenAI 聊天完成 API 的兼容性,使开发者能够以最少的代码更改将模型从 OpenAI 转换为开放式大语言模型。
对开放式大语言模型的 OpenAI 兼容性
TGI 1.4.0 版本及 Inference Endpoints 现在支持兼容 OpenAI 聊天完成 API 的消息 API。此兼容性使用户能够通过使用现有的 OpenAI 客户端库或诸如 LangChain 和 LlamaIndex 等第三方编排工具,将 OpenAI 模型替换为开放式大语言模型。
"新的消息 API 具备 OpenAI 兼容性,使 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 客户端:
OpenAInode 库以类似方式使用,配置baseURL和apiKey指向 TGI 基础设施。
框架集成(LangChain 与 LlamaIndex)
- LangChain:用户可以通过传入 TGI 端点 URL 和 HF 令牌来使用
ChatOpenAI类,从而只需更改一行代码即可让现有的 RAG 流程在开放模型上运行。 - LlamaIndex:通过
OpenAILike类实现集成。需要配置参数,例如is_chat_model=True、is_local=False、is_function_calling_model=False,并确保context_window与端点的MAX_TOTAL_TOKENS设置相匹配。
能力与限制
支持的参数
消息 API 目前支持以下聊天完成参数:
streammax_tokensfrequency_penaltylogprobsseedtemperaturetop_p
当前约束
- 函数调用:消息 API 目前不支持函数调用。
- 模型要求:该 API 仅适用于在其 tokenizer 配置中定义了
chat_template的 LLM(例如 Mixtral 8x7B Instruct)。
战略意义
通过提供兼容 OpenAI 的端点,Hugging Face 使用户能够对模型和数据拥有完全的控制权和透明度,消除对第三方速率限制的依赖,并能够根据特定需求全面定制其 AI 系统。