🦀 Rust Translator 部署笔记(Ubuntu 22.04)
系统依赖
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"] }
添加源代码 & 静态文件
-
覆盖
src/main.rs
将之前整理好的 完整 Rust 代码 粘贴到src/main.rs
。 -
创建静态目录
mkdir static
-
编写
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
生产模式
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.1 或 localhost 访问 |
“API key missing” | 尚未 POST /config 或 key 写错 |
“401 Unauthorized” | API Key 失效、错误或超额 |
8888 端口已被占用 | 修改 main.rs 中 addr 端口,重新编译 |
cargo: command not found |
source $HOME/.cargo/env 或重新开终端 |
编译时缺 crate | cargo add crate_name@版本 然后 cargo build |
至此,你已完成 Rust 环境 → 项目构建 → 运行测试 → Key 配置 的全部流程。 祝编码愉快!