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 |
|