refactor(copy): 术语统一——收录版本、模型服务、智能体等(DEAI-2)
- 版本目标 → 收录版本(前后端用户可见字符串、能力描述、给模型的提示) - Agent 上游 / 上游 → 模型服务;界面上的 Agent / Agent 会话 → 智能体 / 智能体会话 - 身份歧义 / 识别有歧义 / 无法确定作品 → 没识别出作品;待识别(池) → 未识别 - 建档 → 加入媒体库;资产 → 文件;库根 → 媒体库目录;纳管 → 本工具 / 外部任务; 哨兵 → 标记文件 / 检查目录;站点快照 → 抓取;Feed / RSS 订阅 / 来源健康 → RSS - 代码标识符、API 字段名、迁移文件不改;glossary.md 同步;smoke 选择器跟随 Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
d282212a6b
commit
4480fc346d
212 files changed
+741
-715
No files matched your search
@@ -92,12 +92,12 @@ function keyOf(cred: UpstreamCredential | undefined): string | null {
|
||||
/** 按 provider / 认证方式挑模型列表接口 */
|
||||
function planFor(spec: UpstreamSpec, cred: UpstreamCredential | undefined): Plan {
|
||||
const extra = spec.extra ?? {};
|
||||
if (spec.provider === "fake") return { kind: "unsupported", reason: "Fake 上游没有远程模型列表" };
|
||||
if (spec.provider === "fake") return { kind: "unsupported", reason: "Fake 模型服务没有远程模型列表" };
|
||||
if (spec.provider === "radius") return { kind: "pi" };
|
||||
const custom = spec.provider === "openai-compatible";
|
||||
// 订阅登录只有 OpenRouter 换到的是普通 API Key,其它订阅 token 不能调公开的模型列表接口
|
||||
if (spec.authKind === "oauth" && spec.provider !== "openrouter")
|
||||
return { kind: "unsupported", reason: "订阅登录的上游没有公开的模型列表接口,用内置模型表" };
|
||||
return { kind: "unsupported", reason: "订阅登录的模型服务没有公开的模型列表接口,用内置模型表" };
|
||||
const key = keyOf(cred);
|
||||
if (spec.authKind !== "none" && !key && !custom) throw new FetchError("auth", "还没有配置 API Key");
|
||||
|
||||
@@ -232,7 +232,7 @@ function normalizeGoogle(item: Record<string, unknown>): Remote | null {
|
||||
function parseList(shape: Shape, body: unknown): Remote[] {
|
||||
const b = obj(body);
|
||||
const raw = Array.isArray(body) ? body : Array.isArray(b.data) ? b.data : Array.isArray(b.models) ? b.models : null;
|
||||
if (!raw) throw new FetchError("other", "上游返回的不是模型列表");
|
||||
if (!raw) throw new FetchError("other", "模型服务返回的不是模型列表");
|
||||
const norm = shape === "anthropic" ? normalizeAnthropic : shape === "google" ? normalizeGoogle : normalizeOpenAI;
|
||||
const out: Remote[] = [];
|
||||
const seen = new Set<string>();
|
||||
@@ -376,7 +376,7 @@ async function fetchRemote(
|
||||
if (plan.kind === "unsupported") throw new FetchError("unsupported", plan.reason);
|
||||
if (plan.kind === "http") return await fetchList(plan.endpoint);
|
||||
// Radius:pi-ai 自带的动态刷新
|
||||
if (!client) throw new FetchError("config", "上游配置不完整");
|
||||
if (!client) throw new FetchError("config", "模型服务配置不完整");
|
||||
const r = await client.listModels({ refresh: true });
|
||||
if (!r.refreshed) throw toFetchError(new Error(r.refreshError ?? "刷新失败"));
|
||||
return r.items.map(fromInfo);
|
||||
|
||||
Reference in new issue
Block a user