ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MLflow AI Gateway 接入 TogetherAI:Completions、Chat 与 Embeddings 端点配置实战

MLflow AI Gateway 接入 TogetherAI:Completions、Chat 与 Embeddings 端点配置实战 MLflow AI Gateway 接入 TogetherAICompletions、Chat 与 Embeddings 端点配置实战【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow本篇技术指南基于 MLflow 仓库中的 examples/gateway/togetherai 示例目录讲解如何通过 MLflow AI Gateway 以统一配置接入 TogetherAI 服务定义 completions、chat、embeddings 三类端点设置TOGETHERAI_API_KEY环境变量启动网关并通过mlflow.deployments客户端发送文本补全、对话与向量检索请求。读完本文你将掌握 TogetherAI 提供商的完整配置语法、请求参数与底层调用链路并能直接复制运行示例。示例文件总览examples/gateway/togetherai目录下包含三个核心文件构成一个可独立运行的最小闭环文件作用config.yaml网关端点配置文件声明 TogetherAI 提供的 completions、chat、embeddings 三个端点example.pyPython 客户端脚本通过mlflow.deployments.get_deploy_client调用网关并打印各端点响应README.md使用说明说明配置文件的模型选择与 API Key 设置方式该示例同时配置了 completions 与 embeddings 两类端点并额外包含一个 chat 端点覆盖了 TogetherAI 在 MLflow Gateway 中支持的全部端点类型llm/v1/completions、llm/v1/chat、llm/v1/embeddings。端点配置文件逐段解析config.yaml 是本文的核心其完整内容如下endpoints: - name: completions endpoint_type: llm/v1/completions model: provider: togetherai name: mistralai/Mixtral-8x7B-v0.1 config: togetherai_api_key: $TOGETHERAI_API_KEY - name: chat endpoint_type: llm/v1/chat model: provider: togetherai name: mistralai/Mixtral-8x7B-Instruct-v0.1 config: togetherai_api_key: $TOGETHERAI_API_KEY - name: embeddings endpoint_type: llm/v1/embeddings model: provider: togetherai name: togethercomputer/m2-bert-80M-8k-retrieval config: togetherai_api_key: $TOGETHERAI_API_KEY配置中的关键字段说明endpoints顶层列表声明该网关实例对外暴露的所有端点一个配置文件可以同时声明多个提供商的多个端点。name端点的逻辑名称如completions、chat、embeddings客户端调用时通过该名称定位端点。示例命名仅为演示用途真实场景建议使用有业务含义的名称以避免冲突参见 examples/gateway/README.md 的提示。endpoint_type端点的 OpenAI 兼容类型对应 mlflow/gateway/config.py 中EndpointType枚举的三个取值llm/v1/completions、llm/v1/chat、llm/v1/embeddings。model.provider固定为togetherai网关据此在 Provider 注册表中找到 TogetherAIProvider。model.nameTogetherAI 平台上的模型标识例如 Mixtral 系列与 BERT 检索模型。model.config.togetherai_api_keyAPI Key 配置项支持直接填写密钥或引用环境变量$TOGETHERAI_API_KEY。关于 API Key 的解析规则从 mlflow/gateway/config.py 的TogetherAIConfig可以看出togetherai_api_key字段在解析时经过_resolve_api_key_from_input校验class TogetherAIConfig(ConfigModel): togetherai_api_key: str field_validator(togetherai_api_key, modebefore) def validate_togetherai_api_key(cls, value): return _resolve_api_key_from_input(value)这意味着配置中的$TOGETHERAI_API_KEY会被自动解析为同名环境变量的值因此示例要求先导出该环境变量见下文“设置 API Key”一节。设置 TogetherAI API KeyTogetherAI 的接入必须提供 API Key获取与设置方式如下export TOGETHERAI_API_KEY...将...替换为从 TogetherAI 控制台获得的真实密钥。设置后即可在配置文件中通过$TOGETHERAI_API_KEY引用。也可以在配置文件中直接写入密钥字符串但出于安全考虑推荐始终使用环境变量方式。注意该 Key 最终会被TogetherAIProvider用于构造请求头Authorization: Bearer key见 mlflow/gateway/providers/togetherai.py。启动 MLflow AI Gateway安装 MLflow需包含 genai 相关依赖pip install mlflow[genai]使用网关 CLI 启动服务将--config-path指向本示例的配置文件mlflow gateway start --config-path examples/gateway/togetherai/config.yaml --port 7000启动后可通过浏览器访问交互式 API 文档http://127.0.0.1:7000/docs使用 Python 客户端发起请求example.py 展示了客户端调用的完整流程核心代码如下from mlflow.deployments import get_deploy_client def main(): client get_deploy_client(http://localhost:7000) print(fTogetherai endpoints: {client.list_endpoints()}\n) print(fTogetherai completions endpoint info: {client.get_endpoint(endpointcompletions)}\n) print(fTogetherai chat endpoint info: {client.get_endpoint(endpointchat)}\n) print(fTogetherai embeddings endpoint info: {client.get_endpoint(endpointembeddings)}\n) response_completions client.predict( endpointcompletions, inputs{ prompt: Who is the protagonist in Witcher 3 Wild Hunt?, max_tokens: 200, temperature: 0.1, }, ) print(fTogetherai response for completions: {response_completions}) response_embeddings client.predict( endpointembeddings, inputs{ input: [Who is Wes Montgomery?], }, ) print(fTogetherai response for embeddings: {response_embeddings}) response_chat client.predict( endpointchat, inputs{ messages: [{role: user, content: Get out of the sunlights way Alexander!}], }, ) print(fTogetherai response for chat: {response_chat}) if __name__ __main__: main()运行方式python examples/gateway/togetherai/example.py三种端点的请求要点端点请求字段说明completionsprompt、max_tokens、temperature文本补全max_tokens为必填项见下方说明chatmessagesrolecontent列表对话补全使用 OpenAI 风格的消息结构embeddingsinput字符串列表向量化输入文本从源码结构看completions与chat请求都会经过TogetherAIAdapter.completions_to_model见 mlflow/gateway/providers/togetherai.py因此二者支持的参数一致。底层调用链路与适配细节在 mlflow/gateway/provider_registry.py 中Provider.TOGETHERAI被注册到TogetherAIProvider构成配置文件中provider: togetherai的解析入口。该 Provider 的关键实现见 mlflow/gateway/providers/togetherai.py包括base_url固定为https://api.together.xyz/v1get_endpoint_url将三类端点类型映射为 TogetherAI 的 REST 路径/completions、/chat/completions、/embeddingsheaders使用Bearer方式携带 API Key。其中值得注意的实现细节max_tokens为 TogetherAI completions 必填参数_completions与_completions_stream中若请求体缺少max_tokens网关会返回422错误见 mlflow/gateway/providers/togetherai.py。因此示例中的completions请求必须显式传入max_tokens。logprobs与top_logprobs的校验TogetherAI 使用logprobsOpenAI 使用top_logprobs适配器会将top_logprobs重命名为logprobs并对二者做整数类型校验防止混用两套 API 语义见 mlflow/gateway/providers/togetherai.py。响应统一转换为 OpenAI 兼容格式TogetherAIAdapter将 TogetherAI 的原始响应如text_completion、chat.completion、embedding结构转换为网关标准 schemaResponsePayload、StreamResponsePayload使上层调用方无需关心底层提供商差异见 mlflow/gateway/providers/togetherai.py 的 embeddings 转换与model_to_chat。流式支持_chat_stream与_completions_stream通过 SSE 解析响应块逐块 yieldStreamResponsePayload直到收到[DONE]标记见 mlflow/gateway/providers/togetherai.py。模型选择建议与扩展方向示例选用了三个模型分别对应三类任务mistralai/Mixtral-8x7B-v0.1用于completions文本补全mistralai/Mixtral-8x7B-Instruct-v0.1用于chat指令对话togethercomputer/m2-bert-80M-8k-retrieval用于embeddings向量检索支持 8K 上下文窗口的检索任务。替换模型时只需修改model.name为 TogetherAI 平台上可用的其他模型标识端点逻辑无需改动。若需在真实环境中接入多个模型或提供商可在同一配置文件的endpoints列表中添加更多端点但应避免使用completions、chat、embeddings这类过于通用的名称防止端点命名冲突。小结通过本示例你可以看到MLflow AI Gateway 将 TogetherAI 的 REST API 封装为 OpenAI 兼容的统一端点一个配置文件即可同时暴露文本补全、对话与向量检索能力。完整闭环为设置TOGETHERAI_API_KEY环境变量 → 编写 config.yaml →mlflow gateway start启动服务 → 运行 example.py 验证三种端点。如需了解其他提供商OpenAI、Anthropic、Mistral、Cohere 等的配置方式可参考 examples/gateway/README.md 中列出的各提供商示例目录。【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表