AI穿搭咨询配置:从零搭建可用的穿搭建议服务
AI穿搭咨询配置的核心是把用户输入的身材、场合、风格偏好等信息,通过提示词交给大模型生成穿搭建议。
下面以一台 Ubuntu 22.04 服务器、Python 3.10 和常见大模型 API 为例,讲清楚从零开始要做什么、怎么做、怎么验证。
先确认你的使用场景和前置条件
这套配置适合个人博客、小程序后端或内部工具,要求你有一台能访问外网的 Linux 服务器、一个可用的模型 API Key,以及基本的命令行操作能力。
如果只是本地测试,用 Windows 或 macOS 也能完成,但下文命令以 Ubuntu 为准。
需要提前准备:
- 服务器已安装
python3和pip3,可用python3 --version检查。 - 一个模型服务商的 API Key,并确认其接口地址和请求格式。
- 开放 8000 端口供测试,正式上线建议用 Nginx 反向代理并配置 HTTPS。
安装依赖并初始化项目
登录服务器后,先创建项目目录和虚拟环境,避免污染系统 Python:
mkdir -p /opt/ai-outfit && cd /opt/ai-outfit
python3 -m venv venv
source venv/bin/activate
pip install fastapi uvicorn openai
如果 venv 创建失败,先执行 sudo apt install python3-venv。
安装完成后,新建 app.py 作为服务入口。
编写穿搭咨询接口和提示词
在 app.py 中写入以下代码,注意把 API_KEY 和 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 OutfitRequest(BaseModel):
body_type: str
occasion: str
style: str
season: str = "春秋"
@app.post("/outfit/advice")
def outfit_advice(req: OutfitRequest):
prompt = f"用户身材:{req.body_type};场合:{req.occasion};偏好风格:{req.style};季节:{req.season}。请给出上衣、下装、鞋履和配饰建议,并说明颜色搭配理由,控制在200字以内。"
resp = client.chat.completions.create(
model="模型名称",
messages=[{"role": "user", "content": prompt}],
temperature=0.7
)
return {"advice": resp.choices[0].message.content}
提示词里要明确输出结构,否则模型容易给出一大段泛泛而谈的内容。
温度参数建议设在 0.6 到 0.8 之间,太低会呆板,太高会跑偏。
启动服务并验证接口
用以下命令启动服务:
uvicorn app:app --host 0.0.0.0 --port 8000
另开一个终端,用 curl 发送测试请求:
curl -X POST http://127.0.0.1:8000/outfit/advice \
-H "Content-Type: application/json" \
-d '{"body_type":"梨形","occasion":"通勤","style":"简约","season":"秋季"}'
返回 JSON 中包含 advice 字段且内容合理,就说明接口通了。
如果返回 401,检查 API Key;
返回 404,检查 base_url 和模型名称;
返回 500,看服务端日志里的报错堆栈。
避坑与上线前检查
不要把 API Key 写死在代码里提交到公开仓库。 建议用环境变量读取,
例如 os.getenv("OPENAI_API_KEY"),
并在服务启动前 export 好。
注意请求频率和超时。 大模型接口可能较慢,FastAPI 默认没有超时限制,可以在客户端初始化时设置 timeout=30,避免请求堆积。
正式对外服务时不要直接用 uvicorn 裸跑。 用 nohup 或 systemd 托管进程,前面加 Nginx 反向代理,并限制请求体大小,防止被刷接口产生费用。
验证建议: 连续发送 3 到 5 条不同身材和场合的请求,检查返回内容是否稳定、是否包含完整穿搭要素。
如果模型总是忽略季节或场合,优先调整提示词,而不是反复调温度。
常见疑问
穿搭咨询必须用大模型吗? 不一定。
规则引擎也能做基础搭配,但面对“梨形身材通勤简约风”这类组合,大模型的自然语言理解和生成更灵活。
接口返回内容太长怎么办? 在提示词里明确字数上限,同时在代码中对返回文本做截断或分段处理,不要只依赖模型自觉。
可以同时支持多个用户吗? 可以,FastAPI 本身支持并发,但要注意模型服务商的并发限制和费用,必要时加请求队列或缓存常见组合的结果。
按以上步骤完成后,你就拥有了一个可调用的 AI穿搭咨询配置 基础服务。
后续可以根据实际反馈优化提示词和搭配规则,再逐步接入前端页面或小程序。