尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何用 Pydantic AI Gateway 用一个 key 访问多个模型 provider

如何用 Pydantic AI Gateway 用一个 key 访问多个模型 provider 如何用 Pydantic AI Gateway 用一个 key 访问多个模型 provider【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai如果你的 Python 服务同时调用 OpenAI、Anthropic、Google、Groq、AWS Bedrock 等多家模型目前需要分别保存各家 API key、配置各自的 base URL 与 SDK。Pydantic AI Gateway 提供了一条替代路径在 Pydantic Logfire 中开通 Gateway 并创建一把 Gateway API key之后所有模型请求都通过gateway/api_format:model_name模型串发往同一个网关由网关按请求路由到上游 provider。本文的主路径是在 Pydantic AI 项目中用这把 key 替换掉多家 key并用同一把 key 依次请求不同 provider 的模型完成验证。适用前提pydantic-ai版本 1.16 或更高Gateway 文档明确给出该版本要求Python 3.10安装文档的要求。1. 在 Logfire 中开通 Gateway 并创建 API key按 Gateway 文档 的 Quick Start这是一组在 Logfire 控制台logfire.pydantic.dev完成的操作注册并选择一个区域创建账户——区域gateway-us或gateway-eu会影响后续网关地址创建后无法在代码里绕过在组织设置organizations settings中激活 Gateway进入组织的 Gateway settings创建一把 API key形如pylf_v...。注意这把 key 是单 key 多 provider的核心文档明确列出 API key management: Access multiple LLM providers with a single Gateway key。key 同时决定了计费方式——你可以选择 BYOK自带各 provider 的 key或直接在平台付费两种模式共用同一把 Gateway key。2. 升级 pydantic-ai 并配置密钥Gateway 功能要求pydantic-ai1.16 及以上。升级命令Gateway 文档原文给出两种uv sync -P pydantic-ai或pip install -U pydantic-ai然后把 Gateway key 设置为环境变量export PYDANTIC_AI_GATEWAY_API_KEYpylf_v...其中pylf_v...替换为你在 Logfire Gateway settings 中创建的 key。若环境变量未设置gateway_provider(...)会直接抛出UserError提示设置PYDANTIC_AI_GATEWAY_API_KEY或通过gateway_provider(..., api_key...)传入见 providers/gateway.py这是key 没配好时最直接的报错现象。3. 用gateway/provider:model模型串请求不同 provider配置好环境变量后Agent的模型串从直接指定 provider 改为gateway/api_format:model_name格式代码其余部分不变from pydantic_ai import Agent agent Agent(gateway/openai:gpt-5.2) result agent.run_sync(Where does hello world come from?) print(result.output)文档示例输出仅示例实际回复以模型为准The first known use of hello, world was in a 1974 textbook about the C programming language.同一把 key 访问其他 provider只需要改模型串。Gateway 文档给出的 provider / API 格式 / 示例模型对照如下ProviderAPI Format示例模型串OpenAIopenaigateway/openai:gpt-5.2Anthropicanthropicgateway/anthropic:claude-sonnet-4-6Google Cloud (formerly Vertex AI)google-cloudgateway/google-cloud:gemini-3-flash-previewGroqgroqgateway/groq:openai/gpt-oss-120bAWS Bedrockbedrockgateway/bedrock:amazon.nova-micro-v1:0也就是说上面脚本中的Agent(gateway/openai:gpt-5.2)换成Agent(gateway/anthropic:claude-sonnet-4-6)即改为请求 Anthropic 的模型PYDANTIC_AI_GATEWAY_API_KEY保持不变。一个边界说明gateway/google是gateway/google-cloud的便捷别名二者落到同一后端源码中见 normalize_gateway_provider 的别名表图片生成经由网关时使用的就是gateway/google:model形式。4. 可选直接传 key 或用 route 指定上游端点如果你不想依赖环境变量可以在代码里直接创建 providerGateway 文档Passing API Key directly一节from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIChatModel from pydantic_ai.providers.gateway import gateway_provider provider gateway_provider(openai, api_keypylf_v...) model OpenAIChatModel(gpt-5.2, providerprovider) agent Agent(model)这里api_keypylf_v...需替换为你的 Gateway key。gateway_provider还支持route参数用于选择替代的上游 provider 或自定义网关端点provider gateway_provider( openai, api_keypylf_v..., routebuiltin-openai, )route取的是 Logfire 中网关端点的 slug不传时使用该 API 格式的默认端点见 gateway_provider 的文档说明。base_url参数同理不传时会依次读取PYDANTIC_AI_GATEWAY_BASE_URL环境变量再不行就从 key 中编码的区域推断如https://gateway-us.pydantic.dev/proxy若 key 无法推断区域源码会抛出要求重新生成 key 或显式设置PYDANTIC_AI_GATEWAY_BASE_URL的UserError。5. 验证接入是否生效文档给出的验证方式是直接跑请求run_sync返回非空回复如第 3 节示例输出即说明这把 key 已成功路由到上游。要确认一把 key 访问多个 provider把模型串依次替换为对照表中的gateway/anthropic:...、gateway/groq:...、gateway/bedrock:...等再各跑一次即可。仓库内还有一个更完整的验证脚本可供参考tests/providers/test_gateway_catalog.py 会对所有已知的gateway/模型串做冒烟测试断言agent.run与run_stream都能拿到非空输出该测试需要--run-gateway-live参数与PYDANTIC_AI_GATEWAY_API_KEY或旧名PAIG_API_KEY且会向真实上游发起请求属于仓库 CI 用途不需要在日常接入中运行。6. 常见问题与限制请求被拒报无法计算花费每个 provider 设置中有一个Require pricing data开关默认开启。开启时网关对没有定价数据的模型会在转发前直接拒绝——内置Pydantic 托管provider 返回404提示到 Slack 反馈以便补录模型自定义BYOKprovider 返回400提示需要定价数据并说明可以关闭该开关放行。关闭后请求能过但花费不计入成本限额。这是接入新模型时最容易遇到的拦截。支持范围有限当前网关覆盖 OpenAI、Anthropic、Google Vertex、Groq、AWS Bedrock 五家文档注明 More providers coming soon模型串里的 API 格式必须以这五家之一为准不支持的格式会抛出Unknown upstream provider错误。区域绑定key 与 Logfire 区域绑定推断出的 base URL 为https://gateway-{region}.pydantic.dev/proxy跨区域访问需要换 key 或显式设置 base URL。多 provider 容灾与负载如需让同一模型在多个 provider 之间 failover 或按权重负载均衡在 Logfire 的 Gateway - Endpoints 中创建网关端点为各 provider 设置 Priority、Weight、Active再在gateway_provider(..., route端点 slug)中引用该 slug——这属于网关端配置代码侧只改route一个参数。Gateway 文档同时还给出了 Claude Code、Codex、OpenAI SDK / Anthropic SDK / Vercel AI SDK 直连网关 proxy 路径的配置方式gateway-us/gateway-eu两套 base URL如果你的调用方不是 Pydantic AI 而是这些工具可按 Gateway 文档 的对应章节操作key 仍是同一把。【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表