AI选品分析配置:从零搭建自动选品流程
AI选品分析配置的核心,是把选品判断从人工翻表格变成可重复执行的脚本流程:整理商品数据、按规则批量调用 AI 接口、把返回结果写回表格并按分数筛选。
下面按实际执行顺序讲清楚每一步,使用 Python 和任意支持 HTTP 调用的 AI 接口即可,零基础也能照做。
先确认手上有什么,再决定怎么配
适用前提:你有一份商品清单,至少包含商品名称、类目、售价、近期销量或评论数;
有一台能访问外网的 Linux 或 Windows 机器;
有一个可用的 AI 接口地址和密钥。
命令和路径以 Linux 为例,Windows 下把路径换成对应目录即可。
先建目录并安装依赖:
mkdir -p /opt/ai-select && cd /opt/ai-select
python3 -m venv venv
source venv/bin/activate
pip install requests pandas openpyxl
把商品数据整理成 products.xlsx,表头至少包含:name、category、price、sales、reviews。
表头名称要和后面脚本读取的字段一致,否则脚本会直接跳过该列并报 KeyError。
配置接口和提示词,先跑通单条商品
新建 config.py,把接口地址和密钥放在这里,避免写死在业务脚本中:
API_URL = "https://你的接口地址/v1/chat/completions"
API_KEY = "你的密钥"
MODEL = "你账号下可用的模型名"
提示词要固定输出结构,方便后续解析。
建议要求返回 JSON,字段包括 score(1-10)、reason(一句话理由)、risk(低/中/高):
PROMPT = """你是选品分析助手。根据商品信息给出1-10分选品评分,输出JSON:
{\"score\": 数字, \"reason\": \"理由\", \"risk\": \"低/中/高\"}
商品:{name},类目:{category},售价:{price},销量:{sales},评论数:{reviews}"""
先用一条商品手动调用,确认返回格式正确,再批量跑。
返回内容里可能包着 Markdown 代码块标记,解析前要先去掉。
批量调用并写回结果表
新建 run.py,按行读取表格、调用接口、解析 JSON、写回新列:
import json, time, requests, pandas as pd
from config import API_URL, API_KEY, MODEL, PROMPT
df = pd.read_excel("products.xlsx")
results = []
for _, row in df.iterrows():
body = {
"model": MODEL,
"messages": [{"role": "user", "content": PROMPT.format(**row.to_dict())}],
"temperature": 0.3
}
r = requests.post(API_URL, json=body, headers={"Authorization": f"Bearer {API_KEY}"}, timeout=30)
r.raise_for_status()
text = r.json()["choices"][0]["message"]["content"]
text = text.strip().removeprefix("```json").removeprefix("```").removesuffix("```").strip()
try:
data = json.loads(text)
except json.JSONDecodeError:
data = {"score": None, "reason": "解析失败", "risk": "未知"}
results.append(data)
time.sleep(1)
out = pd.concat([df, pd.DataFrame(results)], axis=1)
out.sort_values("score", ascending=False).to_excel("result.xlsx", index=False)
运行 python run.py,预期生成 result.xlsx,包含 score、reason、risk 三列并按评分降序排列。time.sleep(1) 是给接口留间隔,避免触发频率限制;
如果接口明确给出限速值,按实际调整。
容易踩的几个坑
- 密钥不要提交到代码仓库,用环境变量或单独的配置文件,并限制文件权限:
chmod 600 config.py。 - 提示词里要求“只输出 JSON”并不保证模型一定照做,解析失败要有兜底分支,否则整批任务会中断。
- 表格里有空值时
format会拼出nan,建议在循环里先做row.fillna("")处理。 - 单次请求超时设得太短,网络稍慢就会大量失败;先跑 10 条测试,确认稳定再全量执行。
- 评分只作为初筛参考,最终选品还要结合供应链、利润和合规要求人工复核,不能直接把脚本结果当结论。
怎么确认这套配置真的可用
跑完后检查三件事:result.xlsx 行数与原表一致;score 为空的行数占比是否明显偏高,偏高说明解析或限速有问题;
随机抽 5 条看 reason 是否与商品信息对应。
把这些检查写进一个小脚本,每次运行后自动输出统计,比人工翻表更可靠。
如果批量运行中出现大量 401 或 429,先查密钥是否失效、调用频率是否超限,再检查接口地址是否写错。
把失败行单独记录到 failed.xlsx,修复后只重跑失败部分,不用整批重来。
AI选品分析配置不是一次写完就结束,提示词、评分字段和筛选阈值都需要根据实际类目迭代;
先把流程跑通,再逐步调整规则,比一开始追求复杂模型更稳妥。