wangbo
|
ebdb96e7d7
|
fix(provider): 修正媒体请求转换与上游错误透传
按上游协议能力延迟处理媒体资源:OpenAI 兼容平台默认使用 multipart,显式配置后才发送 JSON URL;Gemini 官方协议使用 Files API,兼容协议使用内嵌 Base64,并同步覆盖相关媒体客户端。\n\n安全的上游 400/422 原始错误会作为下游 message 返回,同时保留结构化诊断信息和历史任务兼容。\n\n验证:API 全量无缓存测试、go vet、pnpm lint、pnpm test、pnpm build、pnpm openapi、git diff --check。
|
2026-08-05 00:40:42 +08:00 |
|
wangbo
|
44d5cf2b9d
|
feat(gemini): 接入 Veo 官方异步生成协议
将 Gemini Veo 视频请求改为 predictLongRunning 提交与 Operation 轮询,支持任务恢复、首尾帧和参考图的官方 Base64 字段映射。
完成后由网关携带 API Key 从受信任的 Gemini 文件域下载视频,再进入现有对象存储转存链路,避免暴露鉴权地址。
验证:env -u AI_GATEWAY_TEST_DATABASE_URL go test ./... -count=1;go vet ./...;真实 Veo 3.1 任务生成并下载 1633544 字节视频。
|
2026-08-04 16:27:24 +08:00 |
|
wangbo
|
046c16fc69
|
fix(audio): 兼容百炼 OpenAI 音频输入
为阿里云百炼 OpenAI-compatible Chat 统一保留标准 input_audio,并将旧版 audio_url 转换为 input_audio,同时根据 MIME 或扩展名补齐音频格式。
补充请求资产水合测试,确认 input_audio.data 会转换为裸 Base64 且保留 format。
验证:在 apps/api 执行 env -u AI_GATEWAY_TEST_DATABASE_URL go test ./... -count=1 全部通过。
|
2026-07-27 23:50:17 +08:00 |
|
wangbo
|
8df87875de
|
fix(images): 优先转换编辑图片为 multipart 二进制
OpenAI 编辑即使声明支持 URL,也必须在 multipart 提交前转存为二进制文件。
|
2026-07-24 09:04:23 +08:00 |
|
wangbo
|
db640c1211
|
fix(images): 兼容 OpenAI 多图编辑 multipart
- 将 OpenAI images/edits 请求构造成 multipart/form-data
- 在运行时安全转存 URL 图片为 data URL 后提交二进制文件
- 覆盖多图字段、真实上游模型名和内部元数据过滤测试
|
2026-07-24 08:59:42 +08:00 |
|
wangbo
|
10ec25d87b
|
Handle Gemini inline data in asset and size processing
|
2026-06-15 00:14:40 +08:00 |
|
wangbo
|
ca5e71c8e8
|
Prefer public URLs and fall back to base64 for image inputs
|
2026-06-08 08:38:53 +08:00 |
|
wangbo
|
78ab867a9f
|
区分请求资源 base64 格式并按平台恢复
|
2026-06-05 23:07:25 +08:00 |
|
wangbo
|
d41d9482c7
|
Add runtime restore and temp asset cleanup
|
2026-06-05 20:28:26 +08:00 |
|