AI健身咨询配置:从零搭建可用的问答服务

AI健身咨询配置的核心,是在一台可公网访问的服务器上跑通「前端页面 → 后端接口 → 大模型 API」这条链路。
本文以 Ubuntu 22.04 为例,给出从零开始可照做的步骤,适用于想自建健身问答小工具、又不想依赖第三方托管平台的用户。

先确认服务器与账号条件

开始之前,
先确认手上有三样东西:
一台能 SSH 登录的 Linux 服务器(1 核 2G 起步即可跑通)、
一个可用的模型 API Key(如通义千问、
DeepSeek 等,
按所选平台文档获取)、
一个已解析到服务器 IP 的域名(可选,
用于 HTTPS)。

登录服务器后先更新系统并安装基础工具:

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-venv nginx git
python3 --version

预期结果是 Python 版本不低于 3.10。
如果 python3 --version 报错,说明镜像里缺少 Python,需要先执行 apt install python3 再继续。

部署健身咨询后端接口

新建项目目录并创建虚拟环境,避免污染系统 Python:

mkdir -p /opt/fitness-ai && cd /opt/fitness-ai
python3 -m venv venv
source venv/bin/activate
pip install fastapi uvicorn openai

创建 app.py,把模型调用封装成一个 /chat 接口。
下面以兼容 OpenAI 接口协议的模型服务为例,base_url 和模型名需要替换成你所选平台控制台里显示的值:

from fastapi import FastAPI
from pydantic import BaseModel
from openai import OpenAI

app = FastAPI()
client = OpenAI(api_key="你的API_KEY", base_url="https://你的平台接口地址/v1")

class Ask(BaseModel):
    question: str

@app.post("/chat")
def chat(item: Ask):
    resp = client.chat.completions.create(
        model="你的模型名称",
        messages=[
            {"role": "system", "content": "你是一名健身教练,只回答训练和饮食相关问题,不确定时建议就医。"},
            {"role": "user", "content": item.question}
        ]
    )
    return {"answer": resp.choices[0].message.content}

启动测试:

uvicorn app:app --host 127.0.0.1 --port 8000

另开一个 SSH 窗口执行:

curl -X POST http://127.0.0.1:8000/chat \
  -H "Content-Type: application/json" \
  -d '{"question":"初学者一周练几次合适?"}'

能返回一段中文回答,说明后端与模型 API 已经打通;
如果返回 401,优先检查 API Key 是否复制完整;
返回 404 则多半是 base_url 写错,需要对照平台文档改成正确的接口地址。

用 Nginx 暴露服务并加一层保护

直接暴露 8000 端口既不安全也不方便。
用 systemd 托管进程,再让 Nginx 转发:

sudo tee /etc/systemd/system/fitness-ai.service <<'EOF'
[Unit]
Description=Fitness AI
After=network.target
[Service]
User=www-data
WorkingDirectory=/opt/fitness-ai
ExecStart=/opt/fitness-ai/venv/bin/uvicorn app:app --host 127.0.0.1 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now fitness-ai

Nginx 站点配置写入 /etc/nginx/sites-available/fitness-ai:

server {
    listen 80;
    server_name 你的域名;
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
    }
}

执行 sudo ln -s /etc/nginx/sites-available/fitness-ai /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx。nginx -t 输出 syntax is ok 即配置无误。

容易踩的坑

  • API Key 写进代码后提交到公开仓库:Key 泄露会被盗刷,建议放到环境变量,代码里用 os.getenv 读取。
  • 直接开放 8000 端口到公网:务必只监听 127.0.0.1,由 Nginx 对外,安全组里也不要放行 8000。
  • systemd 用户权限不对:/opt/fitness-ai 目录需要 www-data 可读,否则服务启动后立刻退出,用 journalctl -u fitness-ai -n 50 查看原因。
  • 提示词没做边界限制:健身咨询涉及健康建议,系统提示里应明确「不替代医生诊断」,避免给出危险建议。

验证配置是否真正可用

完成以上步骤后,按顺序检查:systemctl status fitness-ai 显示 active (running);curl http://127.0.0.1:8000/chat 本地可通;
浏览器访问域名能拿到回答;sudo tail -f /var/log/nginx/access.log 能看到请求记录。
四项都通过,才算 AI健身咨询配置 完成。
若域名访问超时,先查安全组 80 端口和 DNS 解析是否生效。

后续如果要做多轮对话或历史记录,可以在后端加一个会话 ID 字段,把消息列表存到 SQLite,改动不大但体验提升明显。

分享到:
上一篇
AI保险咨询配置:从零搭建智能问答系统的关键步骤
下一篇
AI营养咨询配置:从零搭建可用的对话服务
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意