mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
(improvement)(common) support zhipu in springboot (#1190)
This commit is contained in:
@@ -221,8 +221,11 @@
|
|||||||
<groupId>dev.langchain4j</groupId>
|
<groupId>dev.langchain4j</groupId>
|
||||||
<artifactId>langchain4j-qianfan</artifactId>
|
<artifactId>langchain4j-qianfan</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>dev.langchain4j</groupId>
|
||||||
|
<artifactId>langchain4j-zhipu-ai</artifactId>
|
||||||
|
</dependency>
|
||||||
<!--langchain4j-->
|
<!--langchain4j-->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.hankcs</groupId>
|
<groupId>com.hankcs</groupId>
|
||||||
<artifactId>hanlp</artifactId>
|
<artifactId>hanlp</artifactId>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package dev.langchain4j.qianfan.spring;
|
package dev.langchain4j.qianfan.spring;
|
||||||
|
|
||||||
|
import static dev.langchain4j.qianfan.spring.Properties.PREFIX;
|
||||||
|
|
||||||
import dev.langchain4j.model.qianfan.QianfanChatModel;
|
import dev.langchain4j.model.qianfan.QianfanChatModel;
|
||||||
import dev.langchain4j.model.qianfan.QianfanEmbeddingModel;
|
import dev.langchain4j.model.qianfan.QianfanEmbeddingModel;
|
||||||
import dev.langchain4j.model.qianfan.QianfanLanguageModel;
|
import dev.langchain4j.model.qianfan.QianfanLanguageModel;
|
||||||
@@ -10,11 +12,9 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import static dev.langchain4j.qianfan.spring.Properties.PREFIX;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableConfigurationProperties(Properties.class)
|
@EnableConfigurationProperties(Properties.class)
|
||||||
public class AutoConfig {
|
public class QianfanAutoConfig {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
|
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package dev.langchain4j.zhipu.spring;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
class ChatModelProperties {
|
||||||
|
|
||||||
|
String baseUrl;
|
||||||
|
String apiKey;
|
||||||
|
Double temperature;
|
||||||
|
Double topP;
|
||||||
|
String model;
|
||||||
|
Integer maxRetries;
|
||||||
|
Integer maxToken;
|
||||||
|
Boolean logRequests;
|
||||||
|
Boolean logResponses;
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package dev.langchain4j.zhipu.spring;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
class EmbeddingModelProperties {
|
||||||
|
|
||||||
|
String baseUrl;
|
||||||
|
String apiKey;
|
||||||
|
String model;
|
||||||
|
Integer maxRetries;
|
||||||
|
Boolean logRequests;
|
||||||
|
Boolean logResponses;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package dev.langchain4j.zhipu.spring;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ConfigurationProperties(prefix = Properties.PREFIX)
|
||||||
|
public class Properties {
|
||||||
|
|
||||||
|
static final String PREFIX = "langchain4j.zhipu";
|
||||||
|
|
||||||
|
@NestedConfigurationProperty
|
||||||
|
ChatModelProperties chatModel;
|
||||||
|
|
||||||
|
@NestedConfigurationProperty
|
||||||
|
ChatModelProperties streamingChatModel;
|
||||||
|
|
||||||
|
@NestedConfigurationProperty
|
||||||
|
EmbeddingModelProperties embeddingModel;
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package dev.langchain4j.zhipu.spring;
|
||||||
|
|
||||||
|
import static dev.langchain4j.zhipu.spring.Properties.PREFIX;
|
||||||
|
|
||||||
|
import dev.langchain4j.model.zhipu.ZhipuAiChatModel;
|
||||||
|
import dev.langchain4j.model.zhipu.ZhipuAiEmbeddingModel;
|
||||||
|
import dev.langchain4j.model.zhipu.ZhipuAiStreamingChatModel;
|
||||||
|
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;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableConfigurationProperties(Properties.class)
|
||||||
|
public class ZhipuAutoConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
|
||||||
|
ZhipuAiChatModel zhipuAiChatModel(Properties properties) {
|
||||||
|
ChatModelProperties chatModelProperties = properties.getChatModel();
|
||||||
|
return ZhipuAiChatModel.builder()
|
||||||
|
.baseUrl(chatModelProperties.getBaseUrl())
|
||||||
|
.apiKey(chatModelProperties.getApiKey())
|
||||||
|
.model(chatModelProperties.getModel())
|
||||||
|
.temperature(chatModelProperties.getTemperature())
|
||||||
|
.topP(chatModelProperties.getTopP())
|
||||||
|
.maxRetries(chatModelProperties.getMaxRetries())
|
||||||
|
.maxToken(chatModelProperties.getMaxToken())
|
||||||
|
.logRequests(chatModelProperties.getLogRequests())
|
||||||
|
.logResponses(chatModelProperties.getLogResponses())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(PREFIX + ".streaming-chat-model.api-key")
|
||||||
|
ZhipuAiStreamingChatModel zhipuStreamingChatModel(Properties properties) {
|
||||||
|
ChatModelProperties chatModelProperties = properties.getStreamingChatModel();
|
||||||
|
return ZhipuAiStreamingChatModel.builder()
|
||||||
|
.baseUrl(chatModelProperties.getBaseUrl())
|
||||||
|
.apiKey(chatModelProperties.getApiKey())
|
||||||
|
.model(chatModelProperties.getModel())
|
||||||
|
.temperature(chatModelProperties.getTemperature())
|
||||||
|
.topP(chatModelProperties.getTopP())
|
||||||
|
.maxToken(chatModelProperties.getMaxToken())
|
||||||
|
.logRequests(chatModelProperties.getLogRequests())
|
||||||
|
.logResponses(chatModelProperties.getLogResponses())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(PREFIX + ".embedding-model.api-key")
|
||||||
|
ZhipuAiEmbeddingModel zhipuEmbeddingModel(Properties properties) {
|
||||||
|
EmbeddingModelProperties embeddingModelProperties = properties.getEmbeddingModel();
|
||||||
|
return ZhipuAiEmbeddingModel.builder()
|
||||||
|
.baseUrl(embeddingModelProperties.getBaseUrl())
|
||||||
|
.apiKey(embeddingModelProperties.getApiKey())
|
||||||
|
.model(embeddingModelProperties.getModel())
|
||||||
|
.maxRetries(embeddingModelProperties.getMaxRetries())
|
||||||
|
.logRequests(embeddingModelProperties.getLogRequests())
|
||||||
|
.logResponses(embeddingModelProperties.getLogResponses())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
14
pom.xml
14
pom.xml
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
@@ -130,11 +130,6 @@
|
|||||||
<artifactId>langchain4j-local-ai</artifactId>
|
<artifactId>langchain4j-local-ai</artifactId>
|
||||||
<version>${langchain4j.version}</version>
|
<version>${langchain4j.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>dev.langchain4j</groupId>
|
|
||||||
<artifactId>langchain4j-hugging-face</artifactId>
|
|
||||||
<version>${langchain4j.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dev.langchain4j</groupId>
|
<groupId>dev.langchain4j</groupId>
|
||||||
<artifactId>langchain4j-chroma</artifactId>
|
<artifactId>langchain4j-chroma</artifactId>
|
||||||
@@ -195,6 +190,11 @@
|
|||||||
<artifactId>langchain4j-qianfan</artifactId>
|
<artifactId>langchain4j-qianfan</artifactId>
|
||||||
<version>${langchain4j.version}</version>
|
<version>${langchain4j.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>dev.langchain4j</groupId>
|
||||||
|
<artifactId>langchain4j-zhipu-ai</artifactId>
|
||||||
|
<version>${langchain4j.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-autoconfigure-processor</artifactId>
|
<artifactId>spring-boot-autoconfigure-processor</artifactId>
|
||||||
|
|||||||
Reference in New Issue
Block a user