【代码优化】AI:完善 YiYanChatTests 单测,方便大家快速体验

This commit is contained in:
YunaiV
2024-07-06 16:45:49 +08:00
parent 4f11d00cfd
commit 4daff93313
3 changed files with 67 additions and 83 deletions

View File

@ -58,7 +58,7 @@ public class AiModelFactoryImpl implements AiModelFactory {
case TONG_YI:
return buildTongYiChatModel(apiKey);
case YI_YAN:
return buildYiYanChatClient(apiKey);
return buildYiYanChatModel(apiKey);
case XING_HUO:
return buildXingHuoChatClient(apiKey);
case DEEP_SEEK:
@ -156,6 +156,18 @@ public class AiModelFactoryImpl implements AiModelFactory {
return new TongYiAutoConfiguration().tongYiChatClient(generation, chatOptions, connectionProperties);
}
/**
* 可参考 {@link QianFanAutoConfiguration#qianFanChatModel(QianFanConnectionProperties, QianFanChatProperties, RestClient.Builder, RetryTemplate, ResponseErrorHandler)}
*/
private static QianFanChatModel buildYiYanChatModel(String key) {
List<String> keys = StrUtil.split(key, '|');
Assert.equals(keys.size(), 2, "YiYanChatClient 的密钥需要 (appKey|secretKey) 格式");
String appKey = keys.get(0);
String secretKey = keys.get(1);
QianFanApi qianFanApi = new QianFanApi(appKey, secretKey);
return new QianFanChatModel(qianFanApi);
}
/**
* 可参考 {@link OpenAiAutoConfiguration}
*/
@ -182,19 +194,6 @@ public class AiModelFactoryImpl implements AiModelFactory {
return new OllamaChatModel(ollamaApi);
}
/**
* 可参考 {@link QianFanAutoConfiguration#qianFanChatModel(QianFanConnectionProperties, QianFanChatProperties, RestClient.Builder, RetryTemplate, ResponseErrorHandler)}
*/
private static QianFanChatModel buildYiYanChatClient(String key) {
// TODO @xin貌似目前设置request 势必会报错;看看能不能有办法,参考 buildQianWenChatClient调用 QianFanAutoConfiguration#qianFanChatModel初始化当然 key 要用自己的哈
List<String> keys = StrUtil.split(key, '|');
Assert.equals(keys.size(), 2, "YiYanChatClient 的密钥需要 (appKey|secretKey) 格式");
String appKey = keys.get(0);
String secretKey = keys.get(1);
QianFanApi qianFanApi = new QianFanApi(appKey, secretKey);
return new QianFanChatModel(qianFanApi);
}
/**
* 可参考 {@link YudaoAiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
*/

View File

@ -27,9 +27,7 @@ public class AiUtils {
case OLLAMA:
return OllamaOptions.create().withModel(model).withTemperature(temperatureF).withNumPredict(maxTokens);
case YI_YAN:
// TODO @xin貌似 model 只要一设置,就报错;可以排查下
// return QianFanChatOptions.builder().withModel(model).withTemperature(temperatureF).withMaxTokens(maxTokens).build();
return QianFanChatOptions.builder().withTemperature(temperatureF).withMaxTokens(maxTokens).build();
return QianFanChatOptions.builder().withModel(model).withTemperature(temperatureF).withMaxTokens(maxTokens).build();
case XING_HUO:
return XingHuoChatOptions.builder().model(model).temperature(temperatureF).maxTokens(maxTokens).build();
case TONG_YI: