AI营养咨询配置:从零搭建可用的对话服务

想在服务器上跑一个能回答营养问题的 AI 对话服务,核心是三件事:准备好运行环境、接上可用的大模型接口、把回答范围限制在营养咨询内。
下面按顺序说明配置过程,命令和路径以常见的 Ubuntu 22.04 环境为例,其他发行版把包管理命令换成对应版本即可。

先确认环境和接口条件

开始之前,需要一台能访问外网的 Linux 服务器,建议至少 2 核 4G 内存。
AI 营养咨询本身不一定要本地跑模型,大多数情况下调用云端大模型 API 更省资源。
你需要准备:

  • 一个可用的大模型 API Key,并确认它的调用地址和模型名称
  • 服务器能正常访问该 API 域名,可用 curl -I https://api.example.com 测试连通性
  • 一个域名(可选),用于后续通过 Nginx 对外提供 HTTPS 访问
  • 基础的 Linux 命令行操作能力,会使用 apt、systemctl、vim 即可

先更新系统并安装常用工具:

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

安装完成后用 python3 --version 和 nginx -v 确认版本输出正常,再进行下一步。

创建服务目录和 Python 虚拟环境

不要把服务直接跑在系统 Python 里,用虚拟环境隔离依赖,后续升级和排错都更省事。

sudo mkdir -p /opt/ai-nutrition
sudo chown $USER:$USER /opt/ai-nutrition
cd /opt/ai-nutrition
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install fastapi uvicorn openai

这里用 FastAPI 提供 HTTP 接口,openai 库用于调用兼容 OpenAI 格式的大模型 API。
如果你的服务商接口格式不同,按它的官方文档替换请求地址和认证方式,不要直接套用示例参数。

编写营养咨询接口和提示词约束

在 /opt/ai-nutrition 下新建 app.py,核心是把用户问题转发给大模型,同时在系统提示词里限定回答范围。
营养咨询涉及健康建议,提示词中要明确要求模型不做疾病诊断、不替代医生,遇到特殊人群建议就医。

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

app = FastAPI()
client = OpenAI(
    api_key=os.environ["API_KEY"],
    base_url=os.environ.get("API_BASE", "https://api.example.com/v1")
)

SYSTEM_PROMPT = """你是一名营养咨询助手,只回答日常饮食搭配、食材选择和一般性营养知识。
不进行疾病诊断,不开具处方,不推荐具体药物。
遇到孕妇、婴幼儿、慢性病患者或明显症状描述时,提示对方咨询医生或注册营养师。
回答控制在 300 字以内,给出可执行的饮食建议。"""

class Question(BaseModel):
    text: str

@app.post("/ask")
def ask(q: Question):
    resp = client.chat.completions.create(
        model=os.environ.get("MODEL_NAME", "your-model"),
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": q.text}
        ],
        temperature=0.3
    )
    return {"answer": resp.choices[0].message.content}

保存后把 API Key 写入环境变量文件,避免硬编码在代码里:

cat > /opt/ai-nutrition/.env <<'EOF'
API_KEY=你的接口密钥
API_BASE=https://你的服务商接口地址/v1
MODEL_NAME=你的模型名称
EOF
chmod 600 /opt/ai-nutrition/.env

启动前先手动加载环境变量测试一次:

cd /opt/ai-nutrition
source venv/bin/activate
export $(grep -v '^#' .env | xargs)
uvicorn app:app --host 127.0.0.1 --port 8000

另开一个终端执行 curl -X POST http:
//127.0.0.1:
8000/ask -H "Content-Type:
application/json" -d '{"text":
"早餐吃什么比较均衡"}'
,
能返回一段中文饮食建议就说明接口通了。

用 systemd 托管并配置 Nginx 反向代理

手动启动的进程关闭终端就停了,用 systemd 托管更稳定。
新建 /etc/systemd/system/ai-nutrition.service:

[Unit]
Description=AI Nutrition Service
After=network.target

[Service]
User=www-data
WorkingDirectory=/opt/ai-nutrition
EnvironmentFile=/opt/ai-nutrition/.env
ExecStart=/opt/ai-nutrition/venv/bin/uvicorn app:app --host 127.0.0.1 --port 8000
Restart=always

[Install]
WantedBy=multi-user.target

执行 sudo systemctl daemon-reload && sudo systemctl enable --now ai-nutrition,
再用 sudo systemctl status ai-nutrition 查看是否处于 active 状态。

如果要对公网提供访问,在 Nginx 中加一个反向代理配置,路径为 /etc/nginx/sites-available/ai-nutrition:

server {
    listen 80;
    server_name 你的域名;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

软链接到 sites-enabled 后执行 sudo nginx -t 检查语法,通过再 sudo systemctl reload nginx。
生产环境建议用 certbot 申请证书启用 HTTPS,避免接口密钥和数据在明文 HTTP 下传输。

容易踩的坑和上线检查

配置过程中最常见的失败集中在三处。
第一是 API 地址写错,base_url 通常以 /v1 结尾,少了或多了路径都会返回 404,先用 curl 单独验证接口地址。
第二是密钥权限问题,systemd 以 www-data 运行,要确保该用户能读取 .env 和项目目录,否则服务启动后请求报认证失败。
第三是提示词约束不够,营养咨询场景下模型容易给出医疗建议,建议在系统提示词里明确边界,并在前端加一句“内容仅供参考,不替代专业诊疗”。

上线前做一次完整验证:curl http://127.0.0.1:8000/ask 返回正常、sudo systemctl status ai-nutrition 显示 active、sudo nginx -t 语法通过、浏览器访问域名能收到回答。
四项都通过,AI营养咨询配置才算真正可用。
后续如果要调整回答风格或增加食材数据库,优先改系统提示词和接口层,不要直接改动 Nginx 配置。

分享到:
上一篇
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意