专栏名称: Dance with GenAI
关于生成式人工智能AIGC的一切
目录
相关文章推荐
楼主说楼市  ·  曾经以为在做梦,现在真的来了 ·  11 小时前  
楼主说楼市  ·  曾经以为在做梦,现在真的来了 ·  11 小时前  
李楠或kkk  ·  elon musk ... ·  昨天  
十点人物志  ·  拍下5000栋千禧年老楼:站在世纪末,憧憬一 ... ·  2 天前  
十点人物志  ·  拍下5000栋千禧年老楼:站在世纪末,憧憬一 ... ·  2 天前  
股妖姬  ·  数据合成崛起,Grok-3核心受益个股梳理 ·  3 天前  
股妖姬  ·  数据合成崛起,Grok-3核心受益个股梳理 ·  3 天前  
51好读  ›  专栏  ›  Dance with GenAI

用硅基流动SiliconCloud免费AI模型批量翻译word长文档

Dance with GenAI  · 公众号  ·  · 2024-09-24 09:51

正文

现在文件夹中有很多docx英文文档,想用AI大模型批量翻译成中文,可以用硅基流动SiliconCloud来实现,不花一分钱,效果还很好。

翻译可以选择Qwen/Qwen2.5-7B-Instruct,上下文长度32K,可以处理的中文汉字数量大约在2.5万到4万之间,大约3.2万个英文单词或短语。

首先生成API密钥:在“API 密钥”页签 点击“创建新 API 密钥”,并点击复制,以在您的 API 场景中进行使用。

安装 Python 3.7.1 或更高版本并设置虚拟环境后,即可安装 OpenAI Python 库。从终端/命令行运行:pip install --upgrade openai

注意:模型有限速,RPM=1K TPM=50K

在deepseek中输入提示词:

你现在是一个Python编程专家,要调用siliconflow平台的Qwen2.5-7B-Instruct模型来翻译文档,具体步骤如下:

打开文件夹:F:\AI英语学习\openai

读取里面所有的docx文档,里面是英文;

用Qwen2.5-7B-Instruct模型将docx文档翻译成中文;

翻译完后保存为一个新的docx文档,文件名在原docx文件名后面加上“_中文翻译版”

siliconflow平台的基础URL: https:// api.siliconflow.cn/v1

API密钥为:XXX

模型为:Qwen/Qwen2.5-7B-Instruct,上下文长度32K;

提示词为:将下面的英文内容翻译成中文

代码示例:

from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url=" https:// api.siliconflow.cn/v1 ")

response = client.chat.completions.create(

model='alibaba/Qwen1.5-110B-Chat',

messages=[

{'role': 'user', 'content': "抛砖引玉是什么意思呀"}

],

stream=True

)

for chunk in response:

print(chunk.choices[0].delta.content, end='')

注意:模型有限速,RPM=1K TPM=50K

如果 .docx 文档的内容超过模型的上下文长度(32K 字符),模型将无法处理整个文档。为了解决这个问题,我们可以将文档分块处理,确保每个块的长度不超过模型的上下文长度限制。

每一步都要输出信息到屏幕上

Deepseek生成的Python代码:

import os

from openai import OpenAI

from docx import Document

# 设置API密钥和基础URL

api_key = "XXX"

base_url = " https:// api.siliconflow.cn/v1 "

# 初始化OpenAI客户端

client = OpenAI(api_key=api_key, base_url=base_url)

# 定义文件夹路径

folder_path = r"F:\AI英语学习\openai"

# 定义模型的上下文长度限制

MAX_CONTEXT_LENGTH = 32000 # 32K characters

# 遍历文件夹中的所有docx文件

for filename in os.listdir(folder_path):

if filename.endswith(".docx"):

# 读取文档

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

print(f"正在读取文档: {doc_path}")

doc = Document(doc_path)

# 提取文档中的所有段落

paragraphs = [p.text for p in doc.paragraphs]

# 将段落内容拼接成一个字符串

content = "\n".join(paragraphs)

# 分块处理

chunks = []

current_chunk = ""

current_length = 0

for paragraph in paragraphs:

if current_length + len(paragraph) + 1 > MAX_CONTEXT_LENGTH:

chunks.append(current_chunk.strip())

current_chunk = paragraph

current_length = len(paragraph)

else:

if current_chunk:

current_chunk += "\n" + paragraph

else:

current_chunk = paragraph

current_length += len(paragraph) + 1

if current_chunk:

chunks.append(current_chunk.strip())

# 翻译每个块

translated_chunks = []

for i, chunk in enumerate(chunks):

print(f"正在翻译文档: {filename} 的第 {i+1}/{len(chunks)} 块")

response = client.chat.completions.create(

model='Qwen/Qwen2.5-7B-Instruct',

messages=[

{'role': 'user', 'content': f"将下面的英文内容翻译成中文\n{chunk}"}

],

stream=False

)

translated_chunks.append(response.choices[0].message.content)







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