授权
This commit is contained in:
parent
b72d166adb
commit
d78c278a52
@ -6,6 +6,7 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.util.retry.Retry;
|
||||
|
||||
import java.time.Duration;
|
||||
@ -26,10 +27,26 @@ public class CozeWorkflowClient {
|
||||
return webClient.post()
|
||||
.uri(properties.getCoze().getChatPath())
|
||||
.header(HttpHeaders.AUTHORIZATION, "Bearer " + properties.getCoze().getApiKey())
|
||||
.accept(MediaType.TEXT_EVENT_STREAM, MediaType.APPLICATION_JSON)
|
||||
.bodyValue(request)
|
||||
.retrieve()
|
||||
.bodyToMono(String.class)
|
||||
.exchangeToMono(response -> response.bodyToMono(String.class)
|
||||
.defaultIfEmpty("")
|
||||
.flatMap(body -> {
|
||||
if (response.statusCode().isError()) {
|
||||
return Mono.error(new IllegalStateException(
|
||||
"Coze workflow HTTP " + response.statusCode().value() + " body=" + preview(body)
|
||||
));
|
||||
}
|
||||
return Mono.just(body);
|
||||
}))
|
||||
.retryWhen(Retry.backoff(properties.getCoze().getMaxRetries(), Duration.ofMillis(300)))
|
||||
.block(Duration.ofMillis(properties.getCoze().getReadTimeoutMs()));
|
||||
}
|
||||
|
||||
private String preview(String text) {
|
||||
if (text == null || text.isBlank()) {
|
||||
return "";
|
||||
}
|
||||
return text.length() <= 300 ? text : text.substring(0, 300) + "...";
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ foundation:
|
||||
coze:
|
||||
base-url: https://api.coze.cn
|
||||
chat-path: /v1/workflows/chat
|
||||
api-key: ${COZE_API_KEY:cztei_hTd3jrof7F2fpRM4rVvNiK1ipxaQl4rlvQNHKBDK1RlTgnyFO9UqwShkr8IXcuVrk}
|
||||
api-key: ${COZE_API_KEY:cztei_l0qEUEjq0o8KUTatjnvaZkKdaOwvhBMzu3cmkI0qLmjQwz4bAhGrHrs4l46I61xbY}
|
||||
default-workflow: wecom-default
|
||||
workflows:
|
||||
wecom-default:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user