【Java-LangChain:面向开发者的提示工程-6】文本转换

第六章 文本转换

LLM非常擅长将输入转换成不同的格式,典型应用包括多语种文本翻译、拼写及语法纠正、语气调整、格式转换等。
本章节将介绍如何使用编程的方式,调用API接口来实现“文本转换”功能。

环境配置

参考第二章的 环境配置小节内容即可。

文本翻译

中文转西班牙语

String prompt = "将以下中文翻译成西班牙语: \n" +"```您好,我想订购一个搅拌机。```";String message = this.getCompletion(prompt);log.info("iterative1:\n{}", message);
Hola, me gustaría ordenar una batidora.

识别语种

String prompt = "请告诉我以下文本是什么语种: \n" +"```Combien coûte le lampadaire?```";String message = this.getCompletion(prompt);log.info("iterative2:\n{}", message);
这段文本是法语。

多语种翻译

String prompt = "请将以下文本分别翻译成中文、英文、法语和西班牙语:\n" +"```I want to order a basketball.```";String message = this.getCompletion(prompt);log.info("iterative3:\n{}", message);
中文:我想订购一个篮球。
英文:I want to order a basketball.
法语:Je veux commander un ballon de basket.
西班牙语:Quiero pedir una pelota de baloncesto.

同时进行语气转换

        String prompt = "请将以下文本翻译成中文,分别展示成正式与非正式两种语气:\n" +"```Would you like to order a pillow?```";String message = this.getCompletion(prompt);log.info("iterative4:\n{}", message);
正式语气:您是否需要订购一个枕头?
非正式语气:你想要订购一个枕头吗?

通用翻译器

随着全球化与跨境商务的发展,交流的用户可能来自各个不同的国家,使用不同的语言,因此我们需要一个通用翻译器,识别各个消息的语种,并翻译成目标用户的母语,从而实现更方便的跨国交流。

         for (String issue : messages) {String prompt = "告诉我以下文本是什么语种,直接输出语种,如法语,无需输出标点符号: ```{" + issue + "}```";String lang = this.getCompletion(prompt);log.info("\n原始消息: ({}) {}", lang, issue);String prompt2 = "将以下消息分别翻译成英文和中文,并写成\n" +"    中文翻译:xxx\n" +"    英文翻译:yyy\n" +"    的格式:\n" +"    ```{" + issue + "}```";String str = this.getCompletion(prompt2);log.info("\n{}\n================================================================================================", str);}
原始消息: (法语) La performance du système est plus lente que d'habitude.
中文翻译:系统的性能比平时慢。
英文翻译:The performance of the system is slower than usual.
================================================================================================
原始消息: (西班牙语) Mi monitor tiene píxeles que no se iluminan.
中文翻译:我的显示器有一些像素点不亮。
英文翻译:My monitor has pixels that do not light up.
================================================================================================
原始消息: (意大利语) Il mio mouse non funziona
中文翻译:我的鼠标不工作。
英文翻译:My mouse is not working.
================================================================================================
原始消息: (波兰语) Mój klawisz Ctrl jest zepsuty
中文翻译:我的Ctrl键坏了
英文翻译:My Ctrl key is broken
================================================================================================
原始消息: (中文) 我的屏幕在闪烁
中文翻译:我的屏幕在闪烁
英文翻译:My screen is flickering
================================================================================================

语气与写作风格调整

写作的语气往往会根据受众对象而有所调整。例如,对于工作邮件,我们常常需要使用正式语气与书面用词,而对同龄朋友的微信聊天,可能更多地会使用轻松、口语化的语气。

        String prompt = "将以下文本翻译成商务信函的格式:\n" +"```小老弟,我小羊,上回你说咱部门要采购的显示器是多少寸来着?```";String message = this.getCompletion(prompt);log.info("iterative6:\n{}", message);
尊敬的先生/女士,我是小羊,我们上次讨论过我们部门需要采购的显示器尺寸是多少。请问您还记得吗?谢谢您的合作。祝好,小羊

文件格式转换

ChatGPT非常擅长不同格式之间的转换,例如JSON到HTML、XML、Markdown等。在下述例子中,我们有一个包含餐厅员工姓名和电子邮件的列表的JSON,我们希望将其从JSON转换为HTML。

        String json = "{ \"resturant employees\" :[\n" +"        {\"name\":\"Shyam\", \"email\":\"shyamjaiswal@gmail.com\"},\n" +"        {\"name\":\"Bob\", \"email\":\"bob32@gmail.com\"},\n" +"        {\"name\":\"Jai\", \"email\":\"jai87@gmail.com\"}\n" +"]}";String prompt = "将以下JSON转换为HTML表格,保留表格标题和列名:" + json + "";String message = this.getCompletion(prompt);log.info("iterative7:\n{}", message);

输出:

