GPT生产实践之定制化翻译

GPT生产实践之定制化翻译

GPT除了能用来聊天以外,其实功能非常强大,但是我们如何把它运用到生产实践中去,为公司带来价值呢?下面一个使用案例--使用gpt做专业领域定制化翻译

思路:

  • 定制化:有些公司词条的翻译我们想要定制翻译成公司的slogn简称,比如运去哪翻译成YQN,这在其他翻译引擎里面是没办法实现的,但是使用gpt我们只需要给定这个上下文就可以实现全文带有运去哪的都翻译成YQN
  • 领域化:有些词条在不同的领域翻译的结果也不同,使用专门的翻译软件也要做很多前置操作才能使用到,但是使用GPT,只要一句话限定他的身份,就可以得到专业的领域翻译结果

理论存在,开始实践

1、maven api选用

想要使用GPT的服务,当然避不开调用openAi的接口了,但是官方的api调用一般都比较负责且因为语言不通上手比较难,这时候就可以寻找合适的封装api工具,比如githuab 2k+ 的一个工具,开箱即用非常方便,当然也可以使用其他的,不影响

git地址:

GitHub - Grt1228/chatgpt-java: ChatGPT Java SDK支持流式输出、Gpt插件、联网。支持OpenAI官方所有接口。ChatGPT的Java客户端。OpenAI GPT-3.5-Turb GPT-4 Api Client for Java

maven坐标

xml 复制代码
<!--    chatGpt-->
    <dependency>
      <groupId>com.unfbx</groupId>
      <artifactId>chatgpt-java</artifactId>
      <version>1.0.15</version>
    </dependency>

测试:

java 复制代码
public class Test {
    public static void main(String[] args) {
        OpenAiClient openAiClient = OpenAiClient.builder()
                .apiKey(Arrays.asList("sk-********","sk-********"))
                //自定义key的获取策略:默认KeyRandomStrategy
                //.keyStrategy(new KeyRandomStrategy())
                .keyStrategy(new FirstKeyStrategy())
                //自己做了代理就传代理地址,没有可不不传
//                .apiHost("https://自己代理的服务器地址/")
                .build();
                //聊天模型:gpt-3.5
        Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
        ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build();
        ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion);
        chatCompletionResponse.getChoices().forEach(e -> {
            System.out.println(e.getMessage());
        });
    }
}

2、翻译转换

gpt 只要你和他说清楚,就可以实现你想要的任何结构,

比方说你可以强调给他一个List集合的Json,让他给我们返回一个map结构的Json,这样在我们拿到结果之后将其反序列化为Map,

复制代码
我把要翻译的词条封装成一个JSON格式的集合,你以JSON格式的Map返回给我,key是我给你的词条,value是对应的翻译,词条是:"+ JSONUtil.toJsonString(originContentList) +",只返回结果,不要有任何描述

拿到结果之后:

java 复制代码
if (CollectionUtils.isNotEmpty(chatCompletionResponse.getChoices())) {
            ChatChoice chatChoice = chatCompletionResponse.getChoices().get(0);
            //获取返回结果
            Message resMes = chatChoice.getMessage();
            if (resMes == null) {
                throw new ApplicationException("返回结果为空");
            }

            try {
                result = JSONUtil.toMap(resMes.getContent());
            } catch (Exception e) {
                Loggers.BIZ.error(e,"内容解析异常,GPT返回非标准的JSON", JSONUtil.toJsonString(originContentList));
                throw new RuntimeException(e);
            }
        }

这样就可以通过getKey拿到给定词条的翻译值。

相关推荐
编程(变成)小辣鸡5 分钟前
JVM、JRE和JDK 的关系
java·开发语言·jvm
lbb 小魔仙16 分钟前
【Java】Spring Cloud 微服务系统搭建:核心组件 + 实战项目,一步到位
java·spring cloud·微服务
a程序小傲24 分钟前
得物Java面试被问:流批一体架构的实现和状态管理
java·开发语言·数据库·redis·缓存·面试·架构
勇气要爆发25 分钟前
【AI扫盲】大模型(LLM)原理详解:从 DeepSeek 到 GPT-5 全面解析 (2026最新版)
人工智能·gpt·机器学习·llm·微调·多模态·预训练
黎雁·泠崖28 分钟前
Java继承:成员变量访问(就近原则+this/super用法)
java·开发语言
别或许40 分钟前
python中的异步调用(直接使用教程)
java·前端·python
CodeAmaz1 小时前
文件断点续传完整方案
java·文件断点上传
像少年啦飞驰点、1 小时前
零基础入门 Spring Boot:从‘Hello World’到可部署微服务的完整学习路径
java·spring boot·web开发·编程入门·后端教程
m0_748248651 小时前
C++正则表达式攻略:从基础到高级应用
java·c++·正则表达式
墨雨晨曦881 小时前
leedcode刷题总结
java·开发语言