跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > AI大模型探索之路-实战篇1:基于OpenAI智能翻译助手实战落地

AI大模型探索之路-实战篇1:基于OpenAI智能翻译助手实战落地

时间:2024-04-22 17:31:04 来源:网络cs 作者:利杜鹃 栏目:卖家故事 阅读:

标签: 实战  落地  助手  翻译  模型 
阅读本书更多章节>>>>

文章目录

前言一、需求规格描述二、系统架构设计三、技术实施方案四、核心功能说明五、开源技术选型六、代码实现细节1.图形用户界面(GUI)的开发2.大型模型调用的模块化封装3.文档解析翻译结果处理 总结


前言

在全球化的浪潮中,语言翻译需求日益增长。市场上涌现出各式各样的翻译工具和平台,然而,免费的解决方案往往局限于简短文本的翻译。面对长篇文档,用户通常不得不转向付费服务。鉴于大型预训练语言模型(LLMs)在自然语言翻译上的显著优势,利用这些模型打造一款高效、经济的翻译工具,不仅能满足市场需求,同时亦具备极高的商业潜力与数据安全性。

针对这一需求,我们提出了一个基于OpenAI智能翻译助手的实战落地项目。该项目旨在开发一款支持多语种互译、兼容多种文件格式的翻译工具,以满足用户对长篇文档翻译的需求。


一、需求规格描述

1)支持包括但不限于PDF、Word等多样化的文件格式;
2)实现多语种间的互译功能;
3)兼容并优化多种大型预训练语言模型架构设计

二、系统架构设计

在这里插入图片描述

1)用户通过客户端上传待翻译文件;
2)系统后端进行文件解析,调用适配的大型模型执行翻译任务,并将翻译结果整合为新文档;
3)最终将翻译后的文档返回给用户以供下载。

三、技术实施方案

1)方案一:基于目标大型模型选择对应的API接口,自主封装模型调用流程;
2)方案二:采用LangChain框架,以简化大型模型集成过程,该框架负责隔离并封装模型调用细节。

本次先采用方案一实现,后续再引入LangChain框架简化改造。

四、核心功能说明

文本:高精度文本解析;表格:表格内容智能辨识与翻译;图片:图片内文字暂不予处理,考虑到其处理难度及相对较低的需求优先级。

五、开源技术选型

选择对文本和表格支持性比较好的pdfplumber
在这里插入图片描述

六、代码实现细节

1.图形用户界面(GUI)的开发

核心代码样例:

def launch_gui(args):    global global_args    global_args = args    iface = gr.Interface(        fn=translate_with_gui,        inputs=[            gr.File(label="上传PDF文件"),            gr.Dropdown(choices=["中文", "日语", "西班牙语"], value="中文", label="选择目标语言"),  # 这里添加了default参数            gr.Dropdown(choices=["OpenAIModel", "GLMModel"], value="OpenAIModel", label="选择大模型"),  # 这里添加了default参数            gr.Radio(choices=["PDF", "Markdown","word"], value="PDF", label="选择输出格式")  # 选择输出格式        ],        outputs=gr.Textbox(label="输出结果")    )    iface.launch()

在这里插入图片描述

2.大型模型调用的模块化封装

核心代码样例:

class OpenAIModel(Model):    def __init__(self, model: str, api_key: str):        self.model = model        openai.api_key = api_key    def make_request(self, prompt):        attempts = 0        while attempts < 3:            try:                if self.model == "gpt-3.5-turbo":                    response = openai.ChatCompletion.create(                        model=self.model,                        messages=[                            #{"role": "system", "content": super.get_system_prompt()},                            {"role": "user", "content": prompt},                        ]                    )                    translation = response.choices[0].message['content'].strip()                else:                    response = openai.Completion.create(                        model=self.model,                        prompt=prompt,                        max_tokens=150,                        temperature=0                    )                    translation = response.choices[0].text.strip()                return translation, True

3.文档解析翻译结果处理

1)文档解析:引用工具插件将对文档进行解析,页、内容(文段、表格、图片)
2)文档翻译:调用大模型API翻译:文段、表格
3)文档生成:将翻译后的内容回写生成新文档、输出下载
核心代码样例:

# 定义一个PDFTranslator类class PDFTranslator:    # 定义初始化函数,接收一个model_name参数    def __init__(self, model: Model):        # 创建一个model对象,用于执行翻译任务        self.model = model        # 创建一个PDFParser对象,用于解析PDF文件        self.pdf_parser = PDFParser()        # 创建一个Writer对象,用于写入文件        self.writer = Writer()    def translate_pdf(self, pdf_file_path: str, file_format: str = 'PDF', target_language: str = 'Chinese',                      output_file_path: str = None, pages: Optional[int] = None):        # 使用PDFParser对象解析指定的PDF文件,并将结果赋值给self.book        self.book = self.pdf_parser.parse_pdf(pdf_file_path, pages)        # 遍历self.book的每一页        for page_idx, page in enumerate(self.book.pages):            # 遍历每一页的每个内容            for content_idx, content in enumerate(page.contents):                #生成提示语                prompt = self.model.translate_prompt(content, target_language)                LOG.debug(prompt)                translation, status = self.model.make_request(prompt)                LOG.info(translation)                # 更新self.document.pages中的内容                content.apply_translated_paragraphs(translation)                """                用book对象存储翻译的结果                """                self.book.pages[page_idx].contents[content_idx].set_translation(translation, status)        # 使用Writer对象保存翻译后的书籍,并返回保存的路径        return self.writer.save_translated_book(self.book, output_file_path, file_format)

总结

1)Prompt工程是翻译质量的核心,要求开发者精通其构造与优化技巧;
2)LangChain的使用大幅简化了大型模型的集成和操作,极大提升了开发效率;
3)展望更多应用场景,例如基于大型模型重构的翻译应用、语音点餐系统、智能旅行助手、订票平台以及打车服务等,均有望在不久的将来得到实质性进展。

通过这个项目的实施,我们成功地实现了一个基于OpenAI智能翻译助手的实战落地工具。该工具不仅满足了市场对长篇文档翻译的需求,还具备高效、经济的特点,并且保证了数据的安全性。我们相信,随着技术的不断进步和应用场景的扩展,该工具将在未来得到更广泛的应用和发展。

👉实战系列篇
AI大模型探索之路-实战篇2:基于CVP架构-企业级知识库实战落地
AI大模型探索之路-实战篇3:基于私有模型GLM-企业级知识库开发实战

🔖更多专栏系列文章:AIGC-AI大模型探索之路

文章若有瑕疵,恳请不吝赐教;若有所触动或助益,还望各位老铁多多关注并给予支持。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-22/161296.html,文章来源:网络cs,作者:利杜鹃,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论