mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-30 07:37:23 +00:00
fix: vertex ai video proxy and task polling improvements
This commit is contained in:
@@ -149,7 +149,7 @@ func getVertexVideoURL(channel *model.Channel, task *model.Task) (string, error)
|
||||
if channel == nil || task == nil {
|
||||
return "", fmt.Errorf("invalid channel or task")
|
||||
}
|
||||
if url := strings.TrimSpace(task.GetResultURL()); url != "" {
|
||||
if url := strings.TrimSpace(task.GetResultURL()); url != "" && !isTaskProxyContentURL(url, task.TaskID) {
|
||||
return url, nil
|
||||
}
|
||||
if url := extractVertexVideoURLFromTaskData(task); url != "" {
|
||||
@@ -198,6 +198,13 @@ func getVertexVideoURL(channel *model.Channel, task *model.Task) (string, error)
|
||||
return "", fmt.Errorf("vertex video url not found")
|
||||
}
|
||||
|
||||
func isTaskProxyContentURL(url string, taskID string) bool {
|
||||
if strings.TrimSpace(url) == "" || strings.TrimSpace(taskID) == "" {
|
||||
return false
|
||||
}
|
||||
return strings.Contains(url, "/v1/videos/"+taskID+"/content")
|
||||
}
|
||||
|
||||
func getVertexTaskKey(channel *model.Channel, task *model.Task) string {
|
||||
if task != nil {
|
||||
if key := strings.TrimSpace(task.PrivateData.Key); key != "" {
|
||||
|
||||
@@ -421,6 +421,7 @@ func updateVideoSingleTask(ctx context.Context, adaptor TaskPollingAdaptor, ch *
|
||||
}
|
||||
if strings.HasPrefix(taskResult.Url, "data:") {
|
||||
// data: URI (e.g. Vertex base64 encoded video) — keep in Data, not in ResultURL
|
||||
task.PrivateData.ResultURL = taskcommon.BuildProxyURL(task.TaskID)
|
||||
} else if taskResult.Url != "" {
|
||||
// Direct upstream URL (e.g. Kling, Ali, Doubao, etc.)
|
||||
task.PrivateData.ResultURL = taskResult.Url
|
||||
|
||||
Reference in New Issue
Block a user