本地docker部署libretranslate翻译模型并采用CUDA加速

一、Libretanslate基本介绍 Libretanslate 是一个开源的,基于AI驱动的翻译软件,官方网站提供了在线的翻译功能,并且可以申请 api 密钥去调用 api 将翻译能力嵌入到我们自己的程序或者软件中。当然,官方的github有详细的本地部署教程,如果有能力建议根据官方的 README 部署,本文是对可能遇到的一些问题的补充。本文采用的是 docker 部署,当然官方提供了直接通过 pip 包部署,读者可以根据自己的需求选择。效果图如下: 二. docker 与 nvidia docker 支持的前置条件 首先需要保证你的本地系统已经安装的 docker 环境,建议采用国内的源安装,比如清华源、阿里源等。同时建议配置docker镜像源防止由于网络问题无法拉取镜像。这里不提供安装配置命令,建议读者自行搜索相关资料。 使用 nvidia 的 docker 加速,需要读者本地拥有 nvidia 的显卡,并安装了显卡驱动。如果没有 nvidia 的显卡支持,可以跳过这一部分,进行 cpu 版本的本地部署。 首先要在自己的电脑上安装 nvidia docker 支持,参考的官方地址。根据你的 linux 发行版复制粘贴命令就行了,debian 发行版的安装命令如下: # 添加 apt 源 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \ curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ tee /etc/apt/sources....

2024-11-12 · 2 分钟 · 334 字

Debian12中GoldenDict词典软件的使用

一、GoldenDict基本介绍 GoldenDict 是一款开源的词典软件,它具有高度的定制性,可以自定义软件界面,它支持导入词典数据、调用外部网站和自定义程序等功能,对于需要 在学习中阅读英文文献时非常方便使用。在 Debian12 中可以直接通过 apt 命令下载该软件 sudo apt update sudo apt install goldendict 下载完毕后,软件界面如下: 在上面工具栏的编辑 -> 首选项 -> 界面可以设置界面语言,并且可以配置内置的一些主题风格,本文不讨论如何自定义界面风格。在编辑 -> 首选项 -> 词典可以配置词典数据来源。GoldenDict 支持多种词典来源,包括本地的词典数据、远程词典服务器、调用搜索引擎和调用脚本程序等。本文会给出一些在网络上搜集的本地词典资源(感谢这些资源的提供者),并给出一个调用百度官方api进行翻译的 python 脚本。 二、词典资源配置 1.本地词典资源 打开编辑 -> 首选项 -> 词典 -> 词典来源 -> 文件,这里可以配置词典文件的路径,如果是文件夹路径需要勾上递归搜索,然后点击应用,这样 GoldenDict 会扫描所有指定的词典文件,并为其生成索引。如果词典数量比较多这个过程会比较漫长,这取决于你的电脑的性能。索引生成完毕后这些词典就可以使用了,索引文件会存储在本地磁盘中,下一次打开不需要重新生成了。我自己用的词典资源: 词典资源 提取码: bp47。示例效果如图所示: 2. 调用百度翻译接口 拥有这些本地词典后,GoldenDict 会帮助你从这些本地词典搜索你要查询的单词或者词语,只要你的词典中有对应的记录即可。但是GoldenDict并不支持句子翻译,即它不会把句子拆成一组单词分别去查询,除非你的词典中有这样一条句子的翻译记录。因此我考虑将百度翻译接入到 GoldenDict 中这样方便进行一些简短的句子翻译。 首先需要在百度翻译api注册账户,选择通用翻译服务,进行认证后高级版通用翻译服务每个月会有一定量的免费额度。然后在管理控制台获取你的APP ID和密钥,替换下面代码中的 APP ID 和密钥,并配置日志文件路径: import requests import random import re from hashlib import md5 import sys import time # 设置你自己的appid和appkey appid = 'xxxxxxxxxxxxxxxxxx' appkey = 'xxxxxxxxxxxxxxxxxx' EN_LIMIT = 800 # 每800个英文字符添加一个换行符 ZH_LIMIT = 300 # 每300个汉字添加一个换行符 EN_MIN_NUM = 8 ZH_MIN_NUM = 5 def hasZhChar(text): pattern = re....

2024-11-05 · 2 分钟 · 356 字