AI办公自动化:用通义千问批量翻译长篇英语TXT文档

在deepseek中输入提示词:

你是一个Python编程专家,现在要完成一个编写基于qwen-turbo模型API和dashscope库的程序脚本,具体步骤如下:

打开文件夹:F:\AI自媒体内容\待翻译;

获取里面所有TXT文档;

读取TXT文档内容;

将每个TXT文档的内容作为输入,并在调用API时附加提示语“翻译成中文”,API Key为:XXX,model为qwen-turbo;

接收API返回的结果,并将其保存到在同一文件夹中,文件标题名为原txt文件标题名加上“翻译”,文档格式为txt文档;

注意:

每一步都要打印相关的信息;

根据API的限流和请求要求,合理安排任务的发送频率,避免触发API的速率限制;

要有错误处理和调试信息,这有助于找出问题所在;

请求的输入长度范围应当在[1, 6000]之间,如果超长,需要对TXT内容分拆成多份,使单个输入内容不超过6000个字符,然后再一个个发送至API,接收API返回的结果,将之前分拆的内容按顺序整合在一起。;

在读取文件时跳过那些以"翻译.txt"结尾的文件,避免递归地处理同一个文件夹下的所有文件,包括已经生成的翻译文件;

在文件的开始处添加以下导入语句:from http import HTTPStatus;

在将某个部分的结果拼接到翻译结果列表时,可能会出现预期的字符串类型与实际的类型不匹配,确保在拼接翻译结果列表时,列表中的每个元素都是字符串类型;

API 返回是JSON 对象,其中包含了文本内容,需要对 JSON 对象进行解析,以提取出 text 字段中的文本内容。

qwen-turbo模型API的使用方法,请参照下面这个例子:

from http import HTTPStatus

import dashscope

def sample_sync_call():

prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'

resp = dashscope.Generation.call(

model='qwen-turbo',

prompt=prompt_text

)

# The response status_code is HTTPStatus.OK indicate success,

# otherwise indicate request is failed, you can get error code

# and message from code and message.

if resp.status_code == HTTPStatus.OK:

print(resp.output) # The output text

print(resp.usage) # The usage information

else:

print(resp.code) # The error code.

print(resp.message) # The error message.

sample_sync_call()

Deepseek生成的源代码:

from http import HTTPStatus

import os

import dashscope

import json

# 设置API Key

dashscope.api_key = 'XXX'

def translate_text(text):

prompt_text = f"翻译成中文: {text}"

resp = dashscope.Generation.call(

model='qwen-turbo',

prompt=prompt_text

)

if resp.status_code == HTTPStatus.OK:

return resp.output['text']

else:

print(f"Error: {resp.code} - {resp.message}")

return None

def process_file(file_path):

with open(file_path, 'r', encoding='utf-8') as file:

content = file.read()

if len(content) > 6000:

# Split content into chunks

chunks = [content[i:i+6000] for i in range(0, len(content), 6000)]

translated_chunks = []

for chunk in chunks:

translated_chunk = translate_text(chunk)

if translated_chunk:

translated_chunks.append(translated_chunk)

else:

print(f"Failed to translate chunk from file: {file_path}")

return

translated_content = ''.join(translated_chunks)

else:

translated_content = translate_text(content)

if translated_content:

translated_file_path = file_path.rsplit('.', 1)[0] + '翻译.txt'

with open(translated_file_path, 'w', encoding='utf-8') as translated_file:

translated_file.write(translated_content)

print(f"Translated file saved: {translated_file_path}")

else:

print(f"Failed to translate file: {file_path}")

def main():

folder_path = 'F:\\AI自媒体内容\\待翻译'

for filename in os.listdir(folder_path):

if filename.endswith('.txt') and not filename.endswith('翻译.txt'):

file_path = os.path.join(folder_path, filename)

print(f"Processing file: {file_path}")

process_file(file_path)

if __name__ == "__main__":

main()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【博弈】843. 猜猜这个单词

本题涉及知识点 博弈 LeetCode843. 猜猜这个单词 给你一个由 不同 字符串组成的单词列表 words ,其中 words[i] 长度均为 6 。words 中的一个单词将被选作秘密单词 secret 。 另给你一个辅助对象 Master ,你可以调用 Master.guess(word) 来猜单词&…

APS-SCM联动:开创生产调度与供应链管理新篇章

