|
@@ -52,10 +52,16 @@ public class GeminiGenerateContentAction implements Action {
|
|
|
public String execute(ActionParam param) {
|
|
|
Integer type = param.getType();
|
|
|
String apiKey = "";
|
|
|
+ int size;
|
|
|
+ boolean useLocalApiKey;
|
|
|
if (Objects.nonNull(apiKeyList) && !apiKeyList.isEmpty()) {
|
|
|
- int size = apiKeyList.size();
|
|
|
+ useLocalApiKey = true;
|
|
|
+ size = apiKeyList.size();
|
|
|
int index = getIndex(size);
|
|
|
apiKey = apiKeyList.get(index);
|
|
|
+ } else {
|
|
|
+ useLocalApiKey = false;
|
|
|
+ size = 0;
|
|
|
}
|
|
|
GeminiParam geminiParam = new GeminiParam();
|
|
|
geminiParam.setType(type);
|
|
@@ -84,22 +90,28 @@ public class GeminiGenerateContentAction implements Action {
|
|
|
} else if (AigcServerExceptionEnum.PARAM_ERROR.getCode() == commonResponse.getCode()) {
|
|
|
throw new StopRetryException("geminiGenerateContentAction request params error geminiParam = " + JSON.toJSONString(geminiParam));
|
|
|
} else {
|
|
|
+ if (useLocalApiKey) {
|
|
|
+ int index1 = getIndex(size);
|
|
|
+ String apiKey1 = apiKeyList.get(index1);
|
|
|
+ geminiParam.setApiKey(apiKey1);
|
|
|
+ }
|
|
|
+ throw new RuntimeException("geminiGenerateContentAction request failure geminiParam = " + JSON.toJSONString(geminiParam));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (useLocalApiKey) {
|
|
|
int index1 = getIndex(size);
|
|
|
String apiKey1 = apiKeyList.get(index1);
|
|
|
geminiParam.setApiKey(apiKey1);
|
|
|
- throw new RuntimeException("geminiGenerateContentAction request failure geminiParam = " + JSON.toJSONString(geminiParam));
|
|
|
}
|
|
|
- } else {
|
|
|
+ throw new RuntimeException("geminiGenerateContentAction optionalS is null geminiParam = " + JSON.toJSONString(geminiParam));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ if (useLocalApiKey) {
|
|
|
int index1 = getIndex(size);
|
|
|
String apiKey1 = apiKeyList.get(index1);
|
|
|
geminiParam.setApiKey(apiKey1);
|
|
|
- throw new RuntimeException("geminiGenerateContentAction optionalS is null geminiParam = " + JSON.toJSONString(geminiParam));
|
|
|
+ log.error("geminiGenerateContentAction error param = {}", JSON.toJSONString(geminiParam), e);
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- int index1 = getIndex(size);
|
|
|
- String apiKey1 = apiKeyList.get(index1);
|
|
|
- geminiParam.setApiKey(apiKey1);
|
|
|
- log.error("geminiGenerateContentAction error param = {}", JSON.toJSONString(geminiParam), e);
|
|
|
throw new RuntimeException("geminiGenerateContentAction request error", e);
|
|
|
}
|
|
|
}, RETRY_TIMES, "geminiGenerateContentAction", RetryUtil::retryInterval);
|