跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

SDK 自有模型与 ProviderConfig

配置模型提供方、接口格式、静态或动态认证,并排查 Azure 与本地服务地址。

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

字段含义
typeopenai、azure、anthropic,默认 openai
baseUrl必填,提供方 endpoint
apiKeyAPI key,本地服务可不需要
bearerToken静态 Bearer token,优先于 apiKey
bearerTokenProvider按需获取 token 的回调,优先于静态 token 与 apiKey
wireApicompletions 或 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 是官方启动示例,模型可用性受本机硬件和安装内容影响。