Repository navigation
Releases: fuzhengwei/WaLiAPI
Releases · fuzhengwei/WaLiAPI
Release list
WaLiAPI v0.4.0
用量统计与日志(PR #154,@freakojc)
- ✨ 用量统计与审计日志解耦:新增
usage_stats聚合表(迁移 046),按(hour, model, channel_id, api_key_id)四维主键持久化请求/成功/失败计数与 Token、耗时指标,create_log同事务 UPSERT 累加;日志清理不再影响统计,彻底解决「清理日志后首页统计大幅缩水」 - ✨ 六大统计接口改读聚合表:首页 Dashboard、模型分布、Token 趋势、按天、渠道、Key 统计口径不变,前端无感迁移;小时桶为唯一物理存储粒度,天/周/月/趋势由小时桶聚合合成,统计表增长为 O(组合数×小时) 而非 O(请求数)
- ✨ 多条件组合日志清理:时间门限(before / after / keep_recent_days)+ 状态码/是否成功 + 渠道/Key/模型 AND 组合清理;
dry_run预览影响行数(前端两步确认);clear_usage_stats支持独立清统计(不动日志);启动时自动从存量request_logs幂等回填聚合表 - ✨ 服务可用率改健康口径:分母=启用渠道/未禁用账号,分子=启用且健康/凭证有效;主动禁用的渠道与账号不再拉低可用率,只有真实探测失败才会下降
- 🎨 Token 趋势图改按模型堆叠柱状图:手写 SVG(不引入图表库),按模型颜色堆叠,hover 浮层/图例/输入输出缓存开关保留
日志清理与 UI(PR #155,@freakojc)
- ✨ 清理弹窗新增「渠道日志」tab:按渠道维度组合执行——清渠道日志(级联 findings/segments,不动统计)、清渠道统计(删
usage_stats行,不动日志)、重置失败计数(仅清fail_count,成功率真实恢复);支持时间范围、dry_run 预览与含备份提醒的二次确认 - 🐛 成功率公式修正:渠道页(卡片+仪表盘)与密钥页由
success/total改为success/(success+failed),重置失败计数后成功率真实回到 ~100% - 🐛 「全局日志」tab 渠道下拉修复:清理弹窗渠道下拉在挂载时即加载,修复下拉为空;全局日志表单简化,渠道 ID 改为可选下拉
- 🎨 首页与弹窗 UI 优化:模型分布默认展示 8 行、「展开更多/收起」按钮;Token 趋势浮窗在最右侧自动翻转、不溢出视域
- 🔧 迁移文件锁定 LF 行尾:防止 EOL 转换导致 sqlx checksum 漂移
知识库与 RAG(PR #152,@Zhengmingming1)
- ✨ RAG 健康检测支持按 API Key 选择回答模型:候选目录复用
/v1/models的渠道、模型黑白名单、映射别名与 Auth 账号聚合,再经 Chat 路由规划器过滤不可路由候选与仅 Embedding 渠道;保留「手动输入」与「刷新模型」,列表只读、不消耗额度;切换密钥/知识库自动清空旧选择与检测结果
知识库与 RAG(PR #153,@Zhengmingming1)
- ✨ 通用 RAG 质量优化:检索预算与受控降级诊断细化,检索器、模型客户端与问答链路全面加固
- ✨ PDF 解析质量补全:解析器与处理器增强,提升中文 PDF 与复杂版式的切分质量
- 🐛 SQLite 并发写入修复:内嵌修复版 libsqlite3-sys 兼容层(
sqlite-compat/),启用修复版 WAL 并合并渠道状态写入,缓解并发写竞争
其他
WaLiAPI v0.3.9
Auth 账号与额度(PR #149,@jiangnuonnuo)
- ✨ Codex 账号重置卡:账号列表新增手动重置入口与确认弹窗,支持对 Codex 账号手动触发速率额度重置(
wham/rate-limit-reset-credits),后端完整记录重置与消耗操作流水(迁移 045),重置结果即时反馈并刷新账号额度展示 - 🎨 账号列表行末按钮悬浮提示:账号列表行末操作按钮增加 tooltip 悬浮说明
渠道与负载均衡(PR #150,@freakojc)
- ✨ 流式 pre-commit 阶段多 Key failover:流式路径此前仅取渠道随机抽中的第一把 Key,失败即放弃该渠道、备用 Key 永远轮空;现对齐非流式
dispatch_channel_with_key_failover语义,pre-commit 阶段(尚未向下游提交任何字节)失败自动换下一把启用 Key 重试,全部分 Key 失败才切换下一候选渠道;多 Key 容量在流式链路下正式生效
协议转换(PR #147,@huangkemingyyds)
- 🐛 Anthropic 内置工具兼容:Messages → Responses 转换识别
web_search等 Anthropic 内置工具并跳过,不再因无法映射而拒绝整个请求,用户自定义工具正常保留转换;tool_choice强制调用被跳过的内置工具时仍返回清晰的 unsupported feature 错误 - 🐛 Anthropic 原生渠道地址 /v1 归一化:渠道 base URL 缺失
/v1时自动补齐并清理末尾斜杠(读取与保存渠道身份时统一归一化),修复智谱等 Anthropic 原生渠道因地址少/v1导致的 404;上游模型同步与相关集成测试约定同步更新(GET /v1/models)
Codex(PR #148,@huangkemingyyds)
- ✨ Codex client version 动态刷新:Codex CLI 版本号不再写死(原
0.156.1),默认0.162.0,每 6 小时从 npm registry 拉取最新版本并仅在更高时采用;支持WALIAPI_CODEX_CLIENT_VERSION环境变量覆盖;修复 ChatGPT 按 client_version 门控模型目录导致的模型缺失/过期问题
前端(PR #144,@wuchubuzai2018)
- 🐛 低版本 WebKit 左侧菜单不显示修复:Tailwind v4 断点在旧 WebKit 内核的兼容处理,附 ADR 文档说明(
docs/adr/0001) - 🎨 Codex 订阅页表格操作按钮悬浮文案优化
其他
WaLiAPI v0.3.8
渠道与负载均衡
- ✨ API Key 独立启停开关(迁移 044):主 Key 与从 Key 均可单独停用/启用,停用后不参与负载均衡;渠道全部 Key 停用时该渠道整体跳过,请求自动切换其他可用渠道,不会误用已停用的 Key
- ✨ 渠道预览快捷启停与加密展示:渠道卡片展开即可点击切换任意 Key 的启用状态(乐观更新,失败自动回滚);Key 默认掩码展示(仅前 4 位与后 4 位可见),按需查看明文;主 Key 停用时整行变淡并显示「已停用」徽标
- 🐛 连通性测试对齐调度语义:保存触发的草稿测试、渠道列表测试按钮与保存侧指纹,在主 Key 停用时自动改测第一个启用的从 Key,与负载均衡实际行为一致;「同步上游模型」同样适用
- 🐛 修复编辑渠道时从 Key 被掩码值覆盖:编辑保存对从 Key 为全量替换写入,未重新编辑过的从 Key 会以掩码值落库导致凭证损坏;现前端保存时回传 Key id,后端识别掩码值并回填库中真实 Key
- 🐛 修复流式路径停用 Key 回退:凭据槽为空时不再回退到已停用的主 Key,正确切换下一候选渠道
- 🎨 主/从 Key 行 UI 对齐:表单内主 Key 与从 Key 行的按钮顺序(复制 → 权重 → 启停 → 编辑 → 删除)、输入框宽度与启停胶囊样式统一;预览页主/从 Key 启停胶囊共用同一组件
- 🔧 导入导出兼容:
api_key_enabled随渠道导出/导入透传,旧版本导出文件缺省视为启用
知识库与 RAG(PR #142,@Zhengmingming1)
- ✨ RAG 时间预算与受控降级:为检索与读取链路引入时间预算,超时按受控降级返回可用结果,避免长尾检索拖垮问答体验
- ✨ 考试逐项合同与证据覆盖检索:新增考试场景逐项判定与证据覆盖检索能力(迁移 043 检索投影版本)
- ✨ 通用思考强度与弃答诊断细化:支持通用思考强度配置,考试弃答诊断按阶段细化归因
- ✨ 新建密钥与知识库默认双向授权查询权限:新建 API Key 与知识库时默认建立双向授权的查询权限,减少漏配
- 🔄 分离通用检索与调用方业务规则:检索器与调用方业务规则解耦,便于复用与回归验证
模型映射与协议(PR #141,@huangkemingyyds)
- 🐛 修复模型映射与 Antigravity Responses 工具路由:规范化渠道和 Auth 账号模型映射,统一禁用映射与知识库调用行为;支持 Codex Responses additional_tools 经 Gemini 转换,恢复自定义工具调用及流事件,并兼容旧会话回放
其他
WaLiAPI v0.3.7
知识库与 RAG
- ✨ RAG 链路分阶段诊断:
/api/kb/ask支持diagnostics=true,按 permission / embedding / retrieval / answer / validation 各阶段返回状态与失败原因;健康检测不再仅凭 HTTP 200 冒充完整链路通过,需各阶段逐一校验(PR #140,@Zhengmingming1) - ✨ API Key 知识库健康检测:新增
test_api_key_knowledge_health命令,经本机真实 HTTP 入口携带指定 API Key 请求/api/kb/ask,验证 Key 权限、额度与完整 RAG 检测链路,返回耗时、答案、引用来源与诊断详情(PR #140,@Zhengmingming1) - ✨ Embeddings 配置预检:新增 Embedding 能力预检命令,复用网关内部 Embedding 路由规划且不发请求,可区分「渠道未声明 Embeddings 能力」与「无支持该模型的渠道」并给出修复指引(PR #140,@Zhengmingming1)
- 🐛 内部知识库 Embedding 复用统一网关路由:知识库建库/查询的向量调用不再自行拼接
/embeddings直连上游,改为复用网关的路由规划、渠道身份、Key 轮换与故障切换语义,模型匹配与端点能力判定与外部请求一致(PR #140,@Zhengmingming1) - 🐛 旧 Gemini 执行器不再误判支持 Embeddings:
gemini_native执行器固定调用 generateContent 无法发送/embeddings,路由规划排除其 Embeddings 原生资格,向量请求由 OpenAI 兼容渠道承接(PR #140,@Zhengmingming1)
前端
- ✨ 知识库连接检查接入预检与健康检测:知识库连接面板展示配置预检结论与真实 RAG 健康检测结果,知识库页同步诊断展示;渠道表单补充 Embeddings 能力配置提示(PR #140,@Zhengmingming1)
其他
- 🧪 新增 RAG Embedding 路由集成测试:
rag_embedding_routing等测试覆盖内部 Embedding 路由规划、渠道模式过滤与诊断响应(PR #140,@Zhengmingming1) - 📝 README 贡献者数据同步:更新 Nelson(@Zhengmingming1,PR #140)提交数与代码变更统计
- 🔧 版本号统一升级至 0.3.7(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)
WaLiAPI v0.3.6
协议转换(codec)
- 🐛 Chat response_format 映射为 Responses text.format:Chat Completions 请求的
response_format正确映射到 Responses 协议的text.format,JSON 输出约束跨协议生效(PR #136,@GululuCopa) - 🐛 Messages 顶层 safeguards 按 fail-open 丢弃:无法识别的顶层 safeguards 字段按 fail-open 丢弃,不再导致请求被上游拒绝(PR #136,@GululuCopa)
- 🐛 Chat→Responses 兼容常用采样字段:客户端常用采样参数在 Chat→Responses 转换中正确透传(PR #135,@GululuCopa)
- 🐛 Responses function_call 条目 id 规范化:function_call 条目 id 必须是
fc_前缀,修复部分客户端解析失败(#129,@GululuCopa) - 🐛 Gemini 请求转换兼容标准 JSON Schema 与 Gemini 3 工具签名(@GululuCopa)
- 🐛 保留 Gemini 转换上下文并拒绝未知输入:跨协议请求边界校验,转换上下文不丢失、未知输入直接拒绝(PR #136,@GululuCopa)
Auth 账号
- 🐛 Antigravity OAuth 修复:修复 v0.3.6 Antigravity OAuth 授权流程(PR #128,@GululuCopa)
- ✨ Antigravity 模型额度展示与工具调用 ID 保留:Auth 渠道页展示 Antigravity 模型剩余额度,工具调用 ID 跨请求保留(PR #138,@huangkemingyyds)
- 🐛 Grok 出站请求对齐上游约束:出站请求对齐上游工具白名单与加密推理约束;规范化工具参数里的整数值浮点(PR #135,@GululuCopa)
- 🐛 流式出站改用无总超时的 HTTP 客户端:避免长流式响应被总超时中断(PR #135,@GululuCopa)
- 🐛 打开系统浏览器失败单独归类 BrowserOpenFailed:OAuth 授权时浏览器打开失败返回明确错误类型(PR #135,@GululuCopa)
Codex
- 🐛 修复旧会话回放与 GPT-6 模型同步(PR #137,@huangkemingyyds)
客户端与配置生成
- 🐛 修正 OpenCode / OpenClaw / Hermes 的配置生成:客户端配置应用改为事务化,同步
modelPolicy.allow避免主模型不可见(PR #135 / #136,@GululuCopa) - 🧪 回放用例改用相对时间:避免测试随 TTL 过期自失败(PR #135,@GululuCopa)
其他
- 📝 OAuth 协议覆盖验证记录:补充 OAuth 协议覆盖验证文档
- 📝 README 贡献者数据同步:新增贡献者 黄科铭(@huangkemingyyds,PR #137 #138),按当前仓库提交记录更新全体贡献者提交数与代码变更统计
- 🔧 版本号统一升级至 0.3.6(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)
WaLiAPI v0.3.5
新增渠道
- ✨ 新增 StepFun(阶跃星辰)渠道预设:新增 OpenAI 兼容渠道类型 StepFun(
stepfun,Base URLhttps://api.stepfun.com/v1),内置 5 条静态模型建议——step-5-preview / step-3.7-flash / step-3.5-flash / step-3.5-flash-2603 / step-1o-turbo-vision(旗舰在前,顺序即预填与连通性探测默认),预设仅声明 Chat Completions 端点与 Bearer 鉴权,模型建议可经「同步上游模型」拉取GET /v1/models覆盖;渠道导入导出的 v2 身份信任白名单、前后端图标与渠道类型定义同步接入(PR #127,@chyuan)
其他
- 📝 README 贡献者数据同步:按当前仓库提交记录更新贡献者提交数与代码变更统计
- 🔧 版本号统一升级至 0.3.5(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)
WaLiAPI v0.3.4
Auth 账号
- ✨ Grok OAuth 登录:新增 Grok 渠道 OAuth 授权登录(
grok_login/grok_backend),支持 Token 自动刷新与协议感知模型发现,Auth 渠道页可直接登录 Grok 账号(PR #122,@GululuCopa) - ✨ Antigravity OAuth(Gemini)登录:新增 Antigravity 作为 Gemini 渠道的 OAuth 登录方式(
gemini_backend),Gemini 渠道支持 Antigravity 账号接入(PR #121,@GululuCopa) - 🐛 Grok 与 Antigravity namespace 工具兼容:兼容两者工具调用的 namespace 前缀,修复工具调用在协议转换中的匹配问题(@GululuCopa)
渠道管理
- ✨ 模型映射支持开启/关闭(迁移 041):每条模型映射可单独停用,
model_mapping_disabled记录被关闭的映射对;路由匹配、上游模型解析、/v1/models聚合均跳过被关闭的映射;映射行点击开关即时切换,导入导出同步兼容该字段 - ✨ 从 curl 导入渠道:新建渠道表单支持粘贴任意 OpenAI / Anthropic / Ollama 兼容的 curl 命令,自动解析并一键填充协议、Base URL、API Key 与模型(支持
\续行与各类引号转义) - ✨ 复制测试 curl:渠道列表新增「复制测试 curl」,按渠道协议 / URL / 模型生成可直接执行的 curl 命令(含真实 API Key),粘贴到终端即可验证渠道连通性
WaLiAPI v0.3.3
日志
- ✨ 新增「简要」日志级别:在「基本 / 详情」之外新增「简要」级别——请求消息列表只保留最新 3 条,长对话场景下可显著降低日志存储占用(PR #119)
RAG 检索回归修复
- 🐛 管理搜索接口按模式和权重执行检索:管理端搜索不再忽略检索模式与权重配置,与实际问答链路行为一致(PR #118)
- 🐛 失败文档不再阻止重新导入:导入失败的文档允许直接重试相同内容,无需先清理残留数据(PR #118)
- 🐛 索引落后时回退完整检索:向量索引落后于切片数据时自动回退到完整检索,避免漏召回(PR #118)
- 🐛 向量响应校验与索引对齐:校验 Embedding 响应并按索引匹配输入文本,防止向量错位导致的检索结果异常(PR #118)
修复
- 🐛 Token 配额标签澄清:API Key 的 Token 配额标签文案更明确,避免与知识库权限混淆(PR #117)
- 🧪 补齐
request_headers测试字段:修复 lib test 目标编译失败问题(PR #119)
其他
- 📝 README 贡献者数据同步:按当前仓库提交记录更新贡献者提交数与代码变更统计,README 历史版本改为折叠展示
- 🔧 版本号统一升级至 0.3.3(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)
WaLiAPI v0.3.2
知识库检索与数据安全
- 🐛 中文 PDF 与检索兼容性修复:修复 PDF 部首字形、中文索引与向量检索漏召回问题,提升中文知识库检索稳定性
- 🔒 知识库访问授权:API Key 支持配置知识库授权,REST 与 MCP 查询按授权范围开放,避免跨知识库读取
- 🛡️ RAG 来源与索引一致性修复:来源列表只保留实际使用的上下文;模型变更时使旧向量缓存和索引失效;索引读改写串行化并原子保存;重建失败保留旧切片并原子替换;删除文档时保留导入源文件
- 🧪 RAG 授权与计费测试补强:覆盖查询授权和模型调用计费等关键场景
渠道、日志与 Auth
- ✨ 知识库权限管理界面:新增知识库权限配置与连接检查入口,API Key 可按需授权知识库
- ⚡ 日志统计性能优化:使用覆盖索引服务日志聚合查询,替代已判定失效的旧索引方案
- 🔇 探测日志降噪:审计日志仅记录探测状态翻转,恢复状态就地更新,不再为每次探测新增日志
- 🔐 Claude Code 网关鉴权初始化:补充网关鉴权 bootstrap 流程,并使 Codex Auth 写入逻辑跨平台
其他
- 📝 README 贡献者数据同步:按当前仓库提交记录更新贡献者提交数与代码变更统计
- 🔧 版本号统一升级至 0.3.2(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)
WaLiAPI v0.3.1
渠道与配额
- ✨ 渠道主动健康探测:后台周期性探测上游可用性,异常渠道在候选排序中自动沉底,恢复后自动回归;探测流量与业务统计口径隔离(迁移 033,PR #102)
- ✨ 配额记账强化:两轨配额记账口径合一并递增封顶;配额 429 错误体按端点协议返回并携带
used/limit字段(PR #92)
流式与可观测性
- ✨ 流式内容段持久化:SSE 流式生成内容逐段落库,连接中断后已生成内容仍可查看(迁移 032,PR #95)
- ✨ Responses 断线续传回放:Responses 协议支持逐帧持久化 + offset 回放 + incomplete 收尾,客户端断线后可从中断点续传
- ✨ 数据面 X-Request-Id 标准化:统一采纳/生成/回显请求 ID 并落库 trace_id,链路追踪闭环(PR #94)
- ✨ OTLP/HTTP JSON 导出器:request_log 增量导出为 OTLP span,可对接外部可观测平台(PR #94)
知识库
- ✨ 文档级增量索引:chunk 内容哈希比对 + 未变块 embedding 复用 + HNSW 单点插入与墓碑摘除,文档更新只重算变更部分(PR #93)
- ✨ 多轮对话查询改写:指代型问题在检索前先做查询改写,提升多轮 RAG 命中率(默认关,
kb.query_rewrite开关) - ✨ 混合检索增强:RRF 融合默认开启,可选 LLM listwise 重排进一步提升召回质量
- ✨ Prompt 模板版本化:模板支持版本管理页与种子兼容硬保证(迁移 034)
语义缓存
- ✨ 语义缓存 exact+semantic 两层:精确命中 + 向量语义命中两级缓存,默认关闭;清空逻辑下沉
semantic_cache::clear并补按模型/全清测试(迁移 035)
Auth 账号
- ✨ Codex 设备码登录:支持 Device Authorization 流程(
codex login --device-auth),并处理 pending 授权状态轮询(PR #77) - ✨ Auth 账号列表视图:Auth 渠道页新增账号列表视图,多账号一目了然(PR #103)
修复
- 🐛 Anthropic 容量错误提交前识别:容量/过载类错误在响应提交前检测并触发跨协议故障切换,避免错误透传给下游(PR #101)
其他
- 📝 README 贡献者数据同步:按最新提交记录更新全体贡献者提交数与代码变更统计
- 🔧 版本号统一升级至 0.3.1(package.json / Cargo.toml / tauri.conf.json / Cargo.lock)