Browse Source

feature-img-1.0:暂存翻译

feature-1.0-img
Penny 3 years ago
parent
commit
5b6bbf4c52
  1. 12
      bnyer-common/bnyer-common-core/pom.xml
  2. 50
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java
  3. 31
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java
  4. 23
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java
  5. 1
      bnyer-services/bnyer-img/pom.xml
  6. 40
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java
  7. 60
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java

12
bnyer-common/bnyer-common-core/pom.xml

@ -135,6 +135,18 @@
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
</dependency> </dependency>
<!--腾讯翻译-->
<!-- <dependency>-->
<!-- <groupId>com.tencentcloudapi</groupId>-->
<!-- <artifactId>tencentcloud-sdk-java-tmt</artifactId>-->
<!-- <version>3.1.744</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.717</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

50
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java

@ -0,0 +1,50 @@
package com.bnyer.common.core.client;
import com.bnyer.common.core.dto.TextTranslateDto;
import com.bnyer.common.core.vo.TextTranslateVo;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.tencentcloudapi.common.AbstractClient;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.JsonResponseModel;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import java.lang.reflect.Type;
/**
* 翻译方法类
*/
public class TmtClient extends AbstractClient {
private static String endpoint = "tmt.tencentcloudapi.com";
private static String service = "tmt";
private static String version = "2018-03-21";
public TmtClient(Credential credential, String region) {
this(credential, region, new ClientProfile());
}
public TmtClient(Credential credential, String region, ClientProfile profile) {
super(TmtClient.endpoint, TmtClient.version, credential, region, profile);
}
/**
* 汉译英
* @param req TextTranslateRequest
* @return TextTranslateResponse
* @throws TencentCloudSDKException
*/
public TextTranslateVo TextTranslate(TextTranslateDto req) throws TencentCloudSDKException {
JsonResponseModel<TextTranslateVo> rsp = null;
String rspStr = "";
try {
Type type = new TypeToken<JsonResponseModel<TextTranslateVo>>() {
}.getType();
rspStr = this.internalRequest(req, "TextTranslate");
rsp = gson.fromJson(rspStr, type);
} catch (JsonSyntaxException e) {
throw new TencentCloudSDKException("response message: " + rspStr + ".\n Error message: " + e.getMessage());
}
return rsp.response;
}
}

31
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java

@ -0,0 +1,31 @@
package com.bnyer.common.core.dto;
import com.tencentcloudapi.common.AbstractModel;
import lombok.Data;
import java.util.HashMap;
/**
* 翻译接收参数类
*/
@Data
public class TextTranslateDto extends AbstractModel {
//翻译文本
private String SourceText;
//源翻译语言
private String Source;
//目标翻译语言
private String Target;
//项目id
private Long ProjectId;
@Override
protected void toMap(HashMap<String, String> hashMap, String s) {
}
}

23
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java

@ -0,0 +1,23 @@
package com.bnyer.common.core.vo;
import lombok.Data;
/**
* 翻译接收响应类
*/
@Data
public class TextTranslateVo {
//翻译后的文本
private String TargetText;
//源翻译语言
private String Source;
//目标翻译语言
private String Target;
//请求id
private String RequestId;
}

1
bnyer-services/bnyer-img/pom.xml

@ -128,6 +128,7 @@
<groupId>com.alipay.sdk</groupId> <groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId> <artifactId>alipay-sdk-java</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>

40
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java

@ -0,0 +1,40 @@
package com.bnyer.img.config;
//import com.bnyer.img.handler.TokenCheckHandler;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
/**
* 腾讯翻译api配置类
* @author chengkun
* @date 2023/4/21 17:43
*/
@Configuration
@ConfigurationProperties(prefix = "translate")
@Getter
@RefreshScope
public class TencentTranslateConfig {
@Value("${translate.url}")
private String url;
@Value("${translate.secretId}")
private String secretId;
@Value("${translate.secretKey}")
private String secretKey;
@Value("${translate.region}")
private String region;
@Value("${translate.projectId}")
private String projectId;
}

60
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java

@ -3,19 +3,24 @@ package com.bnyer.img.service.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.client.TmtClient;
import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.domain.AiPaint; import com.bnyer.common.core.domain.AiPaint;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.TextToImgDto; import com.bnyer.common.core.dto.TextToImgDto;
import com.bnyer.common.core.dto.TextTranslateDto;
import com.bnyer.common.core.utils.TranslateUtils; import com.bnyer.common.core.utils.TranslateUtils;
import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils; import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils;
import com.bnyer.common.core.utils.file.ImageUtils;
import com.bnyer.common.core.vo.TextToImgVo; import com.bnyer.common.core.vo.TextToImgVo;
import com.bnyer.common.core.vo.TextTranslateVo;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.file.api.RemoteFileService; import com.bnyer.file.api.RemoteFileService;
import com.bnyer.img.config.TencentTranslateConfig;
import com.bnyer.img.service.AiPaintService; import com.bnyer.img.service.AiPaintService;
import com.bnyer.img.service.StableDiffusionService; import com.bnyer.img.service.StableDiffusionService;
import com.bnyer.system.api.RemoteSystemFileService; import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -44,25 +49,54 @@ public class StableDiffusionServiceImpl implements StableDiffusionService {
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired
private TencentTranslateConfig tencentTranslateConfig;
private String translate(String text){
try{
Credential cred = new Credential(tencentTranslateConfig.getSecretId(), tencentTranslateConfig.getSecretKey());
// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint(tencentTranslateConfig.getUrl());
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
TmtClient client = new TmtClient(cred, tencentTranslateConfig.getRegion(), clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
TextTranslateDto req = new TextTranslateDto();
req.setSourceText(text);
req.setSource("zh");
req.setTarget("en");
req.setProjectId(Long.parseLong(tencentTranslateConfig.getProjectId()));
// 返回的resp是一个TextTranslateResponse的实例,与请求对象对应
TextTranslateVo resp = client.TextTranslate(req);
return resp.getTargetText();
} catch (TencentCloudSDKException e) {
log.error("调用腾讯api失败"+e.toString());
}
return "";
}
@Override @Override
public TextToImgVo textToImg(TextToImgDto param) { public TextToImgVo textToImg(TextToImgDto param) {
try{ try{
//String prompt = ""; String prompt = "";
//判断prompt是否包含中文,中文则翻译,否则跳过 //判断prompt是否包含中文,中文则翻译,否则跳过
// if(TranslateUtils.isContainChinese(param.getPrompt())){ if(TranslateUtils.isContainChinese(param.getPrompt())){
// //调用翻译api //调用翻译api
// //prompt = prompt = translate(param.getPrompt());
// prompt = param.getPrompt(); }else{
// }else{ prompt = param.getPrompt();
// prompt = param.getPrompt(); }
// } System.out.println(prompt);
//TODO 根据选择的风格来选择模型 //TODO 根据选择的风格来选择模型
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("width",param.getWidth() == null ? 512 : param.getWidth()); map.put("width",param.getWidth() == null ? 512 : param.getWidth());
map.put("height",param.getHeight() == null ? 512 : param.getHeight()); map.put("height",param.getHeight() == null ? 512 : param.getHeight());
//map.put("prompt", prompt); map.put("prompt", prompt);
map.put("prompt", param.getPrompt()); //map.put("prompt", param.getPrompt());
map.put("seed",-1); map.put("seed",-1);
map.put("batch_size",1); map.put("batch_size",1);
map.put("cfg_scale",7); map.put("cfg_scale",7);

Loading…
Cancel
Save