🦀 Rust Translator 部署笔记(Ubuntu 22.04)

  • 2025年6月29日
  • 0 comments

系统依赖

sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev curl
  • build-essential:gcc / g++ / make
  • pkg-config + libssl-dev:部分依赖需要 OpenSSL 头文件

安装 Rust 工具链

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"    # 让当前 shell 立即识别 cargo

验证:

rustc --version   # rustc 1.xx.x
cargo --version   # cargo 1.xx.x

创建项目骨架

cargo new translator
cd translator

cargo new 会生成:

translator/
 ├── Cargo.toml
 └── src/
     └── main.rs

配置 Cargo.toml

替换 Cargo.toml 的依赖段为 👇 完整内容[package] 不变只改 [dependencies]):

[dependencies]
axum       = "0.6"
tokio      = { version = "1", features = ["full"] }
serde      = { version = "1", features = ["derive"] }
serde_json = "1"
reqwest    = { version = "0.12", features = ["json", "stream", "gzip"] }
lru        = "0.12"
once_cell  = "1"
anyhow     = "1"
tokio-util = { version = "0.7", features = ["io"] }

添加源代码 & 静态文件

  1. 覆盖 src/main.rs 将之前整理好的 完整 Rust 代码 粘贴到 src/main.rs

  2. 创建静态目录

    mkdir static
  3. 编写 static/index.html(可根据喜好美化)

    <!doctype html>
    <meta charset="utf-8">
    <title>Translator</title>
    <h1>Translator backend is running!</h1>

编译与运行

cargo run            # ⏳ 首次编译稍久

成功时终端会输出:

🚀 Translator @ http://0.0.0.0:8888

访问时使用 http://127.0.0.1:8888 或 **http://localhost:8888**。

生产模式

cargo build --release
./target/release/translator &

设置 OpenAI API Key

任何时候都可修改,立即生效;配置保存在 ~/.translator.json

curl -X POST http://127.0.0.1:8888/config \
  -H 'Content-Type: application/json' \
  -d '{"api_key":"sk-XXXXXXXXXXXXXXXXXXXX"}'

可选项:

{
  "api_key": "sk-...",
  "model":   "gpt-4o-mini",
  "api_url": "https://api.openai.com/v1/chat/completions"
}

功能验证

curl -X POST http://127.0.0.1:8888/translate \
  -H 'Content-Type: application/json' \
  -d '{"text":"Hello","source":"auto","target":"zh","stream":false}'

期望返回:

{"translation":"你好"}

浏览器访问 http://127.0.0.1:8888,即可使用前端页面。


常见问题排查

问题 解决办法
访问 0.0.0.0 报错 502 使用 127.0.0.1localhost 访问
“API key missing” 尚未 POST /config 或 key 写错
“401 Unauthorized” API Key 失效、错误或超额
8888 端口已被占用 修改 main.rsaddr 端口,重新编译
cargo: command not found source $HOME/.cargo/env 或重新开终端
编译时缺 crate cargo add crate_name@版本 然后 cargo build

至此,你已完成 Rust 环境 → 项目构建 → 运行测试 → Key 配置 的全部流程。 祝编码愉快!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注