在当今激烈的市场产品竞争环境下,企业不仅需要灵活高效的内部生产流程,更需具备对外部环境快速响应的能力,从而保证产品保质保量的生产完成,快速占据更多的市场份额。正是在这样的背景下,APS(Advanced Plan…

从社交网络到元宇宙:Facebook的战略转型

随着科技的迅猛发展和数字化时代的深入,社交网络已不再局限于简单的信息交流和社交互动,而是逐步向更广阔、更深远的虚拟现实空间——元宇宙(Metaverse)转变。作为全球最大的社交网络平台之一,Facebook正在积极推动这一…

JS安全应用

JS应用 常见分析调试: -代码全局搜索 案例 登录框,可以看到发送用户名密码被JS加密 搜索Username,找到加密地方 logindata.UserName encodeURI(encrypt.encrypt(numMobile));logindata.Mobile encodeURI(encrypt.encrypt(numMobile));…

Python将Markdown格式转为HTML:轻松实现博客文章的自动化处理

哈喽,大家好,我是木头左! 引言 编写一篇高质量的博客文章并非易事,尤其是在排版和格式方面。Markdown作为一种轻量级的标记语言,为博主们提供了一种简洁、高效的写作方式。而Python作为一门强大的编程语言&#xff0c…

SpringBoot的入门案例

1、创建一个Maven工程 2、点击设置自动导入jar包 3、导入spring boot需要的依赖 打开sping boot的文档 导入依赖的pom.xml配置内容 4、创建一个spring boot的执行入口程序 5、写controller,service,dao的页面逻辑代码 6、测试,运行工程&#…

Repetition Improves Language Model Embeddings论文阅读笔记

文章提出了一种提高decoder-only LLM的embedding能力的方法,叫echo embeddingslast-token pooling(即直接选最后一个token作为句子的embedding)和直接mean pooling都不如文章提出的echo embedding,做法是把句子重复两次&#xff0…

Ardupilot开源代码之ExpressLRS性能实测方法

Ardupilot开源代码之ExpressLRS性能实测方法 1. 源由2. 测试效果3. 测试配置4. 总结5. 参考资料6. 补充 1. 源由 之前一直在讨论ExpressLRS性能的问题,有理论、模拟、实测。 始终缺乏完整的同一次测试的测试数据集,本章节将介绍如何在Ardupilot上进行获…

【Redis】内存回收和内存淘汰机制

1 概念 Redis 所有的数据都是存储在内存中的, 如果不进行任何的内存回收, 那么很容易出现内存爆满的情况。因此,在某些情况下需要对占用的内存空间进行释放。 Redis 中内存的释放主要分为两类 Redis 中内存的释放主要分为两类: 内存回收: 将过期的 key 清除&#…

算法训练与程序竞赛题目集合(L1)

目录 L1-001 Hello World! 输入格式: 输出格式: L1-002 打印沙漏 输入格式: 输出格式: 输入样例: 输出样例: L1-003 个位数统计 输入格式: 输出格式: 输入样例: 输出样例: L1-004 计算摄氏温度 输入格式: 输出格式…

[保姆级教程]uniapp实现页面路由配置

文章目录 新建目录新建页面配置页面路由修改tabBar地址其他:在package.json中的pages配置详细 新建目录 先点击src–》新建–》目录 输入名称,并以此类推完成所有新建目录 新建页面 右击目录,点击新建–》vue文件 弹出弹框,…

【HTTPS】Wireshark导入密钥文件后仍无法解密https报文

个人搭建了一个HTTPS网站后,想通过Wireshark抓包https报文并解密。在本站查询了大量文章后,发现介绍的方法基本就分两步: 1、在本地Windows系统上新增系统环境变量"SSLKEYLOGFILE",保存Chrome浏览器访问网站时使用的密…

SpringMVC系列五: SpringMVC映射请求数据

SpringMVC映射请求数据 💞获取参数值说明应用实例 💞获取http请求消息头💞获取JavaBean对象使用场景说明应用实例注意事项和细节 💞获取servlet api说明应用实例注意事项和细节 上一讲, 我们学习的是SpringMVC系列四: Rest-优雅的…

Intelij IDEA中Mapper.xml无法构建到资源目录的问题

问题场景: 在尝试把原本在eclipse上的Java Web项目转移至Intelij idea上时,在配置文件均与eclipse一致的情况下出现了如下报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.umbrella.crm_core.…

基于python的三维装箱可视化

背景介绍 本文主要介绍两种基于python的三维装箱可视化能力,第一种是基于mpl_toolkits的静态三维可视化代码,另外一种是基于matplotlib的动态可视化代码。 mpl_toolkits实现 Axes3D简介 mpl_toolkits 是 matplotlib 库的一个模块集合,它包…

STM32单片机USART串口详解

文章目录 1. 通信接口概述 2. 串口通信 3. 硬件电路 4. 电平标准 5. 串口参数及时序 5.1 数据帧的组成 5.2 起始位 5.3 数据位 5.4 校验位 5.5 停止位 5.6 波特率 5.7 数据帧传输过程示例 6. 串口时序 7. USART概述 8. USART框图 9. USART基本结构 10. 数据帧…

【DevOps】Kibana:数据可视化与探索的强大工具

目录 1、Kibana的基本概念 1.1 Elasticsearch集成 1.2 可视化类型 1.3 仪表板 2、 Kibana的主要功能 2.1 数据探索 2.2 可视化分析 2.3 仪表板管理 2.4 日志分析 2.5 监控与警报 3、 Kibana的使用场景 3.1 应用性能监控(APM) 3.2 安全信…

初始化一个Android项目时,Android Studio会自动生成一些文件和目录结构,以帮助你快速上手开发

当你初始化一个Android项目时,Android Studio会自动生成一些文件和目录结构,以帮助你快速上手开发。这些文件和目录各自有其特定的功能和用途。下面我为你解释一下这些自动生成的内容: 1. app 目录 这是你的应用模块的根目录,包…

27、matlab傅里叶变换:fft()函数

1、傅里叶变换简介 傅里叶变换是数学中一种非常重要的工具,用于将一个函数(通常是时域函数)分解成一组正弦和余弦函数的和。通过傅里叶变换,可以将一个信号从时域转换到频域,以便更好地理解信号的频率成分和频谱特征。…

MySQL 的故事:一场 SQL 语句的戏剧演绎

本文由 ChatMoney团队出品 第一幕:解析与优化 - “翻译官与谋士” SQL 解析器是第一个上场的角色,任务就是把 SQL 请求翻译成 MySQL 能听懂的语言。就像你点餐时,服务员得听懂你到底要什么菜。不然你说“我要一盘炒青菜”,结果服…