飞桨环境运行Word翻译代码

准备:

  • OpenAI Key
  • api代理域名(cloudflare搭建)
  • 百度飞桨AIStudio账号
  • 准备翻译的Word文件

和ChatGPT私聊获得代码

import requests
from docx import Document
from docx.shared import Pt
from concurrent.futures import ThreadPoolExecutor
from tqdm import tqdm

def chatgpt(prompt):
    h = {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer Openai密钥'
    }
    d = {
        "model": "text-davinci-003",
        "prompt": prompt,
        "max_tokens": 1000,
        "temperature": 0
    }
    u = 'https://网址/v1/completions'
    r = requests.post(url=u, headers=h, json=d, verify=True, timeout=30).json()
    if 'choices' in r:
        return r['choices'][0]['text']

# Read the Word document
doc = Document('/home/aistudio/[EN]利用数据共享工具实现循环经济:以产品数字护照为例.pdf.docx')

# Create a new Word document to save the translated results
new_doc = Document()

# Create a ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=20)

# Process paragraphs
prompts = [f'Translate the following English text to Chinese: {paragraph.text}' for paragraph in doc.paragraphs]
for prompt, translation in tqdm(zip(prompts, executor.map(chatgpt, prompts)), total=len(prompts)):
    # Add the original text and translation to a new paragraph in the new document, and set paragraph spacing
    new_para = new_doc.add_paragraph()
    new_para.add_run(prompt.replace('Translate the following English text to Chinese: ', ''))
    new_para.space_after = Pt(12)

    new_para = new_doc.add_paragraph()
    new_para.add_run(translation)
    new_para.space_after = Pt(12)

# Process tables
prompts = [f'Translate the following English text to Chinese: {cell.text}' for table in doc.tables for row in table.rows for cell in row.cells]
for prompt, translation in tqdm(zip(prompts, executor.map(chatgpt, prompts)), total=len(prompts)):
    # Add the original text and translation to a new table in the new document
    new_cell = new_doc.add_table(1, 1).cell(0, 0)
    new_cell.text = prompt.replace('Translate the following English text to Chinese: ', '')
    new_cell = new_doc.add_table(1, 1).cell(0, 0)
    new_cell.text = translation

# Save the new document
new_doc.save('[EN]利用数据共享工具实现循环经济:以产品数字护照为例.docx')

在百度飞桨的notebook运行

效果和过程见链接https://aistudio.baidu.com/projectdetail/6708613

得到结果后,还需要调整文本格式,并清理掉AI的胡言乱语。

PS

日常用的话,推荐效果更好的“沉浸式翻译”

本来想继续调试,调用百度文心一言的api(此处使用Dify简化后的API),但千帆平台目前给个人注册用户的QPS只有5,翻译速度很慢,报工单给了客服,说不通过商务经理的话目前只能反馈给项目部。虽然百度在开放api付费token方面已经做的挺好了,但和烧钱扩张的Openai比还是有差距。飞桨Studio虽然不错,但和GoogleColab比起来,在网络环境配置和平台开放性上还是有欠缺。

吐槽结束。。。

关于数据科学家和Python

在YouTube上搜索openai的whistper api使用方法,发现订阅号“大數軟體有限公司”,
给出了详细视频教程:大數軟體有限公司-whistper教程
以及谷歌colab代码,需付费使用openai key:使用openai key的谷歌colab代码文件
同一作者的python课程订阅号“大数学堂”有7个小时的python视频课程。
听了开头数据科学的框架,感觉蛮有意思,用字幕在线工具Downsub和GPT总结记录在下面。

ps:因为作者已经给出了视频字幕,没有使用语音转录的方法

前几分钟字幕的ChatGPT总结:

这段话讨论了数据科学家需要具备的技能和Python语言的优点,以及为什么Python是数据科学家的首选。
1. 数据科学家所需的技能:
Hacking Skill:编程能力是至关重要的,这就是为什么学习Python如此重要。
数学和统计能力:这些能力允许数据科学家解析和理解数据,进行预测和推断。
领域知识:数据科学家需要对他们所在领域有深入的了解,这样他们才能知道如何问出正确的问题并找到有意义的答案。
2. 数据科学家完成工作的三大步骤:
数据分析:这包括统计分析,如单变量分析、多变量分析、变量间的关系等。
数据处理:数据科学家需要收集、存储和清洗数据,这被称为数据清洗或Data Munging。
数据可视化:这意味着将数据转化为图表或其他视觉形式,以便更易理解和传播。
3. Python在数据科学中的角色:
简洁快速的语法:Python的语法简单易学,使得实现复杂的应用变得更容易。
丰富的第三方库:Python有很多第三方库,可以帮助数据科学家更容易地完成任务。
跨平台特性:Python可以在多个平台上运行,包括Windows和Mac。
这段话也提到了一个数据科学家可能遇到的陷阱,即”danger zone”,如果只有领域知识和编程能力,但缺乏数学和统计能力,那么他们可能无法判断他们的推断是否正确,这可能会导致误解。只有将编程能力、数学和统计能力以及领域知识结合在一起,才能成为一个合格的数据科学家。


图片来自Drew Conway数据科学框架博文