<!DOCTYPE html>
<html>
<head><title>Restaurant Employees</title>
</head>
<body><table><caption>Restaurant Employees</caption><thead><tr><th>Name</th><th>Email</th></tr></thead><tbody><tr><td>Shyam</td><td>shyamjaiswal@gmail.com</td></tr><tr><td>Bob</td><td>bob32@gmail.com</td></tr><tr><td>Jai</td><td>jai87@gmail.com</td></tr></tbody></table>
</body>
</html>

拼写及语法纠正

拼写及语法的检查与纠正是一个十分常见的需求,特别是使用非母语语言,例如,在论坛发帖时,或发表英文论文时,校对是一件十分重要的事情。
下述例子给定了一个句子列表,其中有些句子存在拼写或语法问题,有些则没有,我们循环遍历每个句子,要求模型校对文本,如果正确则输出“未发现错误”,如果错误则输出纠正后的文本。

综合样例

下述例子展示了同一段评论,用一段prompt同时进行文本翻译+拼写纠正+风格调整+格式转换。

String text = "Got this for my daughter for her birthday cuz she keeps taking mine from my room.  Yes, adults also like pandas too.  She takes it everywhere with her, and it's super soft and cute.  " +"One of the ears is a bit lower than the other, and I don't think that was designed to be asymmetrical. It's a bit small for what I paid for it though. I think there might be other options that are bigger for the same price.  " +"It arrived a day earlier than expected, so I got to play with it myself before I gave it to my daughter.";String prompt = "针对以下三个反引号之间的英文评论文本,\n" +"首先进行拼写及语法纠错,\n" +"然后将其转化成中文,\n" +"再将其转化成优质淘宝评论的风格,从各种角度出发,分别说明产品的优点与缺点,并进行总结。\n" +"润色一下描述,使评论更具有吸引力。\n" +"输出结果格式为:\n" +"【优点】xxx\n" +"【缺点】xxx\n" +"【总结】xxx\n" +"注意,只需填写xxx部分,并分段输出。\n" +"将结果输出成Markdown格式。\n" +"```{" + text + "}```";String message = this.getCompletion(prompt);log.info("iterative8:\n{}", message);
【优点】- 这个毛绒玩具非常柔软可爱,我女儿生日时我给她买了这个,因为她总是从我的房间拿走我的玩具。- 它非常适合携带,我女儿带着它到处走,而且它超级软和可爱。- 它比我预期的早了一天送到,所以我在送给女儿之前还能自己玩一下。【缺点】- 其中一只耳朵比另一只低一些,我不认为这是设计上的不对称。- 对于我支付的价格来说,它有点小了。我认为可能有其他同样价格但更大的选择。【总结】这个毛绒玩具非常适合作为生日礼物,它柔软可爱,适合携带。然而,它的大小可能不符合一些人的期望,并且存在一些不对称的问题。如果你在寻找同样价格但更大的选项,可能需要考虑其他产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java复习回顾

文章目录 0 开发工具1. 对象和类、三大特性2. 成员/实例变量和实例变量&#xff08;this关键字&#xff09;3. 方法重载overload4. 构造方法和this关键字5. 继承6. 访问修饰符7. 方法重写8. 继承下的构造执行9. 多态9.1 向上转型9.2 向下转型9.3 多态的应用 0 开发工具 Maven是…

Acwing 907. 区间覆盖

Acwing 907. 区间覆盖 知识点题目描述思路讲解代码展示 知识点 贪心 题目描述 思路讲解 代码展示 #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n;struct Range {int l, r;bool operator < (const Range &W) …

分页前后端完整代码

一、后端代码 User实体类要继承PageVo package com.like.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.like.common.PageVo; import…

借助ChatGPT的神奇力量,解锁AI无限可能!

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

计算机毕业设计 基于SSM的宿舍管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

时间序列-AR模型与MA模型的原理与实现

文章目录 1 自回归模型AR Model1.1 自回归模型 vs 多元线性回归模型1.1.1 线性回归1.1.2 AR(1)模型1.1.3 AR(p)模型 1.2 AR建模问题 2 移动平均模型 MA Model2.1 MA模型的数学表示2.1.1 MA(1)模型2.2.2 MA(q)模型 2.2 MA建模问题 ARIMA模型是AR模型&#xff08;自回归模型&…

使用 Python 给 PDF 添加目录书签

0、库的选择——pypdf 原因&#xff1a;Python Version Support Python 3.11 3.10 3.9 3.8 3.7 3.6 2.7 pypdf>3.0 YES YES YES YES YES YES PyPDF2>2.0 YES YES YES YES YES YES PyPDF2 1.20.0 - 1.28.4 YES YES YES YES YES YES P…

c语言练习74: 分割数组中数字的数位

