Skip to content

feat: 更新 DeepSeek 适配器至 V4,新增 E2E 测试#92

Open
smartdddlab wants to merge 7 commits into
foxhui:mainfrom
smartdddlab:feat/deepseek-v4-adapter
Open

feat: 更新 DeepSeek 适配器至 V4,新增 E2E 测试#92
smartdddlab wants to merge 7 commits into
foxhui:mainfrom
smartdddlab:feat/deepseek-v4-adapter

Conversation

@smartdddlab
Copy link
Copy Markdown

@smartdddlab smartdddlab commented Apr 24, 2026

Summary

  • DeepSeek 官网升级至 V4,适配器同步更新
  • 模型从 deepseek-v3.2 升级至 deepseek-v4-flash / deepseek-v4-pro(快速/专家双模式)
  • 支持中英文界面自动兼容
  • 模型列表扩展至 8 个(flash/pro × thinking/search 组合)
  • 新增 E2E 测试(浏览器交互 + HTTP API)

适配器变更

src/backend/adapter/deepseek_text.js:

  • 新增 switchMode() — 快速模式/专家模式 Radio 切换
  • 新增 findByName() — 中英文兼容的元素查找
  • toggleButton() / configureModel() 适配中英文
  • 模型 ID 更新为 V4 命名

E2E 测试

  • e2e/deepseek.test.js — 浏览器交互测试(18 用例)
  • e2e/api.test.js — HTTP API 测试(9 用例)
  • playwright.config.js — 分离 chromium / api 两个 project
  • 配置通过 e2e/.env 管理

Test plan

  • npx playwright test --project=api — API 测试
  • npx playwright test --project=chromium — 浏览器测试
  • npx playwright test — 全量测试(27 用例)

lihejia added 7 commits April 24, 2026 18:58
DeepSeek 官网升级至 V4 版本,界面和模型均有变化:

适配器更新 (deepseek_text.js):
- 模型从 v3.2 升级至 v4 (flash/pro 双模式)
- 新增快速模式/专家模式切换 (Radio 按钮)
- 支持中英文界面自动兼容
- 模型列表扩展至 8 个 (flash/pro × thinking/search 组合)

E2E 测试:
- 新增 API 层测试 (认证、模型列表、流式/非流式生成)
- 新增浏览器交互测试 (模式切换、按钮、文本生成)
- 使用 .env 配置测试参数
@ai-sdk/openai v5+ 默认使用 Responses API (/v1/responses) 而非
Chat Completions API (/v1/chat/completions)。添加适配器将 Responses
API 请求转换为 Chat Completions 格式处理,支持流式和非流式响应。

主要变更:
- 新增 src/server/api/openai/responses.js - Responses API 适配器
- 修改 src/server/api/openai/routes.js - 添加 /v1/responses 路由

支持的事件类型:
- response.created / response.completed
- response.output_item.added / response.output_item.done
- response.content_part.added / response.content_part.done
- response.output_text.delta / response.reasoning_text.delta
每次 API 调用都执行 gotoWithCheck 导航到首页会创建全新会话。
改为检测当前页面是否已在 chat.deepseek.com:
- 已在页面:优先点击"新对话"按钮,避免全页面重载
- 不在页面:正常导航
- 按钮不可用:回退到全页面导航
新增 /v1/responses 端点的非流式和流式测试,验证:
- 响应格式符合 OpenAI Responses API 规范
- 流式 SSE 事件包含 response.created / delta / response.completed
验证浏览器会话复用:连续多次 API 请求均成功返回,
包括 Chat Completions 和 Responses API 两种格式。
- 适配器检测页面 URL 判断是否在对话中
- 在对话中:直接输入新消息,保持上下文连续
- 在首页:开始新对话
- 不在 DeepSeek:导航到首页
- 新增上下文连续性 E2E 测试(验证模型记住之前的消息)
- 适配器:textarea 点击失败时自动点击"新对话"按钮重试
- 测试:新增上下文连续性验证(模型记住之前的消息)
@smartdddlab
Copy link
Copy Markdown
Author

求大佬支持一下豆包视频,这个太好用了
我fork的 支持了一下 ,但是可能还有问题,你可以试试看。
等稳定了再提价PR

@vanmilleru
Copy link
Copy Markdown

@smartdddlab 大佬太强了!

doubao video能提示成功,获得的连接可以播放,但是视频无法正常下载后变成base64返回。管理页面上也无法显示。不知是否是网络问题?

还有个问题:网络不好时,能否自动重启对应服务,应该不止gemini有这个问题 #89

@smartdddlab
Copy link
Copy Markdown
Author

@smartdddlab 大佬太强了!

doubao video能提示成功,获得的连接可以播放,但是视频无法正常下载后变成base64返回。管理页面上也无法显示。不知是否是网络问题?

还有个问题:网络不好时,能否自动重启对应服务,应该不止gemini有这个问题 #89

我的测试测试到了,晚上修复下,问题不大,使用官方的保存方法保存起来。

@smartdddlab
Copy link
Copy Markdown
Author

@smartdddlab 大佬太强了!

doubao video能提示成功,获得的连接可以播放,但是视频无法正常下载后变成base64返回。管理页面上也无法显示。不知是否是网络问题?

还有个问题:网络不好时,能否自动重启对应服务,应该不止gemini有这个问题 #89

简单看了下, 目前的API设计对图像和视频类的与 openapi等实现的 标准不一致,后面可能需要重构一下,单独提供支持

  1. 新增 POST /v1/images/generations — 返回 { data: [{ url, b64_json }] } 格式
  2. 新增 POST /v1/videos — 异步模式,返回 job ID + status,支持轮询

@vanmilleru
Copy link
Copy Markdown

@smartdddlab 大佬,现在这版好像没法上传图片给 豆包video,不知大佬还有空改么?QAQ

重构的话,也可以考虑支持gemini式的predict/generateContent API,或者 https://developers.openai.com/api/reference/resources/images,但最好保留原来直接返回base64的做法,考虑合并 ea69683 图像用![image](),视频用 [video]()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants