修复 API 平台调用视频接口的兼容路由问题 - #66
Open
FUtejia8 wants to merge 1 commit into
Open
Conversation
Author
|
@hero8152 这个兼容问题佬你看下可以更新代码 解决下吗 目前迭代版本都没有注意到这个接口问题。 我看有许多人也都有遇到 提交的pr有修复的代码你可以看下是真实存在的这个问题 希望你可以解决下问题.不然每次更新了使用存在同一个问题使用不便 目前遇到的平台有t8平台的视频接口 还有new平台这类的接口都是复数 但是这个修复是2号的 3号我看又增加了平台视频接口 目前分支或许存在冲突了 问题是存在的 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题原因
不同 API 平台对视频生成接口的兼容路径不完全一致。
有的平台使用复数形式的视频创建地址:
/v1/videos/generations有的平台使用单数形式的视频创建地址:
/v1/video/generations当前代码会先尝试复数形式地址。如果该地址不可用,理论上应该继续尝试后续兼容地址。
但部分平台在地址不可用时,不一定返回 HTTP 404,而是可能返回 HTTP 400 或 HTTP 200,并在响应内容里包含
Invalid URL这类地址无效信息。由于原逻辑只在 HTTP 404 时才认为地址不可用,遇到这种响应时会误判为当前地址有效,停止尝试后续候选地址,导致没有继续请求实际可用的单数形式地址。
另外,视频生成通常是异步任务。创建请求成功后,还需要继续查询任务结果。不同平台的视频任务查询地址也可能存在差异,如果只使用单一查询地址,可能出现创建成功但无法拿到最终视频结果的问题。
修复方式
本次修改调整视频接口兼容逻辑:
invalid url对于额度不足、参数错误、上游服务异常等非地址兼容问题,不会继续重复提交,避免产生额外请求。
原有流程保持不变:任务返回视频地址后,仍会先下载到本地,再把本地视频地址返回给画布使用。
修改范围
仅修改
main.py。