Repository navigation
图片兼容完善可达性校验与请求日志状态展示 #555
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mojie126
wants to merge
7
commits into
aimod-cc:beta
Choose a base branch
from
mojie126:pr/2026-11-10-vision-compat
base: beta
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
图片兼容完善可达性校验与请求日志状态展示 #555
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
afa7eb0
图片兼容候选模型对齐模型管理并完善加载体验
mojie126 09e722d
修复图片兼容目标可达性并在请求日志显示状态
mojie126 44c2871
修复特殊请求路由规则保存并完善图片兼容设置
mojie126 4b0be49
完善图片兼容刷新与未知状态显示
mojie126 671eaba
修复图片兼容自定义模型解析与跨网关缓存
mojie126 fc2912e
同步图片兼容修复的桌面与手机端产物
mojie126 f236fe4
修复图片兼容分支的就绪测试时序
mojie126 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,6 +19,7 @@ | |
| "↻ 重试 {n} 次": "↻ Retried {n} times", | ||
| "✅ 压缩完成": "✅ Vacuum complete", | ||
| "「仅看进行中」开启时,状态固定为进行中": "When \"In progress only\" is on, the status is pinned to In progress", | ||
| "上游拒图补救": "Recovery after upstream image rejection", | ||
| "上游模型繁忙,请求已排进上游队列;网关正按上游建议的时长等待后重发(不是登录态或额度问题)": "Upstream model is busy; the request is queued upstream and the Gateway will resend it after the wait suggested by the upstream (not a login-session or quota problem)", | ||
| "上游没有返回积分消耗": "The upstream did not report points consumption", | ||
| "上游状态码: {status}": "Upstream status code: {status}", | ||
|
|
@@ -29,9 +30,14 @@ | |
| "仅看进行中": "In progress only", | ||
| "令牌": "Tokens", | ||
| "体积": "Size", | ||
| "供应商": "Provider", | ||
| "供应商归属规则": "Provider attribution rules", | ||
| "保存中…": "Saving…", | ||
| "保存归属规则": "Save attribution rule", | ||
| "保留 {count} 条请求记录 · 将清理上游调试报文 {upstream} 条、下游正文 {downstream} 条 · 数据库占用 {db}": "Keep {count} request records · Clear {upstream} upstream debug payloads and {downstream} downstream bodies · Database size {db}", | ||
| "保留 {count} 条请求记录;将清理上游调试报文 {upstream} 条、下游正文 {downstream} 条。用量统计与报表不变。": "Keeps {count} request records; clears {upstream} upstream debug payloads and {downstream} downstream bodies. Usage statistics and reports remain unchanged.", | ||
| "保留统计行与报表,只抹掉请求 / 响应正文。清理后详情弹窗的「预览对话」将无原文可看,统计数字分毫不动。": "Keeps stats rows and reports, and only wipes the request / response bodies. After clearing, \"Conversation preview\" in the detail dialog will have no raw content to show and the stats numbers stay exactly the same.", | ||
| "保留草稿并读取最新设置": "Keep draft and reload latest settings", | ||
| "保留请求记录、用量统计与报表,同时清理上游调试报文和下游请求 / 响应正文。清理后「预览对话」与「原始报文」不再保留原文。有筛选时只清理命中请求的报文;无筛选时清空两侧全部报文。此操作无法恢复。": "Keeps request records, usage statistics, and reports while clearing upstream debug payloads and downstream request / response bodies. Conversation preview and Raw payload will no longer contain the original content. With filters active, only payloads for matching requests are cleared; without filters, all payloads on both sides are cleared. This cannot be undone.", | ||
| "全部删除": "Delete all", | ||
| "全部提供商": "All providers", | ||
|
|
@@ -44,8 +50,10 @@ | |
| "其它": "Other", | ||
| "内容按原样保存,请求头中的凭据字段已替换为 [redacted]": "Content is saved as-is; credential fields in the request headers have been replaced with [redacted]", | ||
| "内部重试": "Internal retry", | ||
| "切换视觉模型": "Vision model reroute", | ||
| "切换路径:": "Switch path:", | ||
| "列表数据已刷新,请重试(关闭后重新打开这条详情)": "List data has been refreshed; please try again (close and reopen this detail)", | ||
| "删除归属规则": "Delete attribution rule", | ||
| "删除日志记录本身。当前有筛选时只删命中的条目,按天聚合报表不受影响;无筛选时清空全部并重置报表。此方式无法恢复。": "Deletes the log records themselves. With filters active, only matching entries are deleted and daily aggregate reports are unaffected; with no filters, everything is cleared and reports are reset. This cannot be undone.", | ||
| "删除请求记录,并同步清理对应的上游调试报文与下游正文。有筛选时只删除命中的记录,按天聚合报表不受影响;无筛选时清空全部并重置报表。此操作无法恢复。": "Deletes request records together with their upstream debug payloads and downstream bodies. With filters active, only matching records are deleted and daily reports are preserved; without filters, all data is cleared and reports are reset. This cannot be undone.", | ||
| "加载更早的请求": "", | ||
|
|
@@ -59,23 +67,29 @@ | |
| "原始报文": "Raw payload", | ||
| "原模型": "Original model", | ||
| "发给上游的模型": "", | ||
| "取消": "Cancel", | ||
| "另有 {missing} 次尝试未记录明细(只保留最早的 {kept} 条)": "{missing} more attempts have no details recorded (only the earliest {kept} are kept)", | ||
| "另有 {n} 个词命中": "{n} more words hit", | ||
| "只显示正在转发中的请求(状态列按阶段显示:连接中 / 等待响应 / 响应中 / 重试中,用时列显示已用时)": "Only shows requests currently being forwarded (the status column shows the phase: Connecting / Awaiting response / Streaming / Retrying; the duration column shows elapsed time)", | ||
| "只看失败": "Failed only", | ||
| "只看成功": "Success only", | ||
| "只看进行中": "In progress only", | ||
| "命中了敏感词": "Sensitive word hit", | ||
| "命中依据:{header} · {pattern}": "Matched on: {header} · {pattern}", | ||
| "命中的敏感词": "Sensitive words hit", | ||
| "命中规则:{provider} → {client}": "Matched rule: {provider} → {client}", | ||
| "响应中": "Streaming", | ||
| "响应体": "Response body", | ||
| "响应头": "Response headers", | ||
| "回收已删除数据占用的磁盘空间(checkpoint + VACUUM,后台执行)": "Reclaims the disk space used by deleted data (checkpoint + VACUUM, runs in the background)", | ||
| "图片兼容未应用": "Image compatibility not applied", | ||
| "图片处理用时:{n} 秒": "Image processing time: {n} seconds", | ||
| "图片能力判据": "Image capability check", | ||
| "在设置 → 通用里开启「调试模式」后,新发生的请求才会保存报文": "Raw payloads are only saved for requests made after \"Debug mode\" is enabled in Settings → General", | ||
| "在路由页查看": "View on the Routing page", | ||
| "在途 {n}": "", | ||
| "处理中": "Processing", | ||
| "失败": "Failed", | ||
| "失败请求不记录用量": "Usage is not recorded for failed requests", | ||
| "失败({status}):{error}": "Failed ({status}): {error}", | ||
| "失败:{error}": "Failed: {error}", | ||
|
|
@@ -95,10 +109,13 @@ | |
| "已删除 {count} 条": "{count} logs deleted", | ||
| "已删除 {count} 条请求记录,并清理上游调试报文 {upstream} 条、下游正文 {downstream} 条。": "Deleted {count} request records and cleared {upstream} upstream debug payloads and {downstream} downstream bodies.", | ||
| "已受理终止:上游连接已断开,列表稍后刷新为「请求已被手动终止」": "Abort accepted: the upstream connection is closed; the list will refresh to \"Request manually aborted\" shortly", | ||
| "已完成": "Completed", | ||
| "已抹掉 {count} 条报文原文": "Raw payloads wiped for {count} logs", | ||
| "已清理上游调试报文 {upstream} 条、下游正文 {downstream} 条;请求记录与报表已保留。": "Cleared {upstream} upstream debug payloads and {downstream} downstream bodies; request records and reports were preserved.", | ||
| "已用时(请求仍在转发中)": "Elapsed time (request is still being forwarded)", | ||
| "开启调试模式后仅记录新请求,历史对话无法补录;关闭不会删除已有记录。": "Debug mode records only new requests; past conversations cannot be recovered. Turning it off does not delete existing records.", | ||
| "归属在选路后确定:命中供应商规则用规则客户端,未命中用默认归属客户端,都没设置保留识别结果": "", | ||
| "归属客户端": "Client", | ||
| "当前筛选下没有记录": "", | ||
| "当前筛选范围": "the current filter results", | ||
| "当前网关未提供上游 / 下游清理统计,请更新网关后再清理。": "This gateway does not provide upstream / downstream cleanup counts. Update the gateway before clearing data.", | ||
|
|
@@ -119,6 +136,8 @@ | |
| "提供商 / 账号": "Provider / Account", | ||
| "提供商: {provider}": "Provider: {provider}", | ||
| "提示": "Notice", | ||
| "搜索供应商": "Search providers", | ||
| "搜索客户端": "Search clients", | ||
| "敏": "SW", | ||
| "敏感词": "Sensitive words", | ||
| "数据库占用包含主文件与 WAL 文件;清理后可点击「压缩数据库」回收空闲空间。": "Database size includes the main file and WAL file. After clearing data, use Vacuum database to reclaim unused space.", | ||
|
|
@@ -129,21 +148,29 @@ | |
| "时间": "Time", | ||
| "暂无请求日志": "", | ||
| "暂无请求日志,网关还没有转发过请求": "No request logs yet; the Gateway hasn't forwarded any requests", | ||
| "最终归属(记账时的客户端)": "Final attribution (the client recorded for accounting)", | ||
| "最终承载:{picked}": "Finally served by: {picked}", | ||
| "有重试": "", | ||
| "未应用": "Not applied", | ||
| "未应用原因": "Reason not applied", | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 改正“未应用原因”的英文标签。 请求详情会显示
|
||
| "未改写,保留识别结果": "Not rewritten; the identified client is kept", | ||
| "未知状态": "Unknown status", | ||
| "本次请求消耗 {credit} 积分": "Points consumed by this request: {credit}", | ||
| "本轮尝试失败,正在退避等待或切换到下一个账号": "This attempt failed; backing off or switching to the next account", | ||
| "来源客户端": "", | ||
| "来源客户端:{client}": "Source client: {client}", | ||
| "查看该请求的上游原始报文": "View the raw upstream payload for this request", | ||
| "模型": "Model", | ||
| "模型图片能力未知,先发送原图": "Model image capability is unknown; the original image was sent first", | ||
| "模型已声明支持图片": "Model declares image support", | ||
| "模型映射:{from} → {to}": "", | ||
| "模型测试": "Model test", | ||
| "模型管理页操作列那颗「测试」发起的请求:与真实请求同一条转发链路,但不计入报表统计": "Requests started by the \"Test\" button in the action column of the Model Management page: the same forwarding path as real requests, but not counted in reports", | ||
| "正在加载请求日志…": "Loading request logs…", | ||
| "正在统计…": "Calculating…", | ||
| "正文超过单条上限,可能已被截断": "Body exceeds the per-record limit and may have been truncated", | ||
| "没有符合筛选条件的请求": "No requests match the current filters", | ||
| "添加自定义头匹配规则…": "Add a custom header rule…", | ||
| "清理": "Clear", | ||
| "清理中…": "Clearing…", | ||
| "清理失败:{message}": "Clear failed: {message}", | ||
|
|
@@ -168,28 +195,37 @@ | |
| "结果": "Result", | ||
| "缓存读取: - / 命中率: -": "Cache reads: - / Hit rate: -", | ||
| "缓存读取: {cache} / 命中率: {rate}": "Cache reads: {cache} / Hit rate: {rate}", | ||
| "编辑这条头匹配规则…": "Edit this header rule…", | ||
| "耗时": "Duration", | ||
| "脱敏命中:{words}": "", | ||
| "自定义 · {name}": "Custom · {name}", | ||
| "被跳过:": "Skipped: ", | ||
| "设置识别规则": "Set identification rules", | ||
| "识别到 User-Agent,但不属于已知的客户端类型:{ua}": "User-Agent present but not a known client type: {ua}", | ||
| "识别结果(请求头识别出的真实客户端)": "Identification result (the real client recognized from request headers)", | ||
| "识图用量按实际视觉账号单独记录,不混入原模型的回答用量。": "Vision usage is recorded separately against the actual vision account, not mixed with the original model's answer usage.", | ||
| "该供应商已有归属规则,保存将覆盖它": "This provider already has an attribution rule; saving overwrites it", | ||
| "详情": "Details", | ||
| "详情内容": "Detail content", | ||
| "请求体": "Request body", | ||
| "请求图片": "Request image", | ||
| "请求在任何账号接手之前就失败了": "The request failed before any account picked it up", | ||
| "请求头": "Request headers", | ||
| "请求头识别为 {identified},已改写归属为 {client}": "Identified as {identified} from request headers; attribution rewritten to {client}", | ||
| "请求已受理,正在选路、取凭证、建立上游连接": "Request accepted; selecting a route, fetching credentials, and establishing the upstream connection", | ||
| "请求日志列表": "Request Logs", | ||
| "请求日志时间范围": "Request Logs time range", | ||
| "请求日志表": "Request Logs table", | ||
| "请求正在转发中,用时列显示的是已用时": "The request is being forwarded; the duration column shows elapsed time", | ||
| "请求筛选": "Request filters", | ||
| "请求详情": "Request details", | ||
| "请选择供应商": "Select a provider", | ||
| "请选择归属客户端": "Select a client", | ||
| "读取请求日志失败,详见控制台": "Failed to load request logs; see the console for details", | ||
| "路由回放": "Routing replay", | ||
| "转发到上游的模型:{model}": "Model forwarded to the upstream: {model}", | ||
| "轮次": "Round", | ||
| "辅助识图": "Assisted image reading", | ||
| "辅助识图调用": "Assisted image reading call", | ||
| "输入 Token": "", | ||
| "输入 {input} · 输出 {output} · 总计 {total} · 缓存读 {cache}": "Input {input} · Output {output} · Total {total} · Cache reads {cache}", | ||
|
|
@@ -201,10 +237,13 @@ | |
| "这条记录命中了敏感词,但没有留下命中明细": "This record hit a sensitive word, but no hit details were kept", | ||
| "这条记录的尝试明细未采集(该字段上线前的旧数据,或请求在转发前就失败)": "Attempt details were not collected for this record (old data from before this field existed, or the request failed before forwarding)", | ||
| "这条请求没有保存这一段报文": "This request did not save this payload section", | ||
| "这条请求没有记录供应商(旧数据或未走到转发),不能从这里改归属": "No provider recorded for this request (legacy data or it never reached forwarding); attribution cannot be changed here", | ||
| "进入「{phase}」阶段已持续 {time}": "In \"{phase}\" phase for {time}", | ||
| "进行中": "In progress", | ||
| "进行中…": "In progress…", | ||
| "连接中": "Connecting", | ||
| "选择供应商": "Select provider", | ||
| "选择归属客户端": "Select client", | ||
| "速度": "Speed", | ||
| "重试 {n}": "Retry {n}", | ||
| "重试 {n} 次": "", | ||
|
|
@@ -220,6 +259,7 @@ | |
| "首响:上游首帧到达的耗时": "TTFB: time to first byte from the upstream", | ||
| "首响:上游首帧到达的耗时(请求仍在转发中)": "TTFB: time to first byte from the upstream (request is still being forwarded)", | ||
| "首帧已到,上游内容正在下发": "First byte received; upstream content is streaming in", | ||
| "默认归属客户端": "Default attribution client", | ||
| "(请求仍在转发中)": "(request is still being forwarded)", | ||
| "(账号:{account})": "(Account: {account})", | ||
| ",{n}毫秒后重试": ", retry in {n}ms", | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
补齐在途归属提示的翻译。
当请求仍在选路且
provider为空时,客户端列会显示这条提示。英文译值为空,因此运行时会显示简体中文原文。日语、韩语和巴西葡萄牙语源词典的同一词条也为空。请在源词典补齐四种译文,再重新生成请求词典。按路径指引“检查 UI 展示、错误提示和默认值是否符合用户直觉”。Source: Path instructions