MLflow AI Gateway 快速上手指南:安装、配置、启动与多 Provider 请求测试

发布时间:2026/9/12 7:28:21
MLflow AI Gateway 快速上手指南:安装、配置、启动与多 Provider 请求测试 MLflow AI Gateway 快速上手指南安装、配置、启动与多 Provider 请求测试【免费下载链接】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/mlflowMLflow AI Gateway 是 MLflow 提供的一套统一 AI 网关服务它把 OpenAI、Anthropic、Cohere、Mistral、MosaicML 等多家 LLM 提供商的 API 抽象为一组标准化的 HTTP 端点让应用只需面对一份统一配置即可路由到任意模型服务。本文以仓库中 examples/gateway 目录的实战示例为主线完整演示从安装mlflow[genai]、编写端点配置文件、设置访问密钥、启动网关、打开交互式 API 文档到用 Python 客户端发送测试请求的全流程并逐项剖析配置文件结构与各 Provider 的差异化参数帮助你在本地快速搭建一个可用的 LLM 网关。概述这个目录里有什么examples/gateway目录为 MLflow AI Gateway 的每个受支持 Provider 提供了开箱即用的示例每个子目录通常包含三类文件README.md该 Provider 的 API Key 获取方式与配置说明config.yaml可直接参考的端点endpoint配置文件example.py用 Python 客户端向该 Provider 端点发送测试请求的可执行脚本。以 openai 为例它同时演示了 Gateway 支持的全部三种端点类型chat、completions 与 embeddings。在配置一个真实实例时可以同时在配置文件中声明多个 Provider、多种端点类型以及多个模型版本每个查询端点endpoint由网关统一托管。使用这些配置作为大规模端点配置的模板时务必修改其中的占位名称如 completions、chat、embeddings避免端点名冲突。示例中的名称仅为清晰起见而设真实场景应为端点定义有意义的名称以消除歧义并最大程度降低命名碰撞风险。第一步安装 MLflow AI GatewayMLflow AI Gateway 作为 MLflow 的genai扩展发布推荐直接从 PyPI 安装# 从 PyPI 安装 pip install mlflow[genai]如果你希望使用最新构建版本或参与开发也可以从仓库源码安装# 从仓库安装 pip install -e .[genai]安装完成后即可在命令行中使用mlflow gateway子命令mlflow gateway start等。第二步理解端点配置文件结构Gateway 的核心是 YAML 格式的配置文件顶层为endpoints列表每个端点包含以下关键字段字段说明示例值name端点名称客户端调用时使用的标识chatendpoint_type端点类型即统一的路由类型llm/v1/chat、llm/v1/completions、llm/v1/embeddingsmodel.provider模型提供商标识openai、anthropic、cohere等model.name提供商侧的模型名称gpt-4o-mini、claude-1.3-100kmodel.config提供商初始化参数至少包含 API Key支持$ENV_VAR环境变量引用openai_api_key: $OPENAI_API_KEYlimit可选的速率限制配置renewal_period: minute、calls: 10端点类型统一使用llm/v1/...前缀将各家提供商差异化的 API 归一为三种标准接口对话补全chat、文本补全completions与向量化嵌入embeddings。limit字段用于控制单位时间内的调用配额例如 OpenAI 示例中的renewal_period: minutecalls: 10表示每分钟最多允许 10 次调用可在配置层面为不同端点设置不同的流量策略。以 OpenAI 配置 为例一份同时声明三种端点的完整配置如下endpoints: - name: chat endpoint_type: llm/v1/chat model: provider: openai name: gpt-4o-mini config: openai_api_key: $OPENAI_API_KEY limit: renewal_period: minute calls: 10 - name: completions endpoint_type: llm/v1/completions model: provider: openai name: gpt-4o-mini config: openai_api_key: $OPENAI_API_KEY - name: embeddings endpoint_type: llm/v1/embeddings model: provider: openai name: text-embedding-ada-002 config: openai_api_key: $OPENAI_API_KEY注意openai_api_key: $OPENAI_API_KEY这种写法配置值中的$VAR会在网关启动时从进程环境变量中读取从而避免把密钥明文写死在配置文件中。各 Provider 配置示例与端点支持差异每个 Provider 允许的端点类型不同初始化参数也各异。主 README 罗列了九家 Provider 的配置示例以下逐一点评其配置要点完整文件均可直接打开参考。OpenAI三种端点全支持配置示例 展示了 chat / completions / embeddings 三种端点模型分别为gpt-4o-minichat、completions与text-embedding-ada-002embeddings详见上文的完整配置。密钥通过$OPENAI_API_KEY环境变量注入。AzureOpenAI同一 OpenAI 协议多一套 Azure 专属参数AzureOpenAI 配置 在model.config中除了openai_api_key还要求以下字段参数说明示例值openai_api_type认证方式azureAPI Key或azureadAAD Tokenazureopenai_api_key密钥或 AAD Token$OPENAI_API_KEY/$AZURE_AAD_TOKENopenai_deployment_name你的 Azure 部署名称{your_deployment_name}openai_api_baseAzure 资源端点地址https://{your_resource_name}-azureopenai.openai.azure.com/openai_api_versionAPI 版本号2023-05-15同一个配置中chat 与 embeddings 端点使用azure类型认证completions 端点则演示了azuread类型密钥换成$AZURE_AAD_TOKEN说明同一份配置内可以对不同端点使用不同的 Azure 认证方式。Anthropic配置 仅声明一个 completions 端点模型为claude-1.3-100k密钥参数为anthropic_api_key。获取密钥的方法参见 Anthropic README创建账户并订阅 Anthropic 服务后通过如下命令导出export ANTHROPIC_API_KEY...Cohere配置 声明 completions 与 embeddings 两个端点模型分别为command与embed-english-light-v2.0密钥参数为cohere_api_key。MosaicML配置 声明 completionsmpt-7b-instruct、embeddingsinstructor-xl与 chatllama2-70b-chat三个端点密钥参数为mosaicml_api_key。AI21 Labs配置 声明一个 completions 端点模型为j2-mid密钥参数为ai21labs_api_key。PaLMGoogle配置 声明 completionstext-bison-001、embeddingsembedding-gecko-001与 chatchat-bison-001三个端点密钥参数为palm_api_key。Mistral配置 声明 completionsmistral-tiny与 embeddingsmistral-embed两个端点密钥参数为mistral_api_key。TogetherAI配置 声明 completionsmistralai/Mixtral-8x7B-v0.1、chatmistralai/Mixtral-8x7B-Instruct-v0.1与 embeddingstogethercomputer/m2-bert-80M-8k-retrieval三个端点密钥参数为togetherai_api_key。注意 TogetherAI 的模型名称保留了完整的组织/模型格式直接对应其在平台上的模型标识。除了上述九家目录中还包含 bedrock、gemini、huggingface、mlflow_models、plugin自定义 Provider 插件机制与 uc_functions 等示例进一步扩展了可接入的服务范围。第三步设置访问密钥各 Provider 的 API Key 获取方式不同详细方法见各子目录下的 README例如 OpenAI 与 Anthropic。核心模式一致先在服务商平台申请密钥再导出为环境变量供配置文件中的$VAR引用export OPENAI_API_KEY... export ANTHROPIC_API_KEY... export COHERE_API_KEY...确保启动网关的终端会话中已正确设置所用 Provider 对应的环境变量否则网关在读取$VAR时会因找不到对应值而报错。第四步启动 MLflow AI Gateway配置文件和密钥就绪后即可启动网关。--config-path指向 Provider 的配置文件--port指定监听端口mlflow gateway start --config-path examples/gateway/provider/config.yaml --port 7000 # 例如使用 OpenAI 配置 mlflow gateway start --config-path examples/gateway/openai/config.yaml --port 7000将provider替换为你所选 Provider 配置文件的实际路径。网关启动后即在本机指定端口如 7000提供统一的 LLM API 服务。第五步访问交互式 API 文档网关运行后浏览器访问以下地址即可打开基于 OpenAPI 规范的交互式 API 文档Swagger UI可以在页面上直接查看所有已注册端点、请求/响应结构并在线发送请求http://127.0.0.1:7000/docs该界面基于网关启动时加载的配置动态生成因此你声明的每一个端点chat / completions / embeddings都会出现在文档中是验证配置是否生效最直观的方式。第六步发送测试请求目录下每个 Provider 都提供了example.py脚本通过 MLflow 的统一部署客户端mlflow.deployments.get_deploy_client与网关交互。运行方式python examples/gateway/provider/example.py以 OpenAI 示例 为例其核心调用逻辑如下from mlflow.deployments import get_deploy_client def main(): # 1. 连接到本地已启动的网关 client get_deploy_client(http://localhost:7000) # 2. 列出所有端点、查询单个端点信息 print(fOpenAI endpoints: {client.list_endpoints()}\n) print(fOpenAI endpoint info: {client.get_endpoint(endpointcompletions)}\n) # 3. 向 completions 端点发送文本补全请求 response_completions client.predict( endpointcompletions, inputs{ prompt: How many patties could be stacked on a cheeseburger before issues arise?, max_tokens: 200, temperature: 0.25, }, ) print(fOpenAI completions response: {response_completions}) # 4. 向 chat 端点发送多轮对话请求 response_chat client.predict( endpointchat, inputs{ messages: [ { role: user, content: Please recite the preamble to the US Constitution as if it were written today by a rapper from Reykjavík, } ] }, ) print(fOpenAI completions response: {response_chat}) # 5. 向 embeddings 端点发送向量化请求 response_embeddings client.predict( endpointembeddings, inputs{ input: When you say enriched, what exactly are you enriching the cereal with? }, ) print(fOpenAI response for embeddings: {response_embeddings}) if __name__ __main__: main()这段脚本演示了客户端 API 的四个核心方法get_deploy_client(url)创建指向网关的部署客户端URL 必须与网关监听地址一致list_endpoints()列出网关中已注册的全部端点用于确认配置已正确加载get_endpoint(endpoint...)按名称查询单个端点的元信息predict(endpoint..., inputs...)向指定端点发送推理请求inputs的字段随端点类型而异——completions 用prompt/max_tokens/temperature等生成参数chat 用messages对话数组embeddings 用input文本。其他 Provider 的example.py结构与 OpenAI 示例一致仅替换端点名、模型相关参数与提示语内容可作为验证任意 Provider 配置是否生效的快速手段。从源码理解 Gateway 的实现位置如果希望深入了解网关的底层实现仓库中的相关代码位于 mlflow/gateway含 48 个 Python 模块网关的部署客户端接口则定义在 mlflow/deployments。配置文件中的llm/v1/*端点类型、各 Provider 的初始化逻辑与limit限流策略均可在这两个目录的源码中找到对应实现测试用例可参考 tests/gateway。示例目录本身则是理解配置文件结构与调用方式最快的入口。小结通过以上六步你可以在本地快速完成一套多 Provider 的 LLM 网关搭建pip install mlflow[genai]安装 → 编写endpoints配置声明端点类型、模型、密钥与可选限流→ 导出环境变量注入密钥 →mlflow gateway start启动 → 在http://127.0.0.1:7000/docs查看交互式 API 文档 → 用get_deploy_client发送测试请求。统一的路由抽象让上层应用无需关心各 Provider 的差异而examples/gateway下的每份配置文件与示例脚本正是快速接入任意一家模型服务的最佳起点。【免费下载链接】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),仅供参考