分割数组中数字的数位 题⽬描述&#xff1a; 给你⼀个正整数数组 nums &#xff0c;请你返回⼀个数组 answer &#xff0c;你需要将 nums 中每个整数进⾏数位 分割后&#xff0c;按照 nums 中出现的 相同顺序 放⼊答案数组中。 对⼀个整数进⾏数位分割&#xff0c;指的是将整…

91、Redis - 事务 与 订阅-发布 相关的命令 及 演示

★ 事务相关的命令 Redis事务保证事务内的多条命令会按顺序作为整体执行&#xff0c;其他客户端发出的请求绝不可能被插入到事务处理的中间&#xff0c; 这样可以保证事务内所有命令作为一个隔离操作被执行。 Redis事务同样具有原子性&#xff0c;事务内所有命令要么全部被执…

2、【第一步】Qlib安装

Qlib安装 Qlib同时支持Windows和Linux。建议在Linux中使用Qlib。Qlib支持Python3,最高支持到Python3.8。 用户可以按照以下命令通过 pip 轻松安装 Qlib: pip install pyqlib同样,用户也可以按照以下步骤通过源代码安装 Qlib: 进入Qlib的根目录。然后,请执行以下命令来安装…

2024北京智慧养老展,北京养老应用软件展,北京陪护机器人展

2024第11届中国&#xff08;北京&#xff09;国际智慧养老产业展览会 The 2024 China (Beijing) international pension Industry Exhibition 时间&#xff1a;2024年04月10日—12日 展馆&#xff1a;北京亦创国际会展中心 承办&#xff1a;北京联诚国际展览有限公司 大会概要…

年度顶级赛事来袭:2023 CCF大数据与计算智能大赛首批赛题上线!

久等了&#xff01; 大数据与人工智能领域年度顶级盛事——2023 CCF大数据与计算智能大赛——首批赛题已上线&#xff0c;大赛火力全开&#xff0c;只等你来挑战&#xff01; 大赛介绍 CCF大数据与计算智能大赛&#xff08;CCF Big Data & Computing Intelligence Contes…

深入学习git

1、git原理及整体架构图 一些常用的命令 git add . 或 git add src/com/ygl/hello/hello.java 指定文件 git commit . 或 git commit src/com/ygl/hello/hello.java 指定文件 git push origin 分支名称 2、git stash的应用场景 场景一&#xff1a;你正在当前分支A开发&…

CA(openssl)

目录 创建私有CA 1、创建CA所需要的文件 2、生成CA私钥 3、生成CA自签名证书 申请证书并颁发证书 1、为需要使用证书的主机生成私钥 2、为需要使用证书的主机生成证书申请文件 3、在CA签署证书并将证书颁发给请求者 改变检查策略 4、查看证书中的信息 5、index.txt和…

多目标平衡黏菌算法(MOEOSMA)求解八个现实世界受约束的工程问题

目录 1 受约束的工程问题 1.1 减速器设计问题(Speed reducer design problem) 1.2 弹簧设计问题(Spring design problem) 1.3 静压推力轴承设计问题(Hydrostatic thrust bearing design problem) 1.4 振动平台设计问题(Vibrating platform design problem) 1.5 汽车侧面碰…

云安全【阿里云ECS攻防】

关于VPC的概念还请看&#xff1a;记录一下弹性计算云服务的一些词汇概念 - 火线 Zone-安全攻防社区 一、初始化访问 1、元数据 1.1、SSRF导致读取元数据 如果管理员给ECS配置了RAM角色&#xff0c;那么就可以获得临时凭证 如果配置RAM角色 在获取ram临时凭证的时候&#xff…

铁道货车通用技术条件

声明 本文是学习GB-T 5600-2018 铁道货车通用技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 90 mm90 mm。 B.2 制造要求 B.2.1 车体钢结构组成后&#xff1a; a) 敞车钢质侧、端板的平面度公差应小于或等于15 mm/m; 压型侧、端板的平面度…

python生成中金所期权行权价

参考沪深300股指期权的合约表&#xff0c;写一个工具函数&#xff1a; 使用方法 def get_format_option_gap(value: float, deviation: int 0): # 根据中证1000指数获取点位"""根据标准的行权价&#xff0c;生成不同档位的期权列表&#xff0c;适合中金所:…

[红明谷CTF 2021]write_shell %09绕过过滤空格 ``执行

目录 1.正常短标签 2.短标签配合内联执行 看看代码 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){ 过滤了 木马类型的东西// if(preg_match("/| |_||php/&quo…

代码随想录Day52 | 300. 最长递增子序列 | 674. 最长连续递增序列 | 718. 最长重复子数组

300. 最长递增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() < 1) return nums.size();vector<int> f(nums.size(), 1);int result 0;for (int i 1; i < nums.size(); i) {for (int j 0; j < i; j) {if (n…