Commit Graph

1324 Commits

Author SHA1 Message Date
shaw
0d7a200505 Merge PR #512: 添加 OpenAI chat/completions 兼容支持
## 主要功能
-  使用策略模式处理不同后端(Claude/OpenAI/Gemini)
-  添加 OpenAI chat/completions 兼容支持
-  修复代码缩进符合 ESLint 规范

## 核心变更

### 1. 后端检测机制
添加 `detectBackendFromModel()` 函数:
- 根据模型名称前缀检测后端(claude-/gpt-/gemini-)
- 默认使用 Claude 后端

### 2. 扩展模型列表
/v1/models 端点现在返回:
- Claude 模型:Sonnet 4.5, Opus 4.1, Sonnet 4, Haiku等
- OpenAI 模型:gpt-4o, gpt-4o-mini, gpt-4-turbo等
- Gemini 模型:gemini-1.5-pro, gemini-1.5-flash等

### 3. OpenAI 兼容支持
- 添加 `validateChatCompletionRequest()` 验证函数
- 支持 OpenAI chat/completions 请求格式
- 实现流式和非流式响应处理

### 4. 代码规范
- 修复 ESLint 缩进问题
- 统一代码格式

## 技术细节
- 修改文件:src/routes/api.js, src/services/openaiToClaude.js 等
- 版本更新:1.1.168 → 1.1.169
- 保留了之前添加的账户过期检查逻辑(来自PR #541)

作者: bottotl
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/512
2025-10-12 13:49:20 +08:00
shaw
a84f344df6 Merge PR #541: 添加账户订阅到期时间管理功能 + 修复核心过期检查逻辑
## 原PR功能
-  后端添加subscriptionExpiresAt字段支持
-  前端提供到期时间设置界面(快捷选项 + 自定义日期)
-  账户列表显示到期状态(已过期🔴/即将过期🟠/永不过期)
-  新增AccountExpiryEditModal.vue编辑弹窗组件
-  支持创建和更新账户时设置到期时间
-  完整支持暗黑模式

## 🔧 关键修复(本次提交)
原PR缺少核心过期检查逻辑,过期账户仍会被调度使用。本次合并时添加了:

1. **新增isAccountNotExpired()方法**:
   - 检查账户subscriptionExpiresAt字段
   - 未设置过期时间视为永不过期
   - 添加debug日志记录过期账户

2. **在selectAvailableAccount()中添加过期检查**:
   - 过滤逻辑中集成this.isAccountNotExpired(account)
   - 确保过期账户不被选择

3. **在selectAccountForApiKey()中添加过期检查**:
   - 绑定账户检查中添加过期验证
   - 共享池过滤中添加过期验证

## 🗑️ 清理工作
- 移除了不应提交的account_expire_feature.md评审文档(756行)

## 技术细节
- API层使用expiresAt,存储层使用subscriptionExpiresAt
- 存储格式:ISO 8601 (UTC)
- 空值表示:null表示永不过期
- 时区处理:后端UTC,前端自动转换本地时区

作者: mrlitong (原PR) + Claude Code (修复)
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/541
2025-10-12 13:42:57 +08:00
shaw
8e415f8ff8 Merge PR #545: 常用模型增加deepseek-chat;修复修改时默认选择白名单
- Claude Console类型账户默认白名单模型增加deepseek-chat模型
- 修复白名单模式下的初始化逻辑:
  * 白名单模式:正确设置allowedModels用于显示勾选的模型
  * 同时保留modelMappings以便用户切换到映射模式时有初始数据
  * 映射模式:只设置modelMappings,不填充allowedModels
- 增加代码注释,清晰说明不同模式的数据设置逻辑

作者: looksgood
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/545
2025-10-12 13:34:10 +08:00
shaw
df2527a86c Merge PR #548: 修复Claude Console流式响应usage统计不完整问题
- 完善message_delta中usage数据提取逻辑,支持提取input_tokens、cache_read_input_tokens等所有字段
- 添加兜底保护机制,确保流结束时不会丢失未保存的usage数据
- 提升关键日志级别从debug到info,便于问题排查
- 修复流式请求中input_tokens和cache_read_input_tokens为0的统计bug

作者: DokiDoki1103
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/548
2025-10-12 13:30:25 +08:00
shaw
b7cd143b4c fix: 修复temperature参数冲突问题 2025-10-12 13:25:43 +08:00
shaw
a58d67940c fix: 优化并发计数过期清理 2025-10-12 13:14:15 +08:00
jft0m
44c6be129b Merge branch 'Wei-Shaw:main' into main 2025-10-12 09:28:12 +08:00
litongtongxue
c8c337099e Merge upstream/main into feature/account-expiry-management
解决与 upstream/main 的代码冲突:
- 保留账户到期时间 (expiresAt) 功能
- 采用 buildProxyPayload() 函数重构代理配置
- 同步最新的 Droid 平台功能和修复

主要改动:
- AccountForm.vue: 整合到期时间字段和新的 proxy 处理方式
- 合并 upstream 的 Droid 多 API Key 支持等新特性

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-12 00:55:25 +08:00
github-actions[bot]
e337d1fb43 chore: sync VERSION file with release v1.1.169 [skip ci] 2025-10-11 15:06:40 +00:00
shaw
26894f485b feat: droid账号增加apikey数量显示 2025-10-11 23:05:48 +08:00
shaw
0b2610842a feat: droid apikey异常自动移除 2025-10-11 22:39:41 +08:00
shaw
53dee11a10 feat: droid的apikey模式适配多种更新方式 2025-10-11 22:15:38 +08:00
shaw
6dcb8b9449 fix: 修复droid转发流式请求判断 2025-10-11 20:46:05 +08:00
DokiDoki1103
b7fe75cb60 fix: 修复Claude Console流式响应usage统计不完整问题
- 完善message_delta中usage数据提取逻辑,支持提取input_tokens、cache_read_input_tokens等所有字段
- 添加兜底保护机制,确保流结束时不会丢失未保存的usage数据
- 提升关键日志级别从debug到info,便于问题排查
- 修复流式请求中input_tokens和cache_read_input_tokens为0的统计bug

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 20:16:44 +08:00
liangjie.wanglj
c81ec34ad8 常用模型增加deepseek-chat;修复修改时默认选择白名单 2025-10-11 18:53:41 +08:00
github-actions[bot]
6b85a027bd chore: sync VERSION file with release v1.1.168 [skip ci] 2025-10-11 09:43:36 +00:00
shaw
56fe7be8ec fix: 优化claude code系统提示词判断 2025-10-11 17:34:17 +08:00
github-actions[bot]
b408a7122d chore: sync VERSION file with release v1.1.167 [skip ci] 2025-10-11 06:23:44 +00:00
shaw
cd9a2025b2 fix: 适配droid调用claude code订阅接口 2025-10-11 14:17:08 +08:00
github-actions[bot]
3862a1d77c chore: sync VERSION file with release v1.1.166 [skip ci] 2025-10-11 05:03:04 +00:00
shaw
9b211b063b feat: 适配claude的400错误码 2025-10-11 13:00:02 +08:00
shaw
4a925e2f8b docs: 更新droid部分内容 2025-10-11 12:37:37 +08:00
shaw
a6f5876eca fix: 修复droid类型账号类型显示 2025-10-11 11:48:20 +08:00
shaw
6f2307721b fix: 修复droid账号调度接口404问题 2025-10-11 11:34:13 +08:00
shaw
6c2ef2eef3 fix: 修复droid账号更新丢失apikey的问题 2025-10-11 11:23:24 +08:00
shaw
c56bebdbe5 fix: 修复droid分组调度保存无效的问题 2025-10-11 11:07:05 +08:00
shaw
19fa518e65 fix: 修复droid追加和代理代理IP提交异常的问题 2025-10-11 10:50:26 +08:00
litongtongxue
a82dcebd7b feat: 添加账户订阅到期时间管理功能
## 新增功能
- 支持为 Claude 账户设置订阅到期时间
- 前端提供到期时间选择器(快捷选项 + 自定义日期)
- 账户列表显示到期状态(已过期/即将过期/永不过期)
- 新增独立的到期时间编辑弹窗组件

## 技术变更
- 后端新增 subscriptionExpiresAt 字段存储
- 前端使用 expiresAt 字段进行交互
- 支持创建、编辑、显示完整流程

## 包含文件
- src/routes/admin.js: POST/PUT 端点支持 expiresAt 字段
- src/services/claudeAccountService.js: 存储和返回到期时间
- web/admin-spa/src/components/accounts/AccountForm.vue: 表单添加到期时间选择
- web/admin-spa/src/views/AccountsView.vue: 列表显示和编辑功能
- web/admin-spa/src/components/accounts/AccountExpiryEditModal.vue: 新增编辑弹窗
- account_expire_feature.md: 代码评审报告和优化建议

## 注意事项
⚠️ 本次提交包含初步实现,详细的优化建议请查看 account_expire_feature.md

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 01:05:21 +08:00
jft0m
1c80970aef Merge branch 'Wei-Shaw:main' into main 2025-10-10 21:37:18 +08:00
github-actions[bot]
80059e2b09 chore: sync VERSION file with release v1.1.165 [skip ci] 2025-10-10 13:11:04 +00:00
shaw
c9ad287587 docs: 更新droid教程部分 2025-10-10 21:06:02 +08:00
shaw
6b02dbf040 fix: 优化droid转发错误传递 2025-10-10 20:05:13 +08:00
shaw
e150bc4beb fix: droid转发移除claude code的metadata参数 2025-10-10 19:15:25 +08:00
shaw
1198ee1619 fix: 修复codex传递的gpt-5模型无法使用droid账号的问题 2025-10-10 18:40:19 +08:00
shaw
14e54c0473 docs: 更新Droid 使用教程 2025-10-10 17:34:53 +08:00
shaw
66fe3cf74a fix: 优化count_tokens接口不受并发跟客户端限制 2025-10-10 17:16:10 +08:00
shaw
5165d6c536 Merge branch 'fix/tutorial-dark-theme' into merge-pr523 2025-10-10 16:38:45 +08:00
shaw
6a5b53c047 Merge branch 'pr-527' into merge-pr523 2025-10-10 16:38:32 +08:00
shaw
e209a23ae7 Merge branch 'pr-532' into merge-pr523 2025-10-10 16:37:35 +08:00
shaw
b28631e737 Merge branch 'pr-523' into merge-pr523 2025-10-10 16:34:29 +08:00
shaw
fad9e52c98 feat: Droid平台支持多apikey添加 2025-10-10 16:09:15 +08:00
shaw
1811290c0b feat: 优化droid类型账号oauth流程 2025-10-10 15:36:50 +08:00
shaw
42db271848 feat: droid平台账户数据统计及调度能力 2025-10-10 15:13:45 +08:00
litong.41
99dbb154dd 将docs目录添加到gitignore目录中 2025-10-10 14:33:40 +08:00
litong.41
6b1062caa6 feat: 优化API Key复制功能,支持一键复制环境变量配置
- 修改"复制 API Key"按钮为"复制配置信息"
- 复制内容包含 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN
- 用户无需手动拼接,可直接粘贴使用
- 支持自定义 BASE_URL 配置(通过 VITE_API_BASE_PREFIX 环境变量)
- 自动从浏览器地址获取 BASE_URL(无自定义配置时)
2025-10-10 14:27:16 +08:00
litongtongxue
75804f4c2e fix(web): 修复使用教程页面暗色主题样式问题
- 优化按钮激活态在暗色模式下的视觉效果
- 修复所有提示框(info/success/warning)的暗色样式
- 增强文本对比度,提升可读性(标题/正文/辅助文本)
- 改进代码块在暗色模式下的边框和背景
- 修复 FAQ 折叠面板的暗色主题适配
- 保持玻璃态效果和响应式设计

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 02:20:22 +08:00
shaw
2fc84a6aca feat: 新增Droid cli支持 2025-10-09 23:05:09 +08:00
rxchi1d
df5e04b4c4 docs: 改进反向代理部署指南,新增 NPM 方案
## 变更内容 / Changes

### 中文文档 (README.md)
- 重构反向代理章节结构
- 新增 Nginx Proxy Manager (NPM) 完整配置指南
- 优化 Caddy 配置说明
- 添加 Docker 环境部署注意事项
### 英文文档 (README_EN.md)
- 同步中文文档的所有改进
- 保持中英文文档一致性

## 改进点 / Improvements

-  提供两种主流反向代理方案(Caddy + NPM)
-  详细的 NPM 配置步骤(Details、SSL、Advanced)
-  针对 SSE/流式响应的优化配置
-  安全头部和性能调优建议
-  Docker 环境特定说明

## 技术细节 / Technical Details

**NPM 配置包含:**
- 代理主机设置,包含正确的超时配置
- SSL/TLS 配置,启用 HSTS
- 支持流式传输的高级 Nginx 指令
- 安全头部(X-Frame-Options、CSP 等)
- 禁用代理缓冲以支持实时 SSE

**Caddy 配置更新:**
- 明确 flush_interval 用于 SSE 支持
- 改进超时设置文档
- 更好的安全头部示例
2025-10-09 14:11:26 +08:00
shaw
4de2ea3d17 feat: api-keys页面增加窗口限制进度显示 2025-10-09 08:57:05 +08:00
於林涛
8f9286c30e fix: 修复 ESLint 代码规范问题 2025-10-08 19:49:36 +08:00