@dbx-工具/型号
解析一个松散的模型请求, 例如 "claude sonnet" 或者说 "chat-fast" 改为
混凝土 Databricks Model 正在工作空间中服务端点。 客户名单
/serving-endpoints,缓存并丰富
目录,将终点按能力分类,模糊匹配名称和倒数
回到一个小的静态地层 当活的目录没有.
快开始
import { createModelClient } from "@dbx-tools/model";
const models = await createModelClient();
const selected = await models.resolveModel({ explicit: "sonnet" });
console.log(selected.modelId);
默认情况下,非精确路径会请求工作空间服务端点, 如
databricks-gpt-5-6-sol。通过匹配选择路径
system.ai.* AI 网关服务:
const models = await createModelClient({ preferSystemModels: true });
const route = await models.route({ explicit: "gpt-5-6-sol", protocol: "responses" });
// route.modelId === "system.ai.gpt-5-6-sol"
准确的终点 ID 或 准确 system.ai.* 名字总是赢,不管这个
优先选择.
浏览器安全请求/结果分类和终点分类类型 @dbx-工具/共享型号。 。 。 .
软件包 :
- 通过 SDK 列出 Databricks 模型服务端点并使其正常化 变成一个稳定的简易形状,包含 TypeScript 拥有的家族和推理努力 元数据.
- 将端点分类为聊天思维、聊天平衡、聊天快和 采用基础模型 API 分数和家庭heuristics的嵌入类.
- 决定松散的用户输入, 如
"sonnet"或者说"chat fast"给水泥 端点为 id. - 支持类天花板,这样呼叫者可以要求一个能力波段,而不需要 不小心升级到更大的模型.
- 支助
requiresTools过滤此调用者只选择 端点被验证为完整的函数调用和结果回放回路. - 支持结构化输出过滤和质量、速度或成本优化; 速度敏感选择在比较前倾向于非合理终点 现场剖面速度得分.
- 每个工作空间主机通过 AppKit 缓存工具丰富目录, 并重新列出一次在解决错误上,所以新部署的模型仍然解决.
- 构建调用者的每个请求认证标题引用 URL 和 薄荷 发布自己的 OpenAI 形状的 HTTP 请求 .
- 提供由建筑生成的退休,反应,图像输入,应用patch,
网络搜索、推理、工具调用、结构化输出、温度支持、,
延缓性、人偏好评级、ITPM、OTPM、QPH和象征性价格元数据
通过缓存的进程中的搜索。 Databricks 文档以
(原始内容存档于2018-10-21). model.dev和modelparams.dev快照. 将延迟元数据使用标准化
麻省理工学院有执照
vicaroai/tokens-per-second数据砖和 这些目录没有提供每个模型的延迟领域。 评分使用每张CC BY 4.0 利马纳latestparquet配置通过Hugging Face发布. Token 价格只来自 Databricks 定价页面, 承诺的回扣 保持刷新和运行时间 启动离线安全. - 为本地工具和已退化的工作空间提供一个小的静态后退地板 访问.
使用 AppKit 模式服务
当您已经知道端点时, 使用本地 AppKit 模式服务插件 别名 它给你认证的引用/流道, OBO 执行、生成端点类型、请求- 机构过滤和前端 钩子.
当困难部分选择了 结束点 :
- 解析人类的松散输入,例如
"sonnet"或者说"fast"对抗现场 工作空间目录. - 组端点进入能力类
chat-thinking, (中文(简体) ),chat-balanced, (中文(简体) ),chat-fast,以及embedding。 。 。 . - 强制设置等级天花板,使呼叫者可以降解为更小的型号,而不使用 升级到更大的一个.
- 从已缓存,浓缩的端点列表中构建模型拾取器并调试路径.
- 在编目时保持本地代理商和CLI使用静态回落 无法访问 .
路线请求
import { createModelClient } from "@dbx-tools/model";
const models = await createModelClient({
auth: { profile: "DEFAULT" },
cacheTtlMs: 60_000,
});
const selected = await models.resolveModel({ explicit: "gpt" });
const route = await models.route({
explicit: selected.modelId,
protocol: "responses",
});
const response = await fetch(route.url, {
method: "POST",
headers: { ...route.headers, "content-type": "application/json" },
body: JSON.stringify({ model: route.modelId, input: "Hello" }),
});
createModelClient() 是节点客户端使用的可移植的认证背面.
它列出并规范端点,缓存一个
每个主机的目录,工作空间ID,和主机,刷新一次
未匹配的模糊请求, 解决路径, 返回完整认证
头条, 曝光配置文件, 并返回软件包生成的元数据 。 内容
便携式 @dbx-tools/model/python 切入点不包括 AppKit 目录
包装同时重用同样的纯正的排名和政策执行.
选择一个模式
import { createWorkspaceClient } from "@databricks/appkit";
import { resolve } from "@dbx-tools/model";
const client = createWorkspaceClient();
const host = String(await client.config.getHost());
const selected = await resolve.selectModel(client, host, {
explicit: "claude sonnet",
});
console.log(selected.modelId, selected.source);
selectModel() 是代理和CLI的高级助手。 它读取现场
目录,当有明确字符串时应用模糊匹配,然后
返回单个 modelId 加上一个源标签 解释为什么那个终点获胜.
设定 liveOnly: true 对于必须选择
排名最高的可用终点,不得跌入
当目录不匹配时, 离线静态 id .
没有明确的ID或类,自动选择更倾向于排名最高的
活生生的GPT家庭成员,再倒回排名最高的活聊模式.
这个 source 标签用于日志和调试 UI 。 它明确区分
匹配基于类选择、环境默认和倒置结果,
因此,操作者可以判断请求是否使用了预期的示范政策.
构建一个取模器
import { resolve } from "@dbx-tools/model";
const ranked = await resolve.searchModels(client, host, {
search: "opus",
modelClass: "chat-thinking",
requiresTools: true,
limit: 5,
});
使用 searchModels() 用于 UI 拾取器和调试路径。 它返回排序模型
使用相同的模糊阈值,并
类天花板逻辑为 selectModel()分类,模糊的分数,
家庭转换顺序和变体偏好在此直接执行
软件包,不需要本地绑定.
当呼叫者需要特定的运行时间形状时,在排序前先过滤. 譬如说, 选择最好的 1 024 维嵌入端点 :
const [embedding] = await resolve.searchModels(client, host, {
modelClass: "embedding",
dimension: 1024,
limit: 1,
});
搜索过滤器 : 使用 name 确切的终点, search 用于模糊
名称和标签匹配, modelClass 班级意识排名, task 用于
确切的任务, dimension 或者说 minDimension编号 :maxDimension 用于嵌入
形状, reasoningEffort 用于支持的推理水平,以及 requiresTools
用于完整的工具调用支持.
与持有的目录有关的工作
当您已经有结束点摘要时, 请使用纯解析器函数
resolve 财务报告和审定财务报表 modelCatalog 没有另一个工作空间呼叫 :
import { modelCatalog, resolve } from "@dbx-tools/model";
const endpoints = await modelCatalog.listServingEndpoints(client, host);
const ranked = resolve.lookupModels(endpoints, { search: "sonnet", limit: 3 });
const picked = resolve.resolveModel(endpoints, {
explicit: "claude sonnet",
modelClass: "chat-balanced",
requiresTools: true,
});
阶级充当天花板. chat-balanced 可能会回到 chat-fast不过
不升级为 chat-thinking。嵌入的终点只考虑
当请求的类是 embedding。 。 。 .
列表和缓存服务端点
import { modelCatalog } from "@dbx-tools/model";
const endpoints = await modelCatalog.listServingEndpoints(client, host, {
ttlMs: 5 * 60_000,
});
const raw = await modelCatalog.listServingEndpointsUncached(client);
await modelCatalog.clearServingEndpointsCache(host);
listServingEndpoints() 使用共享内存- 第一模式项目缓存, 丰富
带有分类和嵌入维度的终点,并通过
工作空间主机和信任的证书身份。 如果刷新失败, 可以返回
磁盘上最后的已知好值. listServingEndpointsUncached() 实值
用于仅需要 SDK 响应而不需要缓存的脚本
依赖性.
模糊解析端点名称
const matches = serving.searchServingEndpoints("claude sonnet", endpoints, {
threshold: 0.35,
});
const endpointName = serving.resolveModelId("sonnet", endpoints);
模糊匹配是服务器的故意关切,因为它取决于直播 工作空间目录并可能重新列出误差。 在需要调用时禁用 确切的终点标识.
决心反对可能过时的目录
const resolved = await resolve.rankModelIdLive((force) => loadCatalogue(force), "opus");
rankModelIdLive() 符合你已经持有的目录 在错过时,
重新装入一次 force 在放弃之前,所以一个模型 部署在您的缓存之后
温取还解而未复出. 你提供装货机,所以卡通
保单留在你的: listServingEndpoints 及其共享项目缓存, 一个平原
字段,或测试双倍. rankModelId() 是纯正的形态结束
一张相片 与 serving.resolveModelId,它打破相等的比分
按类别,然后版本,所以 "opus" 首选 opus-5 结束 opus-4-7。 。 。 .
直接调用终点
import { invoke } from "@dbx-tools/model";
const response = await fetch(invoke.invocationsUrl(host, endpointId), {
method: "POST",
headers: { ...(await invoke.authHeaders(client)), "content-type": "application/json" },
body: JSON.stringify({ messages }),
});
使用 invoke 当您需要针对服务终点发布您自己的请求时
带有OpenAI形状的车体,例如来自代理车体,通过路由,或
流媒体客户端,而不是 SDK 键入 servingEndpoints.query。薄荷
authHeaders() 每个请求: SDK 当其接近时刷新下个符号
过期,所以你从来没有跟踪 一生自己.
此 repo 会谈的每个服务路径都是常数, 并有匹配的 URL
构建器 : INVOCATIONS_SUFFIX 编号 : invocationsUrl(), (中文(简体) ), RESPONSES_PATH 编号 :
responsesUrl(), (中文(简体) ), OPEN_RESPONSES_PATH 编号 : openResponsesUrl(),以及
CHAT_COMPLETIONS_PATH 编号 : chatCompletionsUrl()。导入一个而不是写入一个
/serving-endpoints/... 消费者的字面意思:模型可以接受的路径是
a 模型的财产(见 isResponsesOnly() 财务报告和审定财务报表 responsesUpstreamUrl(), (中文(简体) ),
所以一个包中的硬码字符串在路由时会悄悄地相去甚远
变化. isResponsesOnly() 涵盖 Codex 和 GBT 5.4+ 端点, 拒绝
包含工具的聊天补全,同时将GPT-OSS保留在其支持的聊天路径上.
TypeScript 助手应用此策略, 所以每个节点消费者共享一个版本
不装入本地库的阈值.
读取已公布的模型元数据
import { metadata } from "@dbx-tools/model";
const capabilities = metadata.modelCapabilitiesFor("databricks-gpt-5-4");
const latencyScore = metadata.modelLatencyScoreFor("databricks-gpt-6-luna");
const rating = metadata.modelRatingFor("databricks-gpt-6-sol");
const limits = metadata.modelRateLimitsFor("gpt-5.4");
const prices = metadata.modelTokenPricesFor("system.ai.gpt-5-4");
const estimate = metadata.estimateModelTokenPrice(
"databricks-gpt-5-4",
{ inputTokens: 1_000_000, outputTokens: 500_000 },
{ condition: "short-context", usdPerDbu: 0.07 },
);
const status = metadata.modelStatusFor("system.ai.gemini-2-5-pro");
latencyScore?.score;
latencyScore?.measurements.outputTokensPerSecond;
rating?.score;
rating?.rankings.text_style_control?.lowerBound;
包船承诺根据Databricks文件制作快照
公共示范目录 bun run --filter '@dbx-tools/model' metadata。 。 。 .
运行时调用正常端点、显示、基础模型和提供者
身份被记录在记忆片和地图中 他们不获取文档或
基准. modelMetadataFor() 返回状态、能力、正常化
随机元数据、Arena评分、公布的限值和Databricks DBU率
百万个输入、输出、缓存读取和缓存写出一个字符串的符号
或者说 ServingEndpointSummary。 。 。 .
latencyScore.score 是基准的中位数
正常反应时间以毫秒计,因此较低值更快.
latencyScore.measurements 将中位数时间保留到第一个符号,中位数输出
吞吐量、成功运行计数、正常完成长度和测量
时间. rating.score 是一个0-100 平均百分位 在整个模型的可用
LMArena 配置, 因此, 更高的值即使在源大小上更好
不同之处. rating.rankings 保留每个来源的分数, 下和上信任度
界限、级别、公布日期、优先票数和差额或代理人
观察和会话算数.
当 Arena 列出多重推理- 努力时 变体,每个配置保持其最高分的总行. 更喜欢看 精确的模型匹配,否则继承自该模型中最新的测量模型 同样的家庭和变体。 消费者可以直接排序或应用根分数 他们自己的自信,新鲜度, 和覆盖政策 对于嵌入的价值观. 用适用的 Databricks SKU 价格乘以代号费率计算得出 货币成本.
原生的网络搜索能力始于所记录的模型集. 再见
在同一个托管的基金会-模型家庭中的版本通过
versionTuple. GPT-OSS 模型从不继承本地网络搜索. 自定义和
外部端点名称也不继承,因为这些名称中的位数不是
作为模型版本处理.
模型网关可以覆盖已发现的路由和模型 目录。 使用该网关覆盖来禁用工作空间时的网络搜索 路由并不支持元数据否则会做广告的能力.
使用静态倒置
import { classes, fallback } from "@dbx-tools/model";
import { model } from "@dbx-tools/shared-model";
const cls = classes.parseModelClass("chat-fast") ?? model.ModelClass.ChatFast;
const modelId = fallback.modelForClass(cls);
倒计时地板让代理和当地脚本在 工作空间不能列出终点。 优先生产活性目录分辨率 政策决定。 仅在无活性解析度时使用后退 .
模块
resolve- 高级别selectModel,类型脚本排序搜索,以及 目录持有的解析器函数.serving- 数据砖服务端点列表、缓存管理、模糊 搜索,以及端点标识解析.invoke- 服务路径常数、URL构建和每个请求认证 hTTP上呼叫端点的信头 .metadata- 建筑产生的退休、能力、耐久性、评级, 速率限制,以及带有缓存的正态外观的象征性价格快照.modelClient- 便携式认证意识发现、选择、路由、, 剖面图和元数据外观.classes- 模范级的解析、订货和最高级的帮手.policy- 家庭、服务程序、工具、推理政策.fallback- 静态回落型号,每类.
AppKit- Mastra 集成通过 @dbx-tools/appkit-mastra (英语)。 。 。 .