mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 21:17:08 +00:00
115 lines
5.9 KiB
Java
115 lines
5.9 KiB
Java
package dev.langchain4j.qianfan.spring;
|
|
|
|
import dev.langchain4j.model.qianfan.QianfanChatModel;
|
|
import dev.langchain4j.model.qianfan.QianfanEmbeddingModel;
|
|
import dev.langchain4j.model.qianfan.QianfanLanguageModel;
|
|
import dev.langchain4j.model.qianfan.QianfanStreamingChatModel;
|
|
import dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel;
|
|
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.qianfan.spring.Properties.PREFIX;
|
|
|
|
@Configuration
|
|
@EnableConfigurationProperties(Properties.class)
|
|
public class QianfanAutoConfig {
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
|
|
QianfanChatModel qianfanChatModel(Properties properties) {
|
|
ChatModelProperties chatModelProperties = properties.getChatModel();
|
|
return QianfanChatModel.builder()
|
|
.baseUrl(chatModelProperties.getBaseUrl())
|
|
.apiKey(chatModelProperties.getApiKey())
|
|
.secretKey(chatModelProperties.getSecretKey())
|
|
.endpoint(chatModelProperties.getEndpoint())
|
|
.penaltyScore(chatModelProperties.getPenaltyScore())
|
|
.modelName(chatModelProperties.getModelName())
|
|
.temperature(chatModelProperties.getTemperature())
|
|
.topP(chatModelProperties.getTopP())
|
|
.responseFormat(chatModelProperties.getResponseFormat())
|
|
.maxRetries(chatModelProperties.getMaxRetries())
|
|
.logRequests(chatModelProperties.getLogRequests())
|
|
.logResponses(chatModelProperties.getLogResponses())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".streaming-chat-model.api-key")
|
|
QianfanStreamingChatModel qianfanStreamingChatModel(Properties properties) {
|
|
ChatModelProperties chatModelProperties = properties.getStreamingChatModel();
|
|
return QianfanStreamingChatModel.builder()
|
|
.endpoint(chatModelProperties.getEndpoint())
|
|
.penaltyScore(chatModelProperties.getPenaltyScore())
|
|
.temperature(chatModelProperties.getTemperature())
|
|
.topP(chatModelProperties.getTopP())
|
|
.baseUrl(chatModelProperties.getBaseUrl())
|
|
.apiKey(chatModelProperties.getApiKey())
|
|
.secretKey(chatModelProperties.getSecretKey())
|
|
.modelName(chatModelProperties.getModelName())
|
|
.responseFormat(chatModelProperties.getResponseFormat())
|
|
.logRequests(chatModelProperties.getLogRequests())
|
|
.logResponses(chatModelProperties.getLogResponses())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".language-model.api-key")
|
|
QianfanLanguageModel qianfanLanguageModel(Properties properties) {
|
|
LanguageModelProperties languageModelProperties = properties.getLanguageModel();
|
|
return QianfanLanguageModel.builder()
|
|
.endpoint(languageModelProperties.getEndpoint())
|
|
.penaltyScore(languageModelProperties.getPenaltyScore())
|
|
.topK(languageModelProperties.getTopK())
|
|
.topP(languageModelProperties.getTopP())
|
|
.baseUrl(languageModelProperties.getBaseUrl())
|
|
.apiKey(languageModelProperties.getApiKey())
|
|
.secretKey(languageModelProperties.getSecretKey())
|
|
.modelName(languageModelProperties.getModelName())
|
|
.temperature(languageModelProperties.getTemperature())
|
|
.maxRetries(languageModelProperties.getMaxRetries())
|
|
.logRequests(languageModelProperties.getLogRequests())
|
|
.logResponses(languageModelProperties.getLogResponses())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".streaming-language-model.api-key")
|
|
QianfanStreamingLanguageModel qianfanStreamingLanguageModel(Properties properties) {
|
|
LanguageModelProperties languageModelProperties = properties.getStreamingLanguageModel();
|
|
return QianfanStreamingLanguageModel.builder()
|
|
.endpoint(languageModelProperties.getEndpoint())
|
|
.penaltyScore(languageModelProperties.getPenaltyScore())
|
|
.topK(languageModelProperties.getTopK())
|
|
.topP(languageModelProperties.getTopP())
|
|
.baseUrl(languageModelProperties.getBaseUrl())
|
|
.apiKey(languageModelProperties.getApiKey())
|
|
.secretKey(languageModelProperties.getSecretKey())
|
|
.modelName(languageModelProperties.getModelName())
|
|
.temperature(languageModelProperties.getTemperature())
|
|
.maxRetries(languageModelProperties.getMaxRetries())
|
|
.logRequests(languageModelProperties.getLogRequests())
|
|
.logResponses(languageModelProperties.getLogResponses())
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(PREFIX + ".embedding-model.api-key")
|
|
QianfanEmbeddingModel qianfanEmbeddingModel(Properties properties) {
|
|
EmbeddingModelProperties embeddingModelProperties = properties.getEmbeddingModel();
|
|
return QianfanEmbeddingModel.builder()
|
|
.baseUrl(embeddingModelProperties.getBaseUrl())
|
|
.endpoint(embeddingModelProperties.getEndpoint())
|
|
.apiKey(embeddingModelProperties.getApiKey())
|
|
.secretKey(embeddingModelProperties.getSecretKey())
|
|
.modelName(embeddingModelProperties.getModelName())
|
|
.user(embeddingModelProperties.getUser())
|
|
.maxRetries(embeddingModelProperties.getMaxRetries())
|
|
.logRequests(embeddingModelProperties.getLogRequests())
|
|
.logResponses(embeddingModelProperties.getLogResponses())
|
|
.build();
|
|
}
|
|
}
|