mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-22 06:44:18 +08:00
85 lines
4.5 KiB
Java
85 lines
4.5 KiB
Java
package dev.langchain4j.dashscope.spring;
|
|
|
|
import dev.langchain4j.model.dashscope.QwenChatModel;
|
|
import dev.langchain4j.model.dashscope.QwenEmbeddingModel;
|
|
import dev.langchain4j.model.dashscope.QwenLanguageModel;
|
|
import dev.langchain4j.model.dashscope.QwenStreamingChatModel;
|
|
import dev.langchain4j.model.dashscope.QwenStreamingLanguageModel;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import static dev.langchain4j.dashscope.spring.Properties.PREFIX;
|
|
|
|
@Configuration
|
|
@EnableConfigurationProperties(Properties.class)
|
|
public class DashscopeAutoConfig {
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
|
|
QwenChatModel qwenChatModel(Properties properties) {
|
|
ChatModelProperties chatModelProperties = properties.getChatModel();
|
|
return QwenChatModel.builder().baseUrl(chatModelProperties.getBaseUrl())
|
|
.apiKey(chatModelProperties.getApiKey())
|
|
.modelName(chatModelProperties.getModelName()).topP(chatModelProperties.getTopP())
|
|
.topK(chatModelProperties.getTopK())
|
|
.enableSearch(chatModelProperties.getEnableSearch())
|
|
.seed(chatModelProperties.getSeed())
|
|
.repetitionPenalty(chatModelProperties.getRepetitionPenalty())
|
|
.temperature(chatModelProperties.getTemperature())
|
|
.stops(chatModelProperties.getStops()).maxTokens(chatModelProperties.getMaxTokens())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".streaming-chat-model.api-key")
|
|
QwenStreamingChatModel qwenStreamingChatModel(Properties properties) {
|
|
ChatModelProperties chatModelProperties = properties.getStreamingChatModel();
|
|
return QwenStreamingChatModel.builder().baseUrl(chatModelProperties.getBaseUrl())
|
|
.apiKey(chatModelProperties.getApiKey())
|
|
.modelName(chatModelProperties.getModelName()).topP(chatModelProperties.getTopP())
|
|
.topK(chatModelProperties.getTopK())
|
|
.enableSearch(chatModelProperties.getEnableSearch())
|
|
.seed(chatModelProperties.getSeed())
|
|
.repetitionPenalty(chatModelProperties.getRepetitionPenalty())
|
|
.temperature(chatModelProperties.getTemperature())
|
|
.stops(chatModelProperties.getStops()).maxTokens(chatModelProperties.getMaxTokens())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".language-model.api-key")
|
|
QwenLanguageModel qwenLanguageModel(Properties properties) {
|
|
ChatModelProperties languageModel = properties.getLanguageModel();
|
|
return QwenLanguageModel.builder().baseUrl(languageModel.getBaseUrl())
|
|
.apiKey(languageModel.getApiKey()).modelName(languageModel.getModelName())
|
|
.topP(languageModel.getTopP()).topK(languageModel.getTopK())
|
|
.enableSearch(languageModel.getEnableSearch()).seed(languageModel.getSeed())
|
|
.repetitionPenalty(languageModel.getRepetitionPenalty())
|
|
.temperature(languageModel.getTemperature()).stops(languageModel.getStops())
|
|
.maxTokens(languageModel.getMaxTokens()).build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".streaming-language-model.api-key")
|
|
QwenStreamingLanguageModel qwenStreamingLanguageModel(Properties properties) {
|
|
ChatModelProperties languageModel = properties.getStreamingLanguageModel();
|
|
return QwenStreamingLanguageModel.builder().baseUrl(languageModel.getBaseUrl())
|
|
.apiKey(languageModel.getApiKey()).modelName(languageModel.getModelName())
|
|
.topP(languageModel.getTopP()).topK(languageModel.getTopK())
|
|
.enableSearch(languageModel.getEnableSearch()).seed(languageModel.getSeed())
|
|
.repetitionPenalty(languageModel.getRepetitionPenalty())
|
|
.temperature(languageModel.getTemperature()).stops(languageModel.getStops())
|
|
.maxTokens(languageModel.getMaxTokens()).build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".embedding-model.api-key")
|
|
QwenEmbeddingModel qwenEmbeddingModel(Properties properties) {
|
|
EmbeddingModelProperties embeddingModelProperties = properties.getEmbeddingModel();
|
|
return QwenEmbeddingModel.builder().apiKey(embeddingModelProperties.getApiKey())
|
|
.modelName(embeddingModelProperties.getModelName()).build();
|
|
}
|
|
}
|