当前位置: 首页 > news >正文

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坐标

<!--    chatGpt--><dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version>1.0.15</version></dependency>

测试:

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.5Message 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) +",只返回结果,不要有任何描述

拿到结果之后:

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拿到给定词条的翻译值。

http://www.lryc.cn/news/136788.html

相关文章:

  • SpringMVC入门笔记
  • 如何构建多域名HTTPS代理服务器转发
  • 【Java 高阶】一文精通 Spring MVC - 数据验证(七)
  • 木叶飞舞之【机器人ROS2】篇章_第一节、ROS2 humble及cartorgrapher安装
  • Git版本管理(02)patch操作和分支操作整理
  • 前端需要理解的HTML知识
  • 机器学习笔记 - 数据科学中基于 Scikit-Learn、Tensorflow、Pandas 和 Scipy的7种最常用的特征工程技术
  • 深眸科技创新赋能视觉应用产品,以AI+机器视觉解决行业应用难题
  • 2023年国赛 高教社杯数学建模思路 - 案例:异常检测
  • 【Electron】使用electron-builder打包时下载electron失败或慢的解决方案
  • stm32之16.外设定时器——TIM3
  • vue3自定义指令防止表单重复提交
  • 无涯教程-Perl - wait函数
  • DFMA是一种设计思想与方法论
  • 黑客自学路线
  • 怎么维护自己的电脑
  • ansible(2)-- ansible常用模块
  • 一文了解Gin对Cookie的支持z
  • android外卖点餐界面(期末作业)
  • ArcGIS API开发介绍
  • 大数据课程K5——Spark的框架核心概念
  • 【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点类型
  • 5.6 汇编语言:汇编高效数组寻址
  • uniapp - 实现卡片式胶囊单选后右上角出现 “√“ 对勾对号选中效果功能,适用于小程序h5网页app全平台通用(一键复制组件源码,开箱即用!)
  • 使用Jetpack Compose构建可折叠Card
  • 安卓手机跑 vins slam (1)
  • 腾讯云-对象存储服务(COS)的使用总结
  • kafka复习:(3)自定义序列化器和反序列化器
  • Unity 图片资源的适配
  • 【Axure高保真原型】通过输入框动态控制折线图