SDK 自有模型与 ProviderConfig
配置模型提供方、接口格式、静态或动态认证,并排查 Azure 与本地服务地址。
This page has not been translated into English yet. The original Chinese version is shown below.
SDK BYOK 绕过 GitHub Copilot 认证,直接使用你的模型提供方;不需要用户 GitHub 账户或 Copilot 订阅。模型可用性、速率限制和用量由提供方决定,不计入 Copilot premium request 配额。
最小配置
下面是官方 OpenAI-compatible 配置方式;model 必须是提供方实际支持的模型 ID 或部署名:
const session = await client.createSession({
model: "gpt-5.4",
provider: {
type: "openai",
baseUrl: "https://api.openai.com/v1",
apiKey: process.env.OPENAI_API_KEY,
},
});这是已有 client 上的会话片段。模型名是来源示例,不是所有提供方都可用的默认模型。BYOK 必须显式提供 model。
ProviderConfig
| 字段 | 含义 |
|---|---|
type | openai、azure、anthropic,默认 openai |
baseUrl | 必填,提供方 endpoint |
apiKey | API key,本地服务可不需要 |
bearerToken | 静态 Bearer token,优先于 apiKey |
bearerTokenProvider | 按需获取 token 的回调,优先于静态 token 与 apiKey |
wireApi | completions 或 responses,默认 completions |
azure.apiVersion | 指定时用版本化 deployment route;省略时使用 GA 无版本 v1 route |
Python 对应字段使用 base_url、api_key、bearer_token、bearer_token_provider、wire_api 和 azure.api_version。
completions 使用 Chat Completions;responses 提供 Responses 格式的多轮状态、工具命名空间与推理支持。Anthropic 始终使用 Messages API,不因 wireApi 改变。
Azure 与 Foundry 地址
原生 Azure endpoint 使用 type: "azure",baseUrl 可为资源主机或完整 project URL。较新 runtime 会保留 project 前缀;省略 apiVersion 且使用 responses 时,追加的是 /openai/v1/responses。
Foundry 若提供 /openai/v1/ 兼容 endpoint,则使用 type: "openai" 并保留完整路径。不能仅看到 .openai.azure.com 域名就把所有地址都改成同一种 type。
Bearer token 与模型列表
静态 bearerToken 不自动刷新,过期后需用新 token 建立新会话。bearerTokenProvider 在发往提供方的请求前被调用,缓存与刷新由回调或其使用的身份库负责。Azure 示例见Managed Identity。
client 级 onListModels 可返回提供方的 ModelInfo 列表。首次结果会缓存;该 handler 完全替代 CLI models.list RPC,不会在失败或缺项时自动回退到服务器列表。需要准确填写模型能力与上下文限制,不能沿用示例数字假装真实配置。
本地服务排查
Ollama 使用 type: "openai" 与 http://localhost:11434/v1,本地示例不要求 API key。可用 curl http://localhost:11434/v1/models 检查服务,未启动时使用 ollama serve。
Foundry Local 使用动态端口,先运行 foundry service status,再把实际端口写入 baseUrl;服务重启后不能假设端口不变。foundry model list 查看模型,foundry model run phi-4-mini 是官方启动示例,模型可用性受本机硬件和安装内容影响。