Commit Graph
41 Commits
Author SHA1 Message Date
Jeff Gu 1c9bd91aed feat(pricing): 重构定价管理页面,支持卡片视图和多选筛选功能
- 更新定价模型,支持可选输入和输出字段
- 增加多选自动完成输入组件,允许按渠道、令牌和类型筛选
- 重新设计定价行的构建逻辑,优化数据处理
- 提升用户体验,支持 JSON 配置与卡片视图之间的切换
- 增强 API 端点,确保定价配置的有效性和一致性
2026-04-13 17:54:30 +08:00
Jeff Gu 141da9dcf0 feat(analytics): 增加总令牌数支持并优化相关逻辑 2026-04-13 14:31:28 +08:00
Jeff Gu 0258367a64 feat(billing): 优化计费精度
- 新增账单配置 API,包括获取和更新显示小数位数的功能。
- 在前端页面中集成账单配置,允许用户设置金额显示精度。
- 更新相关页面(分析、定价、令牌、使用日志)以支持动态显示小数位数。
- 规范化账单金额处理,确保金额在前端和后端一致。
2026-04-13 13:56:13 +08:00
Jeff Gu 954e1b539f feat(channels): 增强负载均衡和重试逻辑 2026-04-12 20:15:53 +08:00
Jeff Gu 45fd61e285 feat(channels): 添加模型启用状态支持和相关功能
- 在 ChannelModelMapping 中添加 enabled 字段
- 更新模型处理逻辑以支持启用状态
- 增强模型选择对话框,允许批量选择和启用状态管理
2026-04-12 16:46:13 +08:00
Jeff Gu e49ed2427a feat(utils): 添加 UTC 时间戳解析函数以支持日期格式化 2026-04-12 03:10:09 +08:00
Jeff Gu 45d717a028 feat(channel): 添加权重属性以优化通道选择
在 ChannelConfig 中添加了可选的 weight 属性,用于
优化通道的选择逻辑。更新了相关 API 端点以支持
权重的验证和处理。通道选择逻辑现在会优先选择
权重最高的通道,提升请求路由的灵活性和效率。
2026-04-12 00:08:19 +08:00
Jeff Gu 1243bf629d feat(channels): 渠道停用、启用功能 2026-04-11 23:23:41 +08:00
Jeff Gu 9485366765 feat(analytics): 添加使用情况日志记录功能
- 新增 usage-logger.ts 文件,包含使用情况日志记录的逻辑
- 在多个代理中添加 trackingState 参数以跟踪请求状态
- 记录成功和失败的使用情况事件
- 更新相关类型定义以支持新的日志记录功能
- 配置 wrangler.jsonc 以启用使用情况分析数据集
2026-04-11 08:57:01 +08:00
Jeff Gu 7707de2b3e feat(channels): 添加对 Gemini 渠道的支持和相关配置 2026-04-10 18:00:21 +08:00
Jeff Gu 7ff59e153a feat(api): 调整API端点补全逻辑 2026-04-10 14:20:01 +08:00
Jeff Gu e5363843af chore: 清理多余的代码变更记录&更新依赖 2026-04-09 21:04:30 +08:00
Jeff Gu 84cc346ebd feat(channel): 添加模型映射和获取模型的 API
- 在 ChannelConfig 中添加 models 字段以支持模型映射
- 新增 ChannelFetchModelsEndpoint 用于获取上游模型列表
- 更新 normalizeChannelConfig 函数以处理新模型结构
- 修改相关的数据库操作以适应新的配置结构
- 引入 buildPrefixedTargetUrl 函数以简化 URL 构建
- 更新 utils 函数以支持模型映射查找
2026-04-09 11:56:38 +08:00
Jeff Gu a2c97959ba feat(channel): 支持多个 API 密钥和自动重试功能
- 更新 ChannelConfig 接口,添加 api_keys、auto_retry 和 auto_rotate 字段
- 修改 Channels 组件以支持新的配置
- 实现 API 请求的重试机制,增强稳定性
2026-04-09 11:17:20 +08:00
Jeff Gu 1ef5502083 feat: 更新项目名称为 One API on Workers 2026-04-09 10:03:02 +08:00
Jeff Gu 6071f18f7a feat(api): 添加前端代理和静态资源处理逻辑
- 增加了对前端开发服务器的代理支持
- 实现了静态资源请求的处理
- 更新了类型定义以支持新环境变量
- 新增了 wrangler.jsonc 配置文件,替换原有的模板文件
2026-04-09 09:39:40 +08:00
Jeff Gu c36e3c1017 feat: 界面&逻辑调整;修复数据库初始化问题 2026-04-08 21:52:33 +08:00
Dream Hunter 1a90c280e0 Add dedicated audio channel support (#11) 2026-03-15 18:32:50 +08:00
dreamhunter2333andClaude Opus 4.6 f7a1d95ec4 refactor: 消除剩余重复代码,统一 usage 处理和导入风格
- 提取 checkoutResponsesUsageData 到 shared,消除两个 responses proxy 重复
- claude-to-openai 复用 usage-utils 的 normalizeUsage(支持 cached_tokens)
- 删除 utils.ts 默认导出,统一使用命名导入
- channel-resolver JSON.parse 加防御,坏数据跳过不崩溃

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 20:25:45 +08:00
dreamhunter2333andClaude Opus 4.6 6f99358fb5 refactor: 统一 providers 层,提取共享模块消除重复代码
- 提取 shared/auth.ts、channel-resolver.ts、route-policy.ts、provider-registry.ts
- 提取 shared/openai-stream-utils.ts 和 responses-stream-utils.ts
- 统一 index.ts 为 UnifiedProxyEndpoint(303→55行)
- 各 provider 文件精简约55%,只保留 buildProxyRequest
- 修复 claude-to-openai-proxy.ts 类型错误
- 添加 E2E mock 测试基础设施(mock-upstream + setup + run-e2e)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:24:30 +08:00
dreamhunter2333 d9dd2d81be Make /v1/models auth optional 2026-02-07 22:15:25 +08:00
dreamhunter2333andClaude Opus 4.5 5b7254f17e fix: 修复 Claude 协议转换中 tool_result 消息导致空 user 消息的问题
当 Claude 消息内容全部为 tool_result 块时,转换后的 OpenAI 消息会缺少 content 字段,
导致后端(如 minimax)返回 400 错误。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:57:18 +08:00
dreamhunter2333andClaude Opus 4.5 a374078966 fix: 使用转换后的模型名计费
计费时使用 requestBody.model(转换后的实际模型名)而不是原始请求的模型名,
这样定价表只需配置后端实际模型的价格即可。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:08:53 +08:00
dreamhunter2333andClaude Opus 4.5 c75dade7df feat: 添加 Claude 到 OpenAI 协议转换支持
新增功能:
- 新增 claude-to-openai channel 类型,支持 Claude 协议请求转换为 OpenAI 协议
- 支持流式和非流式响应转换
- 完整的 SSE 事件转换 (message_start, content_block_*, message_delta, message_stop)
- 支持工具调用 (tool_use) 转换

优化:
- 统一在上层完成模型名映射,移除各 provider 重复逻辑
- 添加通配符匹配支持 (如 *claude*, claude-*)
- 简化代码,移除冗余变量

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 02:15:41 +08:00
dreamhunter2333andClaude Opus 4.5 59149af970 feat: 添加 /v1/models 端点支持
- 新增 ModelsEndpoint 类,返回当前 token 可用的所有模型列表
- 兼容 OpenAI API 格式
- 支持 Authorization 和 x-api-key 两种认证方式

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 23:32:48 +08:00
dreamhunter2333andClaude Opus 4.5 98522e7678 feat: 添加令牌重置已用额度功能
- 后端新增 POST /api/admin/token/:key/reset 接口
- 前端令牌列表添加重置额度按钮(桌面端和移动端菜单)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 21:52:22 +08:00
dreamhunter2333andClaude Opus 4.5 bdb4825cdc feat: 修复 Codex 缓存 token 计费并优化代码结构
- 修复 Codex API 缓存 token 重复计费问题 (input_tokens 包含 cached_tokens)
- 提取共享代码到 src/providers/shared/usage-utils.ts,消除重复
- 前端定价页面增加缓存倍率配置列
- 修复 var 为 const,favicon 改为云图标

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 21:06:44 +08:00
dreamhunter2333 066437fcb3 Fix duplicate usage tracking for streaming 2026-01-02 01:42:10 +08:00
dreamhunter2333 80a6fedbac Add responses proxies and usage fixes 2025-12-31 11:31:07 +08:00
dreamhunter2333andClaude Opus 4.5 6713f240ba fix: 修复 SPA 路由刷新 404 和认证状态丢失问题
- 移除手动 SPA fallback 逻辑,使用 Cloudflare Assets 原生 SPA 支持
- 修复刷新时认证状态丢失导致跳转首页的问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:39:11 +08:00
dreamhunter2333andClaude Sonnet 4.5 de24d420a4 refactor: 优化 Claude proxy 代码结构和 header 处理
- 简化 stream 条件判断(去掉冗余的 || reqJson.stream)
- 移除不必要的 else(stream 分支已有 return)
- 删除客户端的 x-api-key header 避免冲突
- 精简 header 处理逻辑

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-17 19:04:02 +08:00
dreamhunter2333andClaude Sonnet 4.5 4d4e78fa41 feat: ProxyEndpoint 支持 x-api-key 认证方式
- 支持 OpenAI 格式:Authorization: Bearer xxx
- 支持 Claude 格式:x-api-key: xxx
- 两种认证方式都可以使用
- 客户端可以使用任一格式调用 /v1/messages 和 /v1/chat/completions
- 更新 schema 使两个 header 都为 optional

Claude proxy 完善:
- 删除客户端 Authorization header 避免与上游 API 冲突
- 支持 message_complete 事件(最新格式)
- 保留 message_stop 作为向后兼容

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-17 18:57:08 +08:00
dreamhunter2333andClaude Sonnet 4.5 28efa1367b fix: 修复频道多选和 Claude API streaming 支持
1. 频道多选下拉框修复:
   - 将点击事件改为 checkbox onchange 事件
   - 新增 handleChannelCheckboxChange 函数
   - 避免手动切换导致状态重复切换的问题

2. Claude API 支持完善:
   - 删除客户端的 Authorization header 避免冲突
   - 支持 message_complete 事件(Claude 最新格式)
   - 保留 message_stop 处理作为向后兼容
   - 正确提取 streaming 和 non-streaming 的 token usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-17 18:53:23 +08:00
dreamhunter2333andClaude Sonnet 4.5 198dc500aa feat: 重构管理界面并添加统一 loading 效果
- 完全重构前端管理界面,采用模块化架构
- 新增独立的 CSS 和 JS 模块(utils, auth, channels, tokens, pricing, api-test, database)
- 实现统一的 loading 遮罩效果,所有 API 请求自动显示加载状态
- 添加现代化多选下拉框组件用于频道选择
- 实现模型部署映射的可视化表格编辑
- 修复页面高度自适应问题,管理页面占满全屏
- 优化侧边栏布局,添加 GitHub 链接和版本号
- 令牌管理页面隐藏敏感 key,添加复制功能
- 管理页面切换时自动重置为列表视图并重新加载数据
- 新增 Claude Proxy 提供商支持
- 统一所有 API 调用的错误处理和 loading 状态管理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-17 18:41:05 +08:00
dreamhunter2333 8bffed8a03 优化代理服务流式响应处理和使用量统计
- 修复 processStreamData 异步处理问题,使用 for..of 替代 forEach
- 优化流式响应处理,使用 response.body.tee() 分离客户端和服务端流
- 使用 executionCtx.waitUntil() 确保后台使用量统计不阻塞响应
- 为 Azure OpenAI 代理添加 api_version 条件检查
- 统一两个代理服务的流处理逻辑,提高代码一致性
2025-07-01 03:00:38 +08:00
dreamhunter2333 8d4af1b895 重构 TokenUtils: 从类改为对象,添加新的 pricing 和 usage 处理方法
- 将 TokenUtils 从类重构为对象
- 添加 getPricing 方法,支持 channel-specific 和 global pricing
- 添加 processUsage 方法,集中处理使用量计算和记录
- 在 providers/index.ts 中简化 usage 处理逻辑
- 添加 API key 掩码功能以保护敏感信息
2025-06-27 02:08:16 +08:00
dreamhunter2333 3b6c5b37c1 fix: use deployment_mapper for model replacement in OpenAI provider 2025-06-26 20:35:50 +08:00
dreamhunter2333 d4d318579b feat: add OpenAI provider support 2025-06-26 01:24:43 +08:00
dreamhunter2333 d62e662d20 feature: support azure deepseek 2025-06-24 19:02:52 +08:00
dreamhunter2333 4100cfd02d feature: update ux 2025-06-23 13:15:23 +08:00
dreamhunter2333 90525cdfd8 init 2025-06-21 19:30:54 +08:00