AI 产品落地失败的原因,很少是"模型不够强"。更常见的是:需求没收敛、效果没基线、集成没权限、上线没监控。工程视角下,AI 产品落地是一条从不确定到确定的收敛链路,每一环都必须可验证、可回滚、可追责。
本文从需求契约、POC 骨架、效果评估、生产集成四个环节拆解。
AI 产品最常见的问题是"需求是散文"。工程上第一步是把业务语言翻译成可测试契约。
from dataclasses import dataclass
from enum import Enum
from typing import Protocol
class Intent(str, Enum):
refund = "refund"
query = "query"
human = "human"
@dataclass(frozen=True)
class Request:
user_id: str
text: str
channel: str = "web"
@dataclass(frozen=True)
class Response:
intent: Intent
answer: str
confidence: float
need_human: bool
trace_id: str
class Classifier(Protocol):
def classify(self, text: str) -> tuple[Intent, float]: ...
class KnowledgeBase(Protocol):
def search(self, query: str, top_k: int = 3) -> list[str]: ...契约的价值:产品、开发、客户对"输入什么、输出什么、失败怎么办"有共同理解。没有契约,POC 阶段就会反复返工。
POC 的目标不是功能完整,而是验证"这条路走不走得通"。最小骨架只需三件事:意图识别、知识检索、低置信度兜底。
import os, json, uuid
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL"),
)
SYSTEM = """你是客服意图分类器。只输出 JSON:
{"intent": "refund|query|human", "confidence": 0-1}
无法判断时输出 human。不要编造业务规则。"""
def classify(text: str) -> tuple[Intent, float]:
resp = client.chat.completions.create(
model=os.getenv("OPENAI_MODEL", "gpt-4o-mini"),
messages=[
{"role": "system", "content": SYSTEM},
{"role": "user", "content": text},
],
response_format={"type": "json_object"},
temperature=0,
)
data = json.loads(resp.choices[0].message.content)
intent = Intent(data.get("intent", "human"))
conf = float(data.get("confidence", 0))
return intent, conf
def handle(req: Request, kb: KnowledgeBase, threshold: float = 0.6) -> Response:
trace_id = uuid.uuid4().hex[:12]
intent, conf = classify(req.text)
if conf < threshold:
return Response(Intent.human, "已为您转接人工客服", conf, True, trace_id)
if intent == Intent.refund:
return Response(intent, "退款请提供订单号。", conf, False, trace_id)
if intent == Intent.query:
docs = kb.search(req.text, top_k=3)
answer = ";".join(docs) if docs else "暂未查到相关信息。"
return Response(intent, answer, conf, False, trace_id)
return Response(Intent.human, "已为您转接人工客服", conf, True, trace_id)关键设计:
POC 必须能回答"AI 比现有方案好多少"。定义三个核心指标:准确率、转人工率、有害输出数。
from dataclasses import dataclass
@dataclass
class EvalResult:
total: int
correct: int
fallback: int
harmful: int
@property
def accuracy(self) -> float:
return self.correct / self.total if self.total else 0.0
@property
def fallback_rate(self) -> float:
return self.fallback / self.total if self.total else 0.0
def evaluate(samples: list[tuple[str, Intent]], predict) -> EvalResult:
correct = fallback = harmful = 0
for text, gold in samples:
pred, conf = predict(text)
if conf < 0.6:
fallback += 1
elif pred == gold:
correct += 1
elif pred == Intent.human:
fallback += 1
else:
harmful += 1
return EvalResult(len(samples), correct, fallback, harmful)
def gate(result: EvalResult, min_acc: float = 0.85) -> bool:
if result.harmful > 0:
return False
if result.accuracy < min_acc:
return False
if result.fallback_rate > 0.3:
return False
return True上线门槛建议:有害输出必须为 0;准确率达标;转人工率不能高到让业务无法承受。指标要写进验收标准,而不是口头承诺。
POC 到生产之间,差的不是模型,是工程约束。
import re, logging, hashlib
log = logging.getLogger("ai_product")
PII = re.compile(r"(\d{11}|\d{17}[\dXx]|[\w.+-]+@[\w-]+\.[\w.]+)")
def mask(text: str) -> str:
return PII.sub("[REDACTED]", text)
def log_request(req: Request, resp: Response) -> None:
log.info(
"trace=%s user=%s channel=%s intent=%s conf=%.2f fallback=%s text=%s",
resp.trace_id,
hashlib.sha256(req.user_id.encode()).hexdigest()[:12],
req.channel,
resp.intent.value,
resp.confidence,
resp.need_human,
mask(req.text),
)
BAD_WORDS = {"违法", "暴力", "色情", "歧视", "虚假"}
def audit_output(text: str) -> None:
if any(w in text for w in BAD_WORDS):
raise ValueError("审核未通过")生产必备约束:
name: ci
on: [push, pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: "3.12" }
- run: pip install ruff mypy pytest bandit pip-audit
- run: ruff check .
- run: mypy .
- run: pytest -q
- run: bandit -r app
- run: pip-audit门禁的意义不是"跑通",而是"跑不过就不能上线"。AI 产品同样不能有特权。
AI 产品落地的专业性,不在于模型多强,而在于把不确定性逐步收敛成可交付、可评估、可运维的系统:契约先行、POC 验证、指标驱动、合规集成、持续迭代。代码可以简单,但权限、兜底、审核、监控、回滚不能省。AI 是工具,交付责任在人。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。