From c91d229e7fecda6eb6184c13b56af5e172d496a3 Mon Sep 17 00:00:00 2001 From: YuLuo Date: Sat, 22 Jun 2024 17:55:40 +0800 Subject: [PATCH] feat: spring ai 1.0.0 m1 version adaptation (#3768) Signed-off-by: yuluo-yx --- .../ai/example/tongyi/TongYiApplication.java | 2 +- .../tongyi/controller/TongYiController.java | 4 +- .../ai/example/tongyi/models/ActorsFilms.java | 2 +- .../ai/example/tongyi/models/Completion.java | 2 +- .../service/AbstractTongYiServiceImpl.java | 2 +- .../example/tongyi/service/TongYiService.java | 2 +- .../speech/TongYiAudioSimpleServiceImpl.java | 11 +++-- .../TongYiAudioTranscriptionServiceImpl.java | 19 ++++---- .../helloworld/TongYiSimpleServiceImpl.java | 14 +++--- .../impl/images/TongYiImagesServiceImpl.java | 10 +---- .../output/TongYiOutputParseServiceImpl.java | 7 +-- .../TongYiPromptTemplateServiceImpl.java | 9 +--- .../impl/roles/TongYiRolesServiceImpl.java | 10 +---- .../impl/stuff/TongYiStuffServiceImpl.java | 9 +--- .../service/impl/textembedding/README.md | 2 +- .../ai/tongyi/TongYiAutoConfiguration.java | 45 ++++++++++--------- .../ai/tongyi/TongYiConnectionProperties.java | 14 +++--- .../ai/tongyi/audio/AudioSpeechModels.java | 2 +- .../audio/AudioTranscriptionModels.java | 2 +- ...lient.java => TongYiAudioSpeechModel.java} | 12 ++--- .../speech/TongYiAudioSpeechOptions.java | 2 +- .../speech/TongYiAudioSpeechProperties.java | 11 ++--- .../ai/tongyi/audio/speech/api/Speech.java | 2 +- .../audio/speech/api/SpeechMessage.java | 5 ++- .../audio/speech/api/SpeechMetadata.java | 2 +- .../{SpeechClient.java => SpeechModel.java} | 2 +- .../tongyi/audio/speech/api/SpeechPrompt.java | 2 +- .../audio/speech/api/SpeechResponse.java | 2 +- ...reamClient.java => SpeechStreamModel.java} | 5 +-- ...ava => TongYiAudioTranscriptionModel.java} | 12 ++--- .../TongYiAudioTranscriptionOptions.java | 2 +- .../TongYiAudioTranscriptionProperties.java | 6 ++- .../api/AudioTranscriptionPrompt.java | 2 +- .../api/AudioTranscriptionResponse.java | 2 +- .../api/AudioTranscriptionResult.java | 2 +- ...YiChatClient.java => TongYiChatModel.java} | 14 +++--- .../ai/tongyi/chat/TongYiChatOptions.java | 2 +- .../ai/tongyi/chat/TongYiChatProperties.java | 6 ++- .../constants/TongYiConstants.java | 7 ++- .../exception/TongYiException.java | 4 +- .../exception/TongYiImagesException.java | 4 +- .../embedding/TongYiEmbeddingOptions.java | 2 +- ...ent.java => TongYiTextEmbeddingModel.java} | 18 ++++---- .../TongYiTextEmbeddingProperties.java | 6 ++- ...agesClient.java => TongYiImagesModel.java} | 12 ++--- .../ai/tongyi/image/TongYiImagesOptions.java | 4 +- .../tongyi/image/TongYiImagesProperties.java | 10 ++--- .../TongYiAiChatResponseMetadata.java | 2 +- .../ai/tongyi/metadata/TongYiAiUsage.java | 2 +- .../TongYiImagesResponseMetadata.java | 2 +- .../TongYiTextEmbeddingResponseMetadata.java | 1 + .../TongYiAudioSpeechResponseMetadata.java | 2 +- .../TongYiAudioTranscriptionMetadata.java | 2 +- ...gYiAudioTranscriptionResponseMetadata.java | 2 +- .../speech/TongYiAudioSpeechClientTest.java | 5 ++- .../speech/TongYiAudioSpeechOptionsTests.java | 4 +- .../TongYiAudioTranscriptionOptionsTests.java | 3 +- .../tongyi/chat/TongYiChatOptionsTests.java | 6 +-- .../images/TongYiImagesOptionsTests.java | 5 ++- 59 files changed, 173 insertions(+), 191 deletions(-) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/{TongYiAudioSpeechClient.java => TongYiAudioSpeechModel.java} (95%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/{SpeechClient.java => SpeechModel.java} (95%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/{SpeechStreamClient.java => SpeechStreamModel.java} (93%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/{TongYiAudioTranscriptionClient.java => TongYiAudioTranscriptionModel.java} (94%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/{TongYiChatClient.java => TongYiChatModel.java} (97%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/{ => common}/constants/TongYiConstants.java (84%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/{ => common}/exception/TongYiException.java (92%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/{ => common}/exception/TongYiImagesException.java (92%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/{TongYiTextEmbeddingClient.java => TongYiTextEmbeddingModel.java} (91%) rename spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/{TongYiImagesClient.java => TongYiImagesModel.java} (95%) diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/TongYiApplication.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/TongYiApplication.java index ed2a7602b..44f134c9e 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/TongYiApplication.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/TongYiApplication.java @@ -22,7 +22,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ @SpringBootApplication diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/controller/TongYiController.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/controller/TongYiController.java index 0c572ccd2..6430549fc 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/controller/TongYiController.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/controller/TongYiController.java @@ -40,7 +40,7 @@ import org.springframework.web.bind.annotation.RestController; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ @RestController @@ -133,7 +133,7 @@ public class TongYiController { @Qualifier("tongYiAudioSimpleServiceImpl") private TongYiService tongYiAudioService; - @GetMapping("/audio") + @GetMapping("/audio/speech") public String genAudio(@RequestParam(value = "prompt", defaultValue = "你好,Spring Cloud Alibaba AI 框架!") String prompt) { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/ActorsFilms.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/ActorsFilms.java index bc14efdb6..15ac124ed 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/ActorsFilms.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/ActorsFilms.java @@ -21,7 +21,7 @@ import java.util.List; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ public class ActorsFilms { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/Completion.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/Completion.java index f19f0ddf3..43eedd419 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/Completion.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/models/Completion.java @@ -19,7 +19,7 @@ package com.alibaba.cloud.ai.example.tongyi.models; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ public class Completion { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/AbstractTongYiServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/AbstractTongYiServiceImpl.java index 4cc120a60..1a685d7e5 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/AbstractTongYiServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/AbstractTongYiServiceImpl.java @@ -28,7 +28,7 @@ import org.springframework.ai.image.ImageResponse; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ public abstract class AbstractTongYiServiceImpl implements TongYiService { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/TongYiService.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/TongYiService.java index 899e0f71b..3f570f5cf 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/TongYiService.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/TongYiService.java @@ -29,7 +29,7 @@ import org.springframework.ai.image.ImageResponse; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ public interface TongYiService { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/speech/TongYiAudioSimpleServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/speech/TongYiAudioSimpleServiceImpl.java index 5ff5d35db..cdde2cc20 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/speech/TongYiAudioSimpleServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/speech/TongYiAudioSimpleServiceImpl.java @@ -24,9 +24,8 @@ import java.time.format.DateTimeFormatter; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechClient; +import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechModel; import com.alibaba.dashscope.audio.tts.SpeechSynthesisAudioFormat; -import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,19 +34,19 @@ import org.springframework.stereotype.Service; /** * @author yuluo - * @author 1481556636@qq.com + * @author yuluo + * @since 2023.0.1.0 */ -@Slf4j @Service public class TongYiAudioSimpleServiceImpl extends AbstractTongYiServiceImpl { private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final SpeechClient speechClient; + private final SpeechModel speechClient; @Autowired - public TongYiAudioSimpleServiceImpl(SpeechClient client) { + public TongYiAudioSimpleServiceImpl(SpeechModel client) { this.speechClient = client; } diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/transcription/TongYiAudioTranscriptionServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/transcription/TongYiAudioTranscriptionServiceImpl.java index 7b65c0b5a..d2275e927 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/transcription/TongYiAudioTranscriptionServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/audio/transcription/TongYiAudioTranscriptionServiceImpl.java @@ -28,13 +28,12 @@ import java.util.List; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import com.alibaba.cloud.ai.tongyi.audio.transcription.TongYiAudioTranscriptionClient; +import com.alibaba.cloud.ai.tongyi.audio.transcription.TongYiAudioTranscriptionModel; import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionPrompt; import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionResult; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,17 +44,21 @@ import org.springframework.stereotype.Service; /** * @author xYLiu - * @since 2024/5/15 14:55 + * @author yuluo + * @since 2023.0.1.0 */ -@Slf4j + @Service public class TongYiAudioTranscriptionServiceImpl extends AbstractTongYiServiceImpl { + private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final TongYiAudioTranscriptionClient audioTranscriptionClient; + + private final TongYiAudioTranscriptionModel audioTranscriptionModel; @Autowired - public TongYiAudioTranscriptionServiceImpl(final TongYiAudioTranscriptionClient audioTranscriptionClient) { - this.audioTranscriptionClient = audioTranscriptionClient; + public TongYiAudioTranscriptionServiceImpl(final TongYiAudioTranscriptionModel transcriptionModel) { + + this.audioTranscriptionModel = transcriptionModel; } @Override @@ -72,7 +75,7 @@ public class TongYiAudioTranscriptionServiceImpl extends AbstractTongYiServiceIm } AudioTranscriptionPrompt audioTranscriptionPrompt = new AudioTranscriptionPrompt(resource); - return save(audioTranscriptionClient.call(audioTranscriptionPrompt).getResults()); + return save(audioTranscriptionModel.call(audioTranscriptionPrompt).getResults()); } private String save(List resultList) { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/helloworld/TongYiSimpleServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/helloworld/TongYiSimpleServiceImpl.java index 55b8f1dfb..214281b05 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/helloworld/TongYiSimpleServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/helloworld/TongYiSimpleServiceImpl.java @@ -19,8 +19,6 @@ package com.alibaba.cloud.ai.example.tongyi.service.impl.helloworld; import java.util.Map; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; @@ -33,19 +31,19 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** - * Simple example. - * There is optional message parameter whose default value is "Tell me a joke". pl The response to the request is from the TongYi models Service. + * The Chat simple example service implementation. + * There is optional message parameter whose default value is "Tell me a joke". + * pl The response to the request is from the TongYi models Service. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); + private static final Logger logger = LoggerFactory.getLogger(TongYiSimpleServiceImpl.class); private final ChatModel chatModel; @@ -79,7 +77,7 @@ public class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl { .map(lastContent -> Map.of(message, fullContent.toString())) .block(); - log.info(fullContent.toString()); + logger.info(fullContent.toString()); return Map.of(message, fullContent.toString()); } diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/images/TongYiImagesServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/images/TongYiImagesServiceImpl.java index fb0b34a20..56475ac99 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/images/TongYiImagesServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/images/TongYiImagesServiceImpl.java @@ -17,10 +17,6 @@ package com.alibaba.cloud.ai.example.tongyi.service.impl.images; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImagePrompt; @@ -33,15 +29,12 @@ import org.springframework.stereotype.Service; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiImagesServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final ImageModel imageModel; @Autowired @@ -54,7 +47,6 @@ public class TongYiImagesServiceImpl extends AbstractTongYiServiceImpl { public ImageResponse genImg(String imgPrompt) { var prompt = new ImagePrompt(imgPrompt); - return imageModel.call(prompt); } diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/output/TongYiOutputParseServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/output/TongYiOutputParseServiceImpl.java index 68e0f55a2..6788ba78f 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/output/TongYiOutputParseServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/output/TongYiOutputParseServiceImpl.java @@ -20,8 +20,6 @@ import java.util.Map; import com.alibaba.cloud.ai.example.tongyi.models.ActorsFilms; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,14 +36,13 @@ import org.springframework.stereotype.Service; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiOutputParseServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); + private static final Logger logger = LoggerFactory.getLogger(TongYiOutputParseServiceImpl.class); private final ChatModel chatModel; diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/prompttemplate/TongYiPromptTemplateServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/prompttemplate/TongYiPromptTemplateServiceImpl.java index 4f6413115..8623e2118 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/prompttemplate/TongYiPromptTemplateServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/prompttemplate/TongYiPromptTemplateServiceImpl.java @@ -19,10 +19,6 @@ package com.alibaba.cloud.ai.example.tongyi.service.impl.prompttemplate; import java.util.Map; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.model.ChatModel; @@ -38,15 +34,12 @@ import org.springframework.stereotype.Service; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiPromptTemplateServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final ChatModel chatModel; @Value("classpath:/prompts/joke-prompt.st") diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/roles/TongYiRolesServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/roles/TongYiRolesServiceImpl.java index 6a4253e9a..a83217f2d 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/roles/TongYiRolesServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/roles/TongYiRolesServiceImpl.java @@ -20,10 +20,6 @@ import java.util.List; import java.util.Map; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; @@ -37,15 +33,12 @@ import org.springframework.stereotype.Service; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiRolesServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final ChatModel chatModel; public TongYiRolesServiceImpl(ChatModel chatModel) { @@ -65,7 +58,6 @@ public class TongYiRolesServiceImpl extends AbstractTongYiServiceImpl { In TongYi models, System role must appear at the top of the message and can only appear once. https://help.aliyun.com/zh/dashscope/developer-reference/api-details?spm=a2c4g.11186623.0.0.4dbcc11akAaRbs#b9ad0a10cfhpe - */ SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/stuff/TongYiStuffServiceImpl.java b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/stuff/TongYiStuffServiceImpl.java index 2fa6f69ad..f62d02cf7 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/stuff/TongYiStuffServiceImpl.java +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/stuff/TongYiStuffServiceImpl.java @@ -21,10 +21,6 @@ import java.util.Map; import com.alibaba.cloud.ai.example.tongyi.models.Completion; import com.alibaba.cloud.ai.example.tongyi.service.AbstractTongYiServiceImpl; -import com.alibaba.cloud.ai.example.tongyi.service.TongYiService; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.ai.chat.model.ChatModel; import org.springframework.ai.chat.model.Generation; @@ -39,15 +35,12 @@ import org.springframework.stereotype.Service; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.0.0 */ -@Slf4j @Service public class TongYiStuffServiceImpl extends AbstractTongYiServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(TongYiService.class); - private final ChatModel chatModel; public TongYiStuffServiceImpl(ChatModel chatModel) { diff --git a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/textembedding/README.md b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/textembedding/README.md index 0fc5e74da..8d5da8ee3 100644 --- a/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/textembedding/README.md +++ b/spring-cloud-alibaba-examples/ai-example/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ai/example/tongyi/service/impl/textembedding/README.md @@ -1,6 +1,6 @@ # Spring Cloud Alibaba AI Text Embedding -`TongYiController` 接受一个 HTTP GET 请求 `http://localhost:8080/ai/audio`。 +`TongYiController` 接受一个 HTTP GET 请求 `http://localhost:8080/ai/textEmbedding`。 `controller` 将会调用 `TongYiService` 中的 `genAudio` 方法,完成服务请求得到响应。 有一个可选的 `text` 参数,其默认值为“Spring Cloud Alibaba AI 框架!”。 请求响应来自 Alibaba TongYi Text Embedding 服务。 diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiAutoConfiguration.java index d7088ed3c..00caf3d8b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiAutoConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiAutoConfiguration.java @@ -18,17 +18,17 @@ package com.alibaba.cloud.ai.tongyi; import java.util.Objects; -import com.alibaba.cloud.ai.tongyi.audio.speech.TongYiAudioSpeechClient; +import com.alibaba.cloud.ai.tongyi.audio.speech.TongYiAudioSpeechModel; import com.alibaba.cloud.ai.tongyi.audio.speech.TongYiAudioSpeechProperties; -import com.alibaba.cloud.ai.tongyi.audio.transcription.TongYiAudioTranscriptionClient; +import com.alibaba.cloud.ai.tongyi.audio.transcription.TongYiAudioTranscriptionModel; import com.alibaba.cloud.ai.tongyi.audio.transcription.TongYiAudioTranscriptionProperties; -import com.alibaba.cloud.ai.tongyi.chat.TongYiChatClient; +import com.alibaba.cloud.ai.tongyi.chat.TongYiChatModel; import com.alibaba.cloud.ai.tongyi.chat.TongYiChatProperties; -import com.alibaba.cloud.ai.tongyi.constants.TongYiConstants; -import com.alibaba.cloud.ai.tongyi.embedding.TongYiTextEmbeddingClient; +import com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException; +import com.alibaba.cloud.ai.tongyi.embedding.TongYiTextEmbeddingModel; import com.alibaba.cloud.ai.tongyi.embedding.TongYiTextEmbeddingProperties; -import com.alibaba.cloud.ai.tongyi.exception.TongYiException; -import com.alibaba.cloud.ai.tongyi.image.TongYiImagesClient; +import com.alibaba.cloud.ai.tongyi.image.TongYiImagesModel; import com.alibaba.cloud.ai.tongyi.image.TongYiImagesProperties; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis; @@ -53,16 +53,17 @@ import org.springframework.context.annotation.Scope; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @AutoConfiguration @ConditionalOnClass({ MessageManager.class, - TongYiChatClient.class, - TongYiImagesClient.class, - TongYiAudioSpeechClient.class, - TongYiAudioTranscriptionClient.class + TongYiChatModel.class, + TongYiImagesModel.class, + TongYiAudioSpeechModel.class, + TongYiTextEmbeddingModel.class, + TongYiAudioTranscriptionModel.class }) @EnableConfigurationProperties({ TongYiChatProperties.class, @@ -137,14 +138,14 @@ public class TongYiAutoConfiguration { havingValue = "true", matchIfMissing = true ) - public TongYiChatClient tongYiChatClient(Generation generation, + public TongYiChatModel tongYiChatClient(Generation generation, TongYiChatProperties chatOptions, TongYiConnectionProperties connectionProperties ) { settingApiKey(connectionProperties); - return new TongYiChatClient(generation, chatOptions.getOptions()); + return new TongYiChatModel(generation, chatOptions.getOptions()); } @Bean @@ -154,7 +155,7 @@ public class TongYiAutoConfiguration { havingValue = "true", matchIfMissing = true ) - public TongYiImagesClient tongYiImagesClient( + public TongYiImagesModel tongYiImagesClient( ImageSynthesis imageSynthesis, TongYiImagesProperties imagesOptions, TongYiConnectionProperties connectionProperties @@ -162,7 +163,7 @@ public class TongYiAutoConfiguration { settingApiKey(connectionProperties); - return new TongYiImagesClient(imageSynthesis, imagesOptions.getOptions()); + return new TongYiImagesModel(imageSynthesis, imagesOptions.getOptions()); } @Bean @@ -172,7 +173,7 @@ public class TongYiAutoConfiguration { havingValue = "true", matchIfMissing = true ) - public TongYiAudioSpeechClient tongYiAudioSpeechClient( + public TongYiAudioSpeechModel tongYiAudioSpeechClient( SpeechSynthesizer speechSynthesizer, TongYiAudioSpeechProperties speechProperties, TongYiConnectionProperties connectionProperties @@ -180,7 +181,7 @@ public class TongYiAutoConfiguration { settingApiKey(connectionProperties); - return new TongYiAudioSpeechClient(speechSynthesizer, speechProperties.getOptions()); + return new TongYiAudioSpeechModel(speechSynthesizer, speechProperties.getOptions()); } @Bean @@ -190,14 +191,14 @@ public class TongYiAutoConfiguration { havingValue = "true", matchIfMissing = true ) - public TongYiAudioTranscriptionClient tongYiAudioTranscriptionClient( + public TongYiAudioTranscriptionModel tongYiAudioTranscriptionClient( Transcription transcription, TongYiAudioTranscriptionProperties transcriptionProperties, TongYiConnectionProperties connectionProperties) { settingApiKey(connectionProperties); - return new TongYiAudioTranscriptionClient( + return new TongYiAudioTranscriptionModel( transcriptionProperties.getOptions(), transcription ); @@ -210,13 +211,13 @@ public class TongYiAutoConfiguration { havingValue = "true", matchIfMissing = true ) - public TongYiTextEmbeddingClient tongYiTextEmbeddingClient( + public TongYiTextEmbeddingModel tongYiTextEmbeddingClient( TextEmbedding textEmbedding, TongYiConnectionProperties connectionProperties ) { settingApiKey(connectionProperties); - return new TongYiTextEmbeddingClient(textEmbedding); + return new TongYiTextEmbeddingModel(textEmbedding); } /** diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiConnectionProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiConnectionProperties.java index 5008b0f95..74141bd22 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiConnectionProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/TongYiConnectionProperties.java @@ -18,25 +18,26 @@ package com.alibaba.cloud.ai.tongyi; import org.springframework.boot.context.properties.ConfigurationProperties; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** - * TongYi connection API properties. + * Spring Cloud Alibaba AI TongYi LLM connection properties. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiConnectionProperties.CONFIG_PREFIX) public class TongYiConnectionProperties { /** - * Spring Cloud Alibaba AI configuration prefix. + * Spring Cloud Alibaba AI connection configuration Prefix. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "tongyi"; /** - * API key. - + * TongYi LLM API key. */ private String apiKey; @@ -47,4 +48,5 @@ public class TongYiConnectionProperties { public void setApiKey(String apiKey) { this.apiKey = apiKey; } + } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioSpeechModels.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioSpeechModels.java index eb37a9391..2c8bd707b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioSpeechModels.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioSpeechModels.java @@ -22,7 +22,7 @@ package com.alibaba.cloud.ai.tongyi.audio; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public final class AudioSpeechModels { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioTranscriptionModels.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioTranscriptionModels.java index a4109f2a8..4b8435629 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioTranscriptionModels.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/AudioTranscriptionModels.java @@ -19,7 +19,7 @@ package com.alibaba.cloud.ai.tongyi.audio; /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public final class AudioTranscriptionModels { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechModel.java similarity index 95% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechModel.java index 6cf757ee6..9b7b8355f 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechModel.java @@ -20,10 +20,10 @@ import java.nio.ByteBuffer; import com.alibaba.cloud.ai.tongyi.audio.AudioSpeechModels; import com.alibaba.cloud.ai.tongyi.audio.speech.api.Speech; -import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechClient; +import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechModel; import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechPrompt; import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechResponse; -import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechStreamClient; +import com.alibaba.cloud.ai.tongyi.audio.speech.api.SpeechStreamModel; import com.alibaba.cloud.ai.tongyi.metadata.audio.TongYiAudioSpeechResponseMetadata; import com.alibaba.dashscope.audio.tts.SpeechSynthesisParam; import com.alibaba.dashscope.audio.tts.SpeechSynthesisResult; @@ -42,10 +42,10 @@ import org.springframework.util.Assert; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ -public class TongYiAudioSpeechClient implements SpeechClient, SpeechStreamClient { +public class TongYiAudioSpeechModel implements SpeechModel, SpeechStreamModel { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -68,7 +68,7 @@ public class TongYiAudioSpeechClient implements SpeechClient, SpeechStreamClient * TongYiAudioSpeechClient constructor. * @param speechSynthesizer the speech synthesizer */ - public TongYiAudioSpeechClient(SpeechSynthesizer speechSynthesizer) { + public TongYiAudioSpeechModel(SpeechSynthesizer speechSynthesizer) { this(speechSynthesizer, null); } @@ -78,7 +78,7 @@ public class TongYiAudioSpeechClient implements SpeechClient, SpeechStreamClient * @param speechSynthesizer the speech synthesizer * @param tongYiAudioOptions the tongYi audio options */ - public TongYiAudioSpeechClient(SpeechSynthesizer speechSynthesizer, TongYiAudioSpeechOptions tongYiAudioOptions) { + public TongYiAudioSpeechModel(SpeechSynthesizer speechSynthesizer, TongYiAudioSpeechOptions tongYiAudioOptions) { Assert.notNull(speechSynthesizer, "speechSynthesizer must not be null"); Assert.notNull(tongYiAudioOptions, "tongYiAudioOptions must not be null"); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptions.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptions.java index 945517d3b..843971871 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptions.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptions.java @@ -25,7 +25,7 @@ import org.springframework.ai.model.ModelOptions; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiAudioSpeechOptions implements ModelOptions { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechProperties.java index bed238baf..4e8a4786c 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechProperties.java @@ -17,31 +17,28 @@ package com.alibaba.cloud.ai.tongyi.audio.speech; import com.alibaba.cloud.ai.tongyi.audio.AudioSpeechModels; -import com.alibaba.cloud.ai.tongyi.image.TongYiImagesProperties; import com.alibaba.dashscope.audio.tts.SpeechSynthesisAudioFormat; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** * TongYi audio speech configuration properties. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiAudioSpeechProperties.CONFIG_PREFIX) public class TongYiAudioSpeechProperties { - private final Logger logger = LoggerFactory.getLogger(TongYiImagesProperties.class); - /** * Spring Cloud Alibaba AI configuration prefix. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi.audio.speech"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "audio.speech"; /** * Default TongYi Chat model. */ diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/Speech.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/Speech.java index 0d6e19d0a..560e490de 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/Speech.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/Speech.java @@ -26,7 +26,7 @@ import org.springframework.lang.Nullable; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class Speech implements ModelResult { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMessage.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMessage.java index 7f3b7f663..9748bcf50 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMessage.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMessage.java @@ -19,9 +19,12 @@ package com.alibaba.cloud.ai.tongyi.audio.speech.api; import java.util.Objects; /** + * The {@link SpeechMessage} class represents a single text message to + * be converted to speech by the TongYi LLM TTS. + * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class SpeechMessage { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMetadata.java index d7304d140..513a2839c 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechMetadata.java @@ -21,7 +21,7 @@ import org.springframework.ai.model.ResultMetadata; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public interface SpeechMetadata extends ResultMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechModel.java similarity index 95% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechModel.java index 97e2385d7..4b54209c2 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechModel.java @@ -27,7 +27,7 @@ import org.springframework.ai.model.Model; */ @FunctionalInterface -public interface SpeechClient extends Model { +public interface SpeechModel extends Model { /** * Generates spoken audio from the provided text message. diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechPrompt.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechPrompt.java index 76bc54a54..42184a83c 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechPrompt.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechPrompt.java @@ -25,7 +25,7 @@ import org.springframework.ai.model.ModelRequest; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class SpeechPrompt implements ModelRequest { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechResponse.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechResponse.java index faf5ac58e..99485c427 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechResponse.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechResponse.java @@ -27,7 +27,7 @@ import org.springframework.ai.model.ModelResponse; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class SpeechResponse implements ModelResponse { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamModel.java similarity index 93% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamModel.java index 9a4b73d67..78c99fb8d 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/speech/api/SpeechStreamModel.java @@ -25,11 +25,11 @@ import org.springframework.ai.model.StreamingModel; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @FunctionalInterface -public interface SpeechStreamClient extends StreamingModel { +public interface SpeechStreamModel extends StreamingModel { /** * Generates a stream of audio bytes from the provided text message. @@ -40,7 +40,6 @@ public interface SpeechStreamClient extends StreamingModel stream(String message) { SpeechPrompt prompt = new SpeechPrompt(message); - return stream(prompt).map(SpeechResponse::getResult).map(Speech::getOutput); } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java similarity index 94% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java index b783e82e6..7d163e081 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java @@ -26,7 +26,7 @@ import com.alibaba.cloud.ai.tongyi.audio.AudioTranscriptionModels; import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionPrompt; import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionResponse; import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionResult; -import com.alibaba.cloud.ai.tongyi.exception.TongYiException; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException; import com.alibaba.cloud.ai.tongyi.metadata.audio.TongYiAudioTranscriptionResponseMetadata; import com.alibaba.dashscope.audio.asr.transcription.Transcription; import com.alibaba.dashscope.audio.asr.transcription.TranscriptionParam; @@ -39,14 +39,14 @@ import org.springframework.core.io.Resource; import org.springframework.util.Assert; /** - * TongYiAudioTranscriptionClient is a client for TongYi audio transcription service for + * TongYiAudioTranscriptionModel is a client for TongYi audio transcription service for * Spring Cloud Alibaba AI. * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ -public class TongYiAudioTranscriptionClient +public class TongYiAudioTranscriptionModel implements Model { /** @@ -59,11 +59,11 @@ public class TongYiAudioTranscriptionClient */ private final Transcription transcription; - public TongYiAudioTranscriptionClient(Transcription transcription) { + public TongYiAudioTranscriptionModel(Transcription transcription) { this(null, transcription); } - public TongYiAudioTranscriptionClient(TongYiAudioTranscriptionOptions defaultOptions, + public TongYiAudioTranscriptionModel(TongYiAudioTranscriptionOptions defaultOptions, Transcription transcription) { Assert.notNull(transcription, "transcription must not be null"); Assert.notNull(defaultOptions, "defaultOptions must not be null"); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptions.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptions.java index 7df23db1b..121141b20 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptions.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptions.java @@ -27,7 +27,7 @@ import org.springframework.ai.model.ModelOptions; /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public class TongYiAudioTranscriptionOptions implements ModelOptions { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionProperties.java index 187e44c66..e98f77acc 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionProperties.java @@ -21,10 +21,12 @@ import com.alibaba.cloud.ai.tongyi.audio.AudioTranscriptionModels; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiAudioTranscriptionProperties.CONFIG_PREFIX) @@ -33,7 +35,7 @@ public class TongYiAudioTranscriptionProperties { /** * Spring Cloud Alibaba AI configuration prefix. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi.audio.transcription"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "audio.transcription"; /** * Default TongYi Chat model. diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionPrompt.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionPrompt.java index 49a31d504..2ea98e23f 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionPrompt.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionPrompt.java @@ -24,7 +24,7 @@ import org.springframework.core.io.Resource; /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public class AudioTranscriptionPrompt implements ModelRequest { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResponse.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResponse.java index 8e07890c9..6a28b20b3 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResponse.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResponse.java @@ -26,7 +26,7 @@ import org.springframework.ai.model.ResponseMetadata; /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public class AudioTranscriptionResponse implements ModelResponse { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResult.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResult.java index 0a5f8d0a3..8f162d262 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResult.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/api/AudioTranscriptionResult.java @@ -26,7 +26,7 @@ import org.springframework.ai.model.ResultMetadata; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public class AudioTranscriptionResult implements ModelResult { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java similarity index 97% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java index 07e9909fc..d79eaa9f9 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java @@ -21,7 +21,7 @@ import java.util.Objects; import java.util.Set; -import com.alibaba.cloud.ai.tongyi.exception.TongYiException; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException; import com.alibaba.dashscope.aigc.conversation.ConversationParam; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationOutput; @@ -61,19 +61,19 @@ import org.springframework.util.CollectionUtils; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 * @see ChatModel * @see com.alibaba.dashscope.aigc.generation */ -public class TongYiChatClient extends +public class TongYiChatModel extends AbstractFunctionCallSupport< com.alibaba.dashscope.common.Message, ConversationParam, GenerationResult> implements ChatModel, StreamingChatModel { - private static final Logger logger = LoggerFactory.getLogger(TongYiChatClient.class); + private static final Logger logger = LoggerFactory.getLogger(TongYiChatModel.class); /** * DashScope generation client. @@ -95,7 +95,7 @@ public class TongYiChatClient extends * Initializes an instance of the TongYiChatClient. * @param generation DashScope generation client. */ - public TongYiChatClient(Generation generation) { + public TongYiChatModel(Generation generation) { this(generation, TongYiChatOptions.builder() @@ -112,7 +112,7 @@ public class TongYiChatClient extends * @param generation DashScope generation client. * @param options TongYi model params. */ - public TongYiChatClient(Generation generation, TongYiChatOptions options) { + public TongYiChatModel(Generation generation, TongYiChatOptions options) { this(generation, options, null); } @@ -122,7 +122,7 @@ public class TongYiChatClient extends * @param generation DashScope model generation client. * @param options TongYi default chat completion api. */ - public TongYiChatClient(Generation generation, TongYiChatOptions options, + public TongYiChatModel(Generation generation, TongYiChatOptions options, FunctionCallbackContext functionCallbackContext) { super(functionCallbackContext); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptions.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptions.java index 4409c491e..dac46c7c8 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptions.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptions.java @@ -33,7 +33,7 @@ import org.springframework.util.Assert; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiChatOptions implements FunctionCallingOptions, ChatOptions { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatProperties.java index 3cb531550..7eda6a2f7 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatProperties.java @@ -22,10 +22,12 @@ import com.alibaba.dashscope.aigc.generation.GenerationParam; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiChatProperties.CONFIG_PREFIX) @@ -34,7 +36,7 @@ public class TongYiChatProperties { /** * Spring Cloud Alibaba AI configuration prefix. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi.chat"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "chat"; /** * Default TongYi Chat model. diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/constants/TongYiConstants.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/constants/TongYiConstants.java similarity index 84% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/constants/TongYiConstants.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/constants/TongYiConstants.java index ff9ec4dd9..6fe77bd30 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/constants/TongYiConstants.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/constants/TongYiConstants.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.cloud.ai.tongyi.constants; +package com.alibaba.cloud.ai.tongyi.common.constants; /** * @author yuluo @@ -26,6 +26,11 @@ public final class TongYiConstants { private TongYiConstants() { } + /** + * Spring Cloud Alibaba AI configuration prefix. + */ + public static final String SCA_AI_CONFIGURATION = "spring.cloud.ai.tongyi."; + /** * Spring Cloud Alibaba AI constants prefix. */ diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiException.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiException.java similarity index 92% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiException.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiException.java index b0dec51a6..18e14ad76 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiException.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiException.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package com.alibaba.cloud.ai.tongyi.exception; +package com.alibaba.cloud.ai.tongyi.common.exception; /** * TongYi models runtime exception. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiException extends RuntimeException { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiImagesException.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiImagesException.java similarity index 92% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiImagesException.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiImagesException.java index ae90949ec..5e2e577e9 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/exception/TongYiImagesException.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/common/exception/TongYiImagesException.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package com.alibaba.cloud.ai.tongyi.exception; +package com.alibaba.cloud.ai.tongyi.common.exception; /** * TongYi models images exception. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiImagesException extends TongYiException { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiEmbeddingOptions.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiEmbeddingOptions.java index 72d7cd8c9..0c2f64354 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiEmbeddingOptions.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiEmbeddingOptions.java @@ -26,7 +26,7 @@ import org.springframework.ai.embedding.EmbeddingOptions; * @author why_ohh * @author yuluo * @author why_ohh - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public final class TongYiEmbeddingOptions implements EmbeddingOptions { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java similarity index 91% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java index 7a88a8930..1778884c8 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java @@ -19,7 +19,7 @@ package com.alibaba.cloud.ai.tongyi.embedding; import java.util.List; import java.util.stream.Collectors; -import com.alibaba.cloud.ai.tongyi.exception.TongYiException; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException; import com.alibaba.cloud.ai.tongyi.metadata.TongYiTextEmbeddingResponseMetadata; import com.alibaba.dashscope.embeddings.TextEmbedding; import com.alibaba.dashscope.embeddings.TextEmbeddingParam; @@ -39,17 +39,17 @@ import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.util.Assert; /** - * {@link TongYiTextEmbeddingClient} implementation for {@literal Alibaba DashScope}. + * {@link TongYiTextEmbeddingModel} implementation for {@literal Alibaba DashScope}. + * * @author why_ohh * @author yuluo * @author why_ohh - * @since 2023.0.0.0 - * {@see TextEmbeddingClient} + * @since 2023.0.1.0 */ -public class TongYiTextEmbeddingClient extends AbstractEmbeddingModel { +public class TongYiTextEmbeddingModel extends AbstractEmbeddingModel { - private final Logger logger = LoggerFactory.getLogger(TongYiTextEmbeddingClient.class); + private final Logger logger = LoggerFactory.getLogger(TongYiTextEmbeddingModel.class); /** * TongYi Text Embedding client. @@ -63,12 +63,12 @@ public class TongYiTextEmbeddingClient extends AbstractEmbeddingModel { private final TongYiEmbeddingOptions defaultOptions; - public TongYiTextEmbeddingClient(TextEmbedding textEmbedding) { + public TongYiTextEmbeddingModel(TextEmbedding textEmbedding) { this(textEmbedding, MetadataMode.EMBED); } - public TongYiTextEmbeddingClient(TextEmbedding textEmbedding, MetadataMode metadataMode) { + public TongYiTextEmbeddingModel(TextEmbedding textEmbedding, MetadataMode metadataMode) { this(textEmbedding, metadataMode, TongYiEmbeddingOptions.builder() @@ -77,7 +77,7 @@ public class TongYiTextEmbeddingClient extends AbstractEmbeddingModel { ); } - public TongYiTextEmbeddingClient( + public TongYiTextEmbeddingModel( TextEmbedding textEmbedding, MetadataMode metadataMode, TongYiEmbeddingOptions options diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingProperties.java index f2199c343..02196f41d 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingProperties.java @@ -18,11 +18,13 @@ package com.alibaba.cloud.ai.tongyi.embedding; import org.springframework.boot.context.properties.ConfigurationProperties; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** * @author why_ohh * @author yuluo * @author why_ohh - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiTextEmbeddingProperties.CONFIG_PREFIX) @@ -31,7 +33,7 @@ public class TongYiTextEmbeddingProperties { /** * Prefix of TongYi Text Embedding properties. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi.embedding"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "embedding"; private boolean enabled = true; diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesModel.java similarity index 95% rename from spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesClient.java rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesModel.java index fdaa51e31..0d8e963fd 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesModel.java @@ -21,7 +21,7 @@ import java.net.URL; import java.util.Base64; import java.util.stream.Collectors; -import com.alibaba.cloud.ai.tongyi.exception.TongYiImagesException; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiImagesException; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult; @@ -45,12 +45,12 @@ import static com.alibaba.cloud.ai.tongyi.metadata.TongYiImagesResponseMetadata. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ -public class TongYiImagesClient implements ImageModel { +public class TongYiImagesModel implements ImageModel { - private final Logger logger = LoggerFactory.getLogger(TongYiImagesClient.class); + private final Logger logger = LoggerFactory.getLogger(TongYiImagesModel.class); /** * Gen Images API. @@ -82,7 +82,7 @@ public class TongYiImagesClient implements ImageModel { * @param imageSynthesis the image synthesis * {@link ImageSynthesis} */ - public TongYiImagesClient(ImageSynthesis imageSynthesis) { + public TongYiImagesModel(ImageSynthesis imageSynthesis) { this(imageSynthesis, TongYiImagesOptions. builder() @@ -97,7 +97,7 @@ public class TongYiImagesClient implements ImageModel { * @param imageSynthesis {@link ImageSynthesis} * @param imagesOptions {@link TongYiImagesOptions} */ - public TongYiImagesClient(ImageSynthesis imageSynthesis, TongYiImagesOptions imagesOptions) { + public TongYiImagesModel(ImageSynthesis imageSynthesis, TongYiImagesOptions imagesOptions) { Assert.notNull(imageSynthesis, "ImageSynthesis must not be null"); Assert.notNull(imagesOptions, "TongYiImagesOptions must not be null"); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesOptions.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesOptions.java index ff81760b1..503efe4ac 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesOptions.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesOptions.java @@ -18,7 +18,7 @@ package com.alibaba.cloud.ai.tongyi.image; import java.util.Objects; -import com.alibaba.cloud.ai.tongyi.exception.TongYiImagesException; +import com.alibaba.cloud.ai.tongyi.common.exception.TongYiImagesException; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis; import org.springframework.ai.image.ImageOptions; @@ -28,7 +28,7 @@ import org.springframework.ai.image.ImageOptions; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiImagesOptions implements ImageOptions { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesProperties.java index 3b49bf3e2..80c1a448e 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/image/TongYiImagesProperties.java @@ -17,29 +17,27 @@ package com.alibaba.cloud.ai.tongyi.image; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import static com.alibaba.cloud.ai.tongyi.common.constants.TongYiConstants.SCA_AI_CONFIGURATION; + /** * TongYi Image API properties. * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ @ConfigurationProperties(TongYiImagesProperties.CONFIG_PREFIX) public class TongYiImagesProperties { - private final Logger logger = LoggerFactory.getLogger(TongYiImagesProperties.class); - /** * Spring Cloud Alibaba AI configuration prefix. */ - public static final String CONFIG_PREFIX = "spring.cloud.ai.tongyi.images"; + public static final String CONFIG_PREFIX = SCA_AI_CONFIGURATION + "images"; /** * Default TongYi Chat model. diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiChatResponseMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiChatResponseMetadata.java index a38e4a713..2afdcc9bc 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiChatResponseMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiChatResponseMetadata.java @@ -32,7 +32,7 @@ import org.springframework.util.Assert; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiAiChatResponseMetadata extends HashMap implements ChatResponseMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiUsage.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiUsage.java index 794ca1286..3ef7bb177 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiUsage.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiAiUsage.java @@ -27,7 +27,7 @@ import org.springframework.util.Assert; * * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiAiUsage implements Usage { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiImagesResponseMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiImagesResponseMetadata.java index e00879055..b45273a4c 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiImagesResponseMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiImagesResponseMetadata.java @@ -29,7 +29,7 @@ import org.springframework.util.Assert; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiImagesResponseMetadata extends HashMap implements ImageResponseMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiTextEmbeddingResponseMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiTextEmbeddingResponseMetadata.java index 3673ccb5b..5eff40483 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiTextEmbeddingResponseMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/TongYiTextEmbeddingResponseMetadata.java @@ -24,6 +24,7 @@ import org.springframework.ai.embedding.EmbeddingResponseMetadata; * @author why_ohh * @author yuluo * @author why_ohh + * @since 2023.0.1.0 */ public class TongYiTextEmbeddingResponseMetadata extends EmbeddingResponseMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioSpeechResponseMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioSpeechResponseMetadata.java index 3dcd034f1..ddd516813 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioSpeechResponseMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioSpeechResponseMetadata.java @@ -32,7 +32,7 @@ import org.springframework.util.Assert; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ public class TongYiAudioSpeechResponseMetadata extends HashMap implements ResponseMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionMetadata.java index 3047bfd32..32d5d63c2 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionMetadata.java @@ -21,7 +21,7 @@ import org.springframework.ai.model.ResultMetadata; /** * @author xYLiu * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public interface TongYiAudioTranscriptionMetadata extends ResultMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionResponseMetadata.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionResponseMetadata.java index a63724a82..6479782fd 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionResponseMetadata.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/main/java/com/alibaba/cloud/ai/tongyi/metadata/audio/TongYiAudioTranscriptionResponseMetadata.java @@ -33,7 +33,7 @@ import org.springframework.util.Assert; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0 + * @since 2023.0.1.0 */ public class TongYiAudioTranscriptionResponseMetadata extends HashMap implements ResponseMetadata { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClientTest.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClientTest.java index bf6315b53..441fbf5f6 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClientTest.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechClientTest.java @@ -37,6 +37,7 @@ import static org.mockito.Mockito.when; /** * @author yuluo * @author yuluo + * @since 2023.0.1.0 */ class TongYiAudioSpeechClientTest { @@ -44,13 +45,13 @@ class TongYiAudioSpeechClientTest { @Mock private SpeechSynthesizer speechSynthesizer; - private TongYiAudioSpeechClient client; + private TongYiAudioSpeechModel client; @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); - client = new TongYiAudioSpeechClient(speechSynthesizer, new TongYiAudioSpeechOptions()); + client = new TongYiAudioSpeechModel(speechSynthesizer, new TongYiAudioSpeechOptions()); } @Test diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptionsTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptionsTests.java index a6b2037b8..2041a3303 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptionsTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/speech/TongYiAudioSpeechOptionsTests.java @@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ class TongYiAudioSpeechOptionsTests { @@ -40,7 +40,7 @@ class TongYiAudioSpeechOptionsTests { SpeechSynthesizer mockClient = Mockito.mock(SpeechSynthesizer.class); Constants.apiKey = "test"; - var speechClient = new TongYiAudioSpeechClient(mockClient, + var speechClient = new TongYiAudioSpeechModel(mockClient, TongYiAudioSpeechOptions.builder() .withFormat(SpeechSynthesisAudioFormat.MP3) .withRate(333f) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptionsTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptionsTests.java index 7770a1ad0..001f8a481 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptionsTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionOptionsTests.java @@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author xYLiu * @author yuluo + * @since 2023.0.1.0 */ class TongYiAudioTranscriptionOptionsTests { @@ -38,7 +39,7 @@ class TongYiAudioTranscriptionOptionsTests { Transcription mockClient = Mockito.mock(Transcription.class); Constants.apiKey = "test"; - var transcription = new TongYiAudioTranscriptionClient( + var transcription = new TongYiAudioTranscriptionModel( TongYiAudioTranscriptionOptions.builder().withDiarizationEnabled(false) .withAudioEventDetectionEnabled(false) .withTimestampAlignmentEnabled(false) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptionsTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptionsTests.java index af2825f2f..d4466daa5 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptionsTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatOptionsTests.java @@ -28,7 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author yuluo * @author yuluo - * @since 2023.0.0.0-RC1 + * @since 2023.0.1.0 */ class TongYiChatOptionsTests { @@ -41,7 +41,7 @@ class TongYiChatOptionsTests { // Test start. - var tongYiChatClient = new TongYiChatClient(mockClient, + var tongYiChatClient = new TongYiChatModel(mockClient, TongYiChatOptions.builder().withModel(Generation.Models.QWEN_TURBO).withTemperature(88.8).build()); var tongYiChatParams = tongYiChatClient.toTongYiChatParams(new Prompt("你好")); @@ -51,7 +51,7 @@ class TongYiChatOptionsTests { assertThat(tongYiChatParams.getModel()).isEqualTo(Generation.Models.QWEN_TURBO); assertThat(tongYiChatParams.getTemperature()).isEqualTo(88.8f); - tongYiChatClient = new TongYiChatClient(mockClient, + tongYiChatClient = new TongYiChatModel(mockClient, TongYiChatOptions.builder().withModel(Generation.Models.QWEN_MAX).withTemperature(77.7).build()); tongYiChatParams = tongYiChatClient.toTongYiChatParams(new Prompt("你是谁")); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/images/TongYiImagesOptionsTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/images/TongYiImagesOptionsTests.java index e5e1976bc..6a3c60682 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/images/TongYiImagesOptionsTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-ai/src/test/java/com/alibaba/cloud/ai/tongyi/images/TongYiImagesOptionsTests.java @@ -16,7 +16,7 @@ package com.alibaba.cloud.ai.tongyi.images; -import com.alibaba.cloud.ai.tongyi.image.TongYiImagesClient; +import com.alibaba.cloud.ai.tongyi.image.TongYiImagesModel; import com.alibaba.cloud.ai.tongyi.image.TongYiImagesOptions; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis; import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam; @@ -29,6 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author yuluo * @author yuluo + * @since 2023.0.1.0 */ class TongYiImagesOptionsTests { @@ -39,7 +40,7 @@ class TongYiImagesOptionsTests { ImageSynthesis mockClient = Mockito.mock(ImageSynthesis.class); Constants.apiKey = "test"; - var tongYiImagesClient = new TongYiImagesClient(mockClient, + var tongYiImagesClient = new TongYiImagesModel(mockClient, TongYiImagesOptions. builder() .withModel("test")