OpenAIChatModel 指向 Venice,然后照常使用 PydanticAI 的其余 API。
前提条件
- Python 3.9 或更高版本
- 一个 Venice API 密钥
设置
安装带 OpenAI 支持的 PydanticAI:pydantic-ai 包,它已包含 OpenAI 扩展。
将您的 Venice API 密钥添加到环境变量:
将 Venice 配置为模型提供商
Venice 使用 OpenAI Chat Completions API。使用OpenAIChatModel 搭配 OpenAIProvider 和 Venice 的 base URL:
请使用
OpenAIChatModel(Chat Completions),而不是 OpenAIResponsesModel / openai: 简写。Venice 的主要兼容路径是 /chat/completions。显式使用 Chat Completions 可以避免较新版本 PydanticAI 中 OpenAI 默认模型所采用的 Responses-only 行为。环境变量
OpenAIProvider 同样会读取 OPENAI_API_KEY 和 OPENAI_BASE_URL。您可以通过这种方式配置 Venice,而无需在代码中传入参数:
运行 agent
await agent.run(...):
流式响应
当您希望在 token 到达时即时获取,可使用run_stream:
结构化输出
将一个 Pydantic 模型作为output_type 传入,以校验 agent 的最终结果:
工具
使用@agent.tool_plain(无 agent 上下文)或 @agent.tool(需要 RunContext)注册工具:
Venice 专有参数
通过ModelSettings.extra_body 传递 Venice 专属选项。例如,使用 venice_parameters 启用内置的 web 搜索:
venice_parameters 列表(web 抓取、引用、character、思考控制以及 E2EE 开关)请参见 API 规范。
推荐模型
模型 ID 会随时间更新 —— 请通过
GET /models 或模型概览确认当前 ID。
隐私优势
PydanticAI 常用于会接触应用数据、用户上下文或内部工具的 agent。将其与 Venice 搭配可让整个工作流保持在私有、无审查的推理之上:- 零数据保留 —— 私有模型在请求完成后不会保留 prompt 与工具负载
- 无审查分析 —— 当 agent 需要直白批评或红队测试时
- OpenAI 兼容的底层 —— 您可以通过更改提供商的 base URL 和 API 密钥来迁移现有 PydanticAI 应用
故障排查
模型未找到或出现意外的 endpoint 错误
模型未找到或出现意外的 endpoint 错误
请使用模型页面中的当前模型 ID。将
base_url 设置为 https://api.venice.ai/api/v1,末尾不要带其他路径 —— PydanticAI 会自动追加 /chat/completions。Responses API / openai: 前缀失败
Responses API / openai: 前缀失败
请优先使用
OpenAIChatModel 并显式传入 OpenAIProvider。避免使用裸的 openai: agent 简写,它可能会指向 OpenAI 的 Responses API 而不是 Chat Completions。工具或结构化输出被忽略
工具或结构化输出被忽略
请选择支持函数调用的模型,在
instructions 中描述何时应调用工具,并保持工具 docstring 的精确性 —— PydanticAI 会根据函数签名和文档构建 JSON schema。PydanticAI 文档
Agent、工具、依赖和输出类型
Venice 模型
浏览模型及其支持的能力