(improvement)(chat) Fix the Zhipu embedding model issue. (#1206)

This commit is contained in:
lexluo09
2024-06-24 22:44:51 +08:00
committed by GitHub
parent 4b288d9815
commit 96d8ba5ec4
5 changed files with 52 additions and 25 deletions

View File

@@ -1,5 +1,23 @@
package com.tencent.supersonic.auth.authentication.utils;
import com.tencent.supersonic.auth.api.authentication.config.AuthenticationConfig;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.auth.api.authentication.pojo.UserWithPassword;
import com.tencent.supersonic.common.pojo.exception.AccessException;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_ALGORITHM;
import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_CREATE_TIME;
import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_IS_ADMIN;
@@ -10,22 +28,6 @@ import static com.tencent.supersonic.auth.api.authentication.constant.UserConsta
import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_NAME;
import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_PASSWORD;
import com.tencent.supersonic.auth.api.authentication.config.AuthenticationConfig;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.auth.api.authentication.pojo.UserWithPassword;
import com.tencent.supersonic.common.pojo.exception.AccessException;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class UserTokenUtils {
@@ -118,15 +120,19 @@ public class UserTokenUtils {
String tokenSecret = getTokenSecret(appKey);
claims = Jwts.parser()
.setSigningKey(tokenSecret.getBytes(StandardCharsets.UTF_8))
.parseClaimsJws(token.startsWith(TOKEN_PREFIX)
? token.substring(token.indexOf(TOKEN_PREFIX) + TOKEN_PREFIX.length()).trim() :
token.trim()).getBody();
.build().parseClaimsJws(getTokenString(token)).getBody();
} catch (Exception e) {
throw new AccessException("parse user info from token failed :" + token);
}
return claims;
}
@NotNull
private static String getTokenString(String token) {
return token.startsWith(TOKEN_PREFIX) ? token.substring(token.indexOf(TOKEN_PREFIX)
+ TOKEN_PREFIX.length()).trim() : token.trim();
}
private String generate(Map<String, Object> claims, String appKey) {
return toTokenString(claims, appKey);
}

View File

@@ -253,6 +253,16 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-chatglm</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--langchain4j-->
<dependency>
<groupId>com.hankcs</groupId>

View File

@@ -10,13 +10,13 @@ import lombok.Setter;
@Setter
class EmbeddingStoreProperties {
private String uri;
private String host;
private Integer port;
private String collectionName;
private Integer dimension;
private IndexType indexType;
private MetricType metricType;
private String uri;
private String token;
private String username;
private String password;

View File

@@ -1,19 +1,19 @@
package dev.langchain4j.milvus.spring;
import static dev.langchain4j.milvus.spring.Properties.PREFIX;
import dev.langchain4j.store.embedding.EmbeddingStoreFactory;
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.milvus.spring.Properties.PREFIX;
@Configuration
@EnableConfigurationProperties(Properties.class)
public class MilvusAutoConfig {
@Bean
@ConditionalOnProperty(PREFIX + ".embedding-store.base-url")
@ConditionalOnProperty(PREFIX + ".embedding-store.url")
EmbeddingStoreFactory milvusChatModel(Properties properties) {
return new MilvusEmbeddingStoreFactory(properties);
}

15
pom.xml
View File

@@ -38,7 +38,7 @@
<pagehelper.spring.version>2.1.0</pagehelper.spring.version>
<mybatis.version>3.5.3</mybatis.version>
<lombok.version>1.18.20</lombok.version>
<guava.version>20.0</guava.version>
<guava.version>32.0.0-jre</guava.version>
<hanlp.version>portable-1.8.3</hanlp.version>
<hadoop.version>2.7.2</hadoop.version>
<jackson.version>2.11.2</jackson.version>
@@ -47,7 +47,7 @@
<org.testng.version>6.13.1</org.testng.version>
<yaml.utils.version>2.14.1</yaml.utils.version>
<transmittable.thread.local.version>2.12.1</transmittable.thread.local.version>
<jjwt.version>0.9.1</jjwt.version>
<jjwt.version>0.12.3</jjwt.version>
<alibaba.druid.version>1.2.3</alibaba.druid.version>
<mysql.connector.java.version>5.1.46</mysql.connector.java.version>
<mybatis.plus.version>3.1.2</mybatis.plus.version>
@@ -225,6 +225,17 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-chatglm</artifactId>
<version>${langchain4j.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<!---langchain4j-->
<dependency>
<groupId>org.springframework.boot</groupId>