【代码评审】AI:讯飞星火的接入调整

This commit is contained in:
YunaiV
2024-05-18 10:15:40 +08:00
parent 04021ce068
commit 645dfae003
18 changed files with 72 additions and 66 deletions

View File

@ -5,9 +5,9 @@ import org.springframework.ai.models.tongyi.QianWenChatClient;
import org.springframework.ai.models.tongyi.QianWenChatModal;
import org.springframework.ai.models.tongyi.QianWenOptions;
import org.springframework.ai.models.tongyi.api.QianWenApi;
import org.springframework.ai.models.xinghuo.XingHuoChatClient;
import org.springframework.ai.models.xinghuo.XingHuoOptions;
import org.springframework.ai.models.xinghuo.api.XingHuoApi;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient;
import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions;
import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi;

View File

@ -1,8 +1,8 @@
package cn.iocoder.yudao.framework.ai.config;
import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
import org.springframework.ai.models.xinghuo.XingHuoChatModel;
import org.springframework.ai.models.xinghuo.XingHuoOptions;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel;
import lombok.Data;
import lombok.experimental.Accessors;

View File

@ -1,7 +1,7 @@
package cn.iocoder.yudao.framework.ai.config;
import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
import org.springframework.ai.models.xinghuo.XingHuoChatModel;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel;
import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageModelEnum;
import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageStyleEnum;
@ -21,7 +21,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "yudao.ai")
public class YudaoAiProperties {
private String initSource;
private QianWenProperties qianwen;
private XingHuoProperties xinghuo;
private YiYanProperties yiyan;

View File

@ -16,16 +16,23 @@ public enum AiPlatformEnum {
OPENAI("OpenAI", "OpenAI"),
OLLAMA("Ollama", "Ollama"),
YIYAN("YiYan", "文心一言"),
YI_YAN("YiYan", "文心一言"), // 百度
XING_HUO("XingHuo", "星火"), // 讯飞
QIAN_WEN("qianwen", "千问"), // 阿里
QIAN_WEN("qianwen", "千问"),
XING_HUO("xinghuo", "星火"),
OPEN_AI_DALL("dall", "dall"),
MIDJOURNEY("midjourney", "midjourney"),
;
/**
* 平台
*/
private final String platform;
/**
* 平台名
*/
private final String name;
// public static List<AiPlatformEnum> CHAT_PLATFORM_LIST = Lists.newArrayList(

View File

@ -1,14 +1,14 @@
package org.springframework.ai.models.xinghuo;
package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.exceptions.ExceptionUtil;
import cn.iocoder.yudao.framework.ai.core.exception.ChatException;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
import org.springframework.ai.chat.*;
import org.springframework.ai.chat.prompt.ChatOptions;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.models.xinghuo.api.XingHuoApi;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.retry.RetryCallback;
@ -21,6 +21,7 @@ import java.time.Duration;
import java.util.List;
import java.util.stream.Collectors;
// TODO @fan参考 yiyan 的修改建议调整下 xinghuo 的实现可以等 yiyan 修改完建议然后我 review 再改这个哈
/**
* 讯飞星火 client
* <p>

View File

@ -1,4 +1,4 @@
package org.springframework.ai.models.xinghuo;
package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
import org.springframework.ai.chat.prompt.ChatOptions;
import lombok.Data;

View File

@ -1,8 +1,8 @@
package org.springframework.ai.models.xinghuo.api;
package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import org.springframework.ai.models.xinghuo.XingHuoChatModel;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
import lombok.Data;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
@ -21,6 +21,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
// TODO @fan讯飞使用 spring websocket 接入还是 okhttp确认了未使用的最好删除下反正 git 也能找回 history
/**
* 讯飞星火 属性api
* <p>

View File

@ -1,4 +1,4 @@
package org.springframework.ai.models.xinghuo.api;
package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
import lombok.Data;
import lombok.experimental.Accessors;

View File

@ -2,8 +2,8 @@ package cn.iocoder.yudao.framework.ai.chat;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
import org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient;
import org.springframework.web.reactive.socket.client.WebSocketClient;
import reactor.core.publisher.Flux;

View File

@ -5,10 +5,10 @@ import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.models.xinghuo.XingHuoChatClient;
import org.springframework.ai.models.xinghuo.XingHuoChatModel;
import org.springframework.ai.models.xinghuo.XingHuoOptions;
import org.springframework.ai.models.xinghuo.api.XingHuoApi;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
import org.junit.Before;
import org.junit.Test;
import reactor.core.publisher.Flux;

View File

@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.ai.chat;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import org.springframework.ai.models.xinghuo.XingHuoChatClient;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;
import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
import okhttp3.*;
import org.jetbrains.annotations.NotNull;