若干更新迭代

This commit is contained in:
andy committed 2026-10-02 19:56:32 +08:00
1 parent deb9cc5bcf
commit 4ac786aafb
64 files changed
+3251 -291

No files matched your search

+12 -6
View File
@@ -146,11 +146,11 @@ func (v *Volcengine) call(ctx context.Context, action, version string, payload a
raw, err := io.ReadAll(io.LimitReader(resp.Body, limit+1))
if err != nil {
logVolcengineFailure(volcengineDiagnostic{Operation: operation, Status: resp.StatusCode, ErrorClass: "response_read", ElapsedMS: elapsedMilliseconds(startedAt)})
return Result{}, &ProviderError{Operation: "volcengine request", Status: resp.StatusCode}
return Result{}, &ProviderError{Operation: "volcengine request", Cause: err}
}
if int64(len(raw)) > limit {
logVolcengineFailure(volcengineDiagnostic{Operation: operation, Status: resp.StatusCode, ErrorClass: "response_too_large", ElapsedMS: elapsedMilliseconds(startedAt)})
return Result{}, &ProviderError{Operation: "volcengine request", Status: resp.StatusCode}
return Result{}, &ProviderError{Operation: "volcengine request"}
}
validJSON := json.Valid(raw)
r := map[string]any{}
@@ -169,7 +169,7 @@ func (v *Volcengine) call(ctx context.Context, action, version string, payload a
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
diagnostic.ErrorClass = "service"
logVolcengineFailure(diagnostic)
return Result{}, &ProviderError{Operation: "volcengine request", Status: resp.StatusCode, Code: diagnostic.Code}
return Result{}, &ProviderError{Operation: "volcengine request", Status: resp.StatusCode, Code: diagnostic.Code, RequestID: diagnostic.RequestID, Detail: safeProviderResponseDetail(raw, body, v.config.AccessKeyID, v.config.SecretAccessKey)}
}
if !validJSON {
diagnostic.ErrorClass = "invalid_json"
@@ -179,14 +179,19 @@ func (v *Volcengine) call(ctx context.Context, action, version string, payload a
if response.code != nil && !volcengineRequestSucceeded(response.code) {
diagnostic.ErrorClass = "service"
logVolcengineFailure(diagnostic)
return Result{}, &ProviderError{Operation: "volcengine request", Code: diagnostic.Code}
return Result{}, &ProviderError{Operation: "volcengine request", Status: resp.StatusCode, Code: diagnostic.Code, RequestID: diagnostic.RequestID, Detail: safeProviderResponseDetail(raw, body, v.config.AccessKeyID, v.config.SecretAccessKey)}
}
d := object(first(response.business["data"], response.business["Data"]))
out := []string{}
for _, value := range []any{d["image_urls"], d["image_url"], d["url"], d["result_url"], d["output"], d["outputs"]} {
collectURLs(value, &out)
}
return Result{TaskID: stringValue(response.business["task_id"], response.business["TaskId"], d["task_id"], d["TaskId"]), Status: status(first(d["status"], d["Status"], response.business["status"], response.business["Status"])), OutputURLs: out, Raw: raw}, nil
result := Result{TaskID: stringValue(response.business["task_id"], response.business["TaskId"], d["task_id"], d["TaskId"]), Status: status(first(d["status"], d["Status"], response.business["status"], response.business["Status"])), OutputURLs: out, Raw: raw}
result = annotateTerminalFailure(result, raw, resp.Header, body, v.config.AccessKeyID, v.config.SecretAccessKey)
if result.Status == StatusFailed && result.ErrorDetail == "" {
result.ErrorDetail = SanitizeFailureDetail(stringValue(d["message"], response.business["message"]), body, v.config.AccessKeyID, v.config.SecretAccessKey)
}
return result, nil
}
type volcengineResponse struct {
@@ -215,11 +220,12 @@ func inspectVolcengineResponse(root map[string]any, headers http.Header) volceng
business["code_n"], business["codeN"], business["CodeN"],
root["code_n"], root["codeN"], root["CodeN"],
),
requestID: first(
requestID: firstSafeHTTPProviderDiagnosticToken(128,
business["request_id"], business["requestId"], business["RequestId"], business["RequestID"],
root["request_id"], root["requestId"], root["RequestId"], root["RequestID"],
metadata["RequestId"], metadata["RequestID"], metadata["request_id"], metadata["requestId"],
headers.Get("X-Tt-Logid"), headers.Get("X-Request-Id"),
requestIDFromMessage(stringValue(gatewayError["Message"], gatewayError["message"], business["message"], root["message"])),
),
}
}