在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1715|回复: 6

[原创] 使用GPT实现python调用chatgpt翻译pdf,全程GPT完成

[复制链接]
发表于 2023-7-29 09:11:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 movit 于 2023-7-29 09:15 编辑

阅读英文内容,不仅仅是想要得到翻译,还想要提取文本中的固定搭配和一些词汇,使用翻译软件肯定是不行的,使用gpt等需要手动复制粘贴到对话框,所以有了用脚本调用chatgpt,自动处理pdf,实现翻译/固定搭配提取/词汇提取工作。


Phind是一款为开发者打造的AI引擎,最近引进了GPT模型和辅助编程功能。https://www.phind.com/

Phind准确来说应该是GPT4模型,不负所望,最终写出了python脚本实现上面的需求。

下面是GPT写的代码,python解析pdf文本,最终翻译后的内容导出为markdown格式,附件pdf有和GPT互动的过程。







  1. import openai
  2. import sys
  3. from PyPDF2 import PdfReader

  4. # Set your OpenAI API key
  5. openai.api_key = 'your-api-key'

  6. def parse_pdf(file):
  7.     with open(file, 'rb') as file:
  8.         pdf = PdfReader(file)
  9.         text = ''
  10.         for page in pdf.pages:
  11.             text += page.extract_text()
  12.     return text

  13. def translate_and_analyze_text(text):
  14.     model = "gpt-3.5-turbo"
  15.     prompt_message = {
  16.         'role': "system",
  17.         'content': """
  18. 角色:你是一个英语学习助手。

  19. 作为翻译器请将以下文本进行英中翻译,简化版英文文本,固定搭配解释和单词提取。
  20.         """
  21.     }

  22.     user_message = {
  23.         'role': 'user',
  24.         'content': text
  25.     }

  26.     messages = openai.ChatCompletion.create(
  27.         model=model,
  28.         messages=[prompt_message, user_message]
  29.     )
  30.    
  31.     response_message = messages['choices'][0]['message']['content']

  32.     return response_message

  33. def transform_text(text):
  34.     # Split the text into paragraphs by empty lines
  35.     paragraphs = text.split('\n\n')

  36.     # Translate and analyze each paragraph separately
  37.     result = ''
  38.     for paragraph in paragraphs:
  39.         result += translate_and_analyze_text(paragraph) + '\n\n'

  40.     return result

  41. def main():
  42.     if len(sys.argv) != 2:
  43.         print("Usage: python translate.py filename.pdf")
  44.         sys.exit(1)

  45.     filename = sys.argv[1]  # get the file name from the command line argument
  46.     raw_text = parse_pdf(filename)

  47.     # Use the transform_text function to translate and analyze text paragraph by paragraph
  48.     result = transform_text(raw_text)

  49.     output_filename = filename.rsplit('.', 1)[0] + '.md'  # replace .pdf with .md
  50.     with open(output_filename, 'w') as f:
  51.         f.write(result)

  52. if __name__ == "__main__":
  53.     main()



复制代码



Snipaste_2023-07-29_09-15-27.png

Code copilot with GPT4 Phind.pdf

3.76 MB, 下载次数: 16 , 下载积分: 资产 -2 信元, 下载支出 2 信元

互动过程

TE.pdf

16.36 KB, 下载次数: 9 , 下载积分: 资产 -2 信元, 下载支出 2 信元

需要翻译的文本

TE MD.pdf

185.85 KB, 下载次数: 11 , 下载积分: 资产 -2 信元, 下载支出 2 信元

翻译后的文件

 楼主| 发表于 2023-7-29 09:12:18 | 显示全部楼层
附件怎样设置0信元下载?
发表于 2023-7-29 09:42:00 | 显示全部楼层
多謝,感恩。
发表于 2023-8-9 10:46:10 | 显示全部楼层
具体怎么实现啊
 楼主| 发表于 2023-8-9 12:25:20 | 显示全部楼层


bwzp57 发表于 2023-8-9 10:46
具体怎么实现啊


附件有一份code coplilot with GPT4 phind,有和GPT对话的过程
发表于 2023-8-23 20:04:24 | 显示全部楼层
非常有用,楼主很给力啊
发表于 2023-9-22 21:29:11 | 显示全部楼层
这个看起来不错啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 23:15 , Processed in 0.029106 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表