专栏名称: Dance with GenAI
关于生成式人工智能AIGC的一切
目录
相关文章推荐
直播海南  ·  警惕!广东爆发2起,均在学校! ·  昨天  
直播海南  ·  蒋超良被查! ·  2 天前  
直播海南  ·  大桥通车1年多开裂?官方通报 ·  2 天前  
直播海南  ·  事关电动自行车以旧换新补贴!最新提醒→ ·  3 天前  
51好读  ›  专栏  ›  Dance with GenAI

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

Dance with GenAI  · 公众号  ·  · 2024-06-19 07:04

正文

在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}")







请到「今天看啥」查看全文