- 1. AI 产品发掘:Problem-Solution Fit
- 2. 选择 LLM 产品技术栈
- 3. MVP 开发:快速原型验证
- 4. 评估与迭代
- 5. 成本与扩展:Token 成本优化
- 6. AI 创业公司成功案例分析
- 7. 监管与风险管理
- 测验:AI 创业公司与产品开发
- 结语
1. AI 产品发掘:Problem-Solution Fit
找到真正需要 AI 的问题
AI 创业公司最常见的错误,是「因为想用 AI」而去做产品。真正该问的问题是 「这个问题在没有 AI 的情况下能不能解决?」。
适合 AI 的使用场景:
- 非结构化数据处理(文本、图像、语音)
- 需要模式识别的重复性工作
- 需要大规模个性化响应的场景
- 需要放大专业知识时(副驾驶/copilot 模型)
- 文档摘要、分类、抽取自动化
AI 过度工程化的信号:
- 用基于规则的 if-else 就足以解决的问题
- 要求准确率 99.9% 以上的安全关键系统
- 在没有数据的情况下尝试构建 ML 模型
- 用 LLM 替代简单的 CRUD
Problem-Solution Fit 验证框架
一个好的 AI 产品创意应满足以下条件:
- Before AI:这件事目前是不是有人在手动做?(验证市场是否存在)
- Pain Level:这个问题有多频繁、有多痛?
- AI Advantage:AI 是否比现有方法快或便宜 10 倍?
- Data Availability:能否获得训练/评估所需的数据?
- Error Tolerance:出错时对业务的影响有多大?
2. 选择 LLM 产品技术栈
主要 API 供应商对比
| 供应商 | 代表模型 | 优势 | 劣势 |
|---|---|---|---|
| OpenAI | GPT-4o, o3 | 生态、工具丰富 | 成本、锁定 |
| Anthropic | Claude 3.5 Sonnet | 长上下文、安全性 | 多模态能力有限 |
| Gemini 2.0 Flash | 速度、价格 | 一致性 | |
| Meta | Llama 3.3 | 开源、免费 | 需要自建基础设施 |
开源自托管
Ollama(本地开发/原型验证):
# 安装 Ollama 后运行模型
ollama pull llama3.3
ollama run llama3.3
vLLM(生产环境自托管):
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3.3-70B-Instruct \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9
模型选择决策树
预算是否有限?
├── 是 → 开源(Llama、Mistral)自托管
│ 或 Gemini Flash(低成本 API)
└── 否 → 质量要求是否高?
├── 是 → Claude 3.5 Sonnet / GPT-4o
└── 否 → GPT-4o mini / Claude Haiku
3. MVP 开发:快速原型验证
用 Streamlit 制作 LLM 应用原型
import streamlit as st
from openai import OpenAI
client = OpenAI()
st.title("AI 文档摘要器 MVP")
uploaded_file = st.file_uploader("上传文档", type=["txt", "pdf"])
tone = st.selectbox("摘要语气", ["商务", "轻松", "技术"])
if uploaded_file and st.button("开始摘要"):
text = uploaded_file.read().decode("utf-8")
with st.spinner("AI 正在生成摘要..."):
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": f"你是一名专业的文档摘要撰写者。请使用{tone}的语气进行摘要。"
},
{
"role": "user",
"content": f"请将以下文档摘要为 3-5 句话:\n\n{text[:4000]}"
}
],
max_tokens=500
)
summary = response.choices[0].message.content
st.success("摘要完成!")
st.write(summary)
st.download_button(
label="下载摘要",
data=summary,
file_name="summary.txt"
)
用 LangChain 构建 RAG 流水线
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
# 文档分块
splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=200
)
chunks = splitter.split_documents(documents)
# 创建向量存储
vectorstore = Chroma.from_documents(
chunks,
OpenAIEmbeddings()
)
# 构建 RAG 链
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=vectorstore.as_retriever(search_kwargs={"k": 4}),
return_source_documents=True
)
result = qa_chain.invoke({"query": "产品的退款政策是什么?"})
print(result["result"])
4. 评估与迭代
LLM 输出评估方法论
LLM-as-a-Judge 模式:
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
judge_llm = ChatOpenAI(model="gpt-4o", temperature=0)
EVAL_PROMPT = ChatPromptTemplate.from_template("""
你是一名 AI 响应质量评估者。
问题: {question}
AI 响应: {response}
参考答案: {reference}
请按以下标准评分(1-5 分):
- 准确性 (Accuracy): 是否事实准确?
- 完整性 (Completeness): 是否充分回答了问题?
- 清晰度 (Clarity): 是否易于理解?
以 JSON 格式回复: {{"accuracy": 分数, "completeness": 分数, "clarity": 分数, "reasoning": "说明"}}
""")
def evaluate_response(question, response, reference):
chain = EVAL_PROMPT | judge_llm
result = chain.invoke({
"question": question,
"response": response,
"reference": reference
})
return result.content
A/B 测试框架
import random
from dataclasses import dataclass
from typing import Dict, List
import json
@dataclass
class PromptVariant:
name: str
system_prompt: str
wins: int = 0
total: int = 0
@property
def win_rate(self):
return self.wins / self.total if self.total > 0 else 0
class PromptABTest:
def __init__(self, variants: List[PromptVariant]):
self.variants = {v.name: v for v in variants}
def select_variant(self) -> PromptVariant:
# ε-贪心:10% 探索,90% 利用
if random.random() < 0.1:
return random.choice(list(self.variants.values()))
return max(self.variants.values(), key=lambda v: v.win_rate)
def record_feedback(self, variant_name: str, positive: bool):
v = self.variants[variant_name]
v.total += 1
if positive:
v.wins += 1
def report(self) -> Dict:
return {
name: {"win_rate": f"{v.win_rate:.1%}", "total": v.total}
for name, v in self.variants.items()
}
# 使用示例
ab_test = PromptABTest([
PromptVariant("formal", "你是一名专业且正式的 AI 助手。"),
PromptVariant("casual", "你好!我是一个用轻松易懂的方式讲解的 AI。"),
])
用户反馈收集 API
from fastapi import FastAPI
from pydantic import BaseModel
from datetime import datetime
import json
app = FastAPI()
class FeedbackRequest(BaseModel):
session_id: str
message_id: str
rating: int # 1-5
comment: str = ""
prompt_variant: str = "default"
feedback_store = []
@app.post("/feedback")
async def collect_feedback(feedback: FeedbackRequest):
entry = {
"timestamp": datetime.utcnow().isoformat(),
**feedback.dict()
}
feedback_store.append(entry)
# 实际环境中应存入数据库
with open("feedback_log.jsonl", "a") as f:
f.write(json.dumps(entry) + "\n")
return {"status": "recorded", "message_id": feedback.message_id}
@app.get("/feedback/stats")
async def get_stats():
if not feedback_store:
return {"avg_rating": 0, "total": 0}
avg = sum(f["rating"] for f in feedback_store) / len(feedback_store)
return {
"avg_rating": round(avg, 2),
"total": len(feedback_store),
"positive_rate": f"{sum(1 for f in feedback_store if f['rating'] >= 4) / len(feedback_store):.1%}"
}
5. 成本与扩展:Token 成本优化
LLM API 成本计算器
from dataclasses import dataclass
from typing import Dict
@dataclass
class ModelPricing:
input_per_1m: float # USD per 1M input tokens
output_per_1m: float # USD per 1M output tokens
cache_write_per_1m: float = 0.0
cache_read_per_1m: float = 0.0
PRICING: Dict[str, ModelPricing] = {
"gpt-4o": ModelPricing(2.50, 10.00),
"gpt-4o-mini": ModelPricing(0.15, 0.60),
"claude-3-5-sonnet": ModelPricing(3.00, 15.00, 3.75, 0.30),
"claude-3-haiku": ModelPricing(0.25, 1.25, 0.30, 0.03),
"gemini-2.0-flash": ModelPricing(0.075, 0.30),
}
def calculate_monthly_cost(
model: str,
daily_requests: int,
avg_input_tokens: int,
avg_output_tokens: int,
cache_hit_rate: float = 0.0
) -> dict:
p = PRICING[model]
monthly_requests = daily_requests * 30
# 考虑缓存命中后的实际输入 token
cached_tokens = avg_input_tokens * cache_hit_rate
fresh_tokens = avg_input_tokens * (1 - cache_hit_rate)
input_cost = (fresh_tokens * monthly_requests / 1_000_000) * p.input_per_1m
cache_read_cost = (cached_tokens * monthly_requests / 1_000_000) * p.cache_read_per_1m
output_cost = (avg_output_tokens * monthly_requests / 1_000_000) * p.output_per_1m
total = input_cost + cache_read_cost + output_cost
return {
"model": model,
"monthly_requests": monthly_requests,
"total_usd": round(total, 2),
"cost_per_request_usd": round(total / monthly_requests, 6),
"breakdown": {
"input": round(input_cost, 2),
"cache_read": round(cache_read_cost, 2),
"output": round(output_cost, 2)
}
}
# 示例:每天 10,000 次请求
result = calculate_monthly_cost(
model="claude-3-5-sonnet",
daily_requests=10_000,
avg_input_tokens=2000,
avg_output_tokens=500,
cache_hit_rate=0.7 # 70% 缓存命中率
)
print(f"月预估成本: ${result['total_usd']}")
实现 Prompt 缓存(Anthropic)
import anthropic
client = anthropic.Anthropic()
# 将系统提示词存入缓存
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
system=[
{
"type": "text",
"text": "你是一名专业的法律 AI 助手。",
},
{
"type": "text",
"text": open("legal_knowledge_base.txt").read(), # 大容量上下文
"cache_control": {"type": "ephemeral"} # 标记为缓存
}
],
messages=[
{"role": "user", "content": "请说明合同解除的条件。"}
]
)
# 通过 cache_read_input_tokens 确认缓存效率
usage = response.usage
print(f"缓存读取 token: {usage.cache_read_input_tokens}")
print(f"缓存写入 token: {usage.cache_creation_input_tokens}")
自托管决策标准
| 条件 | 使用 API | 自托管 |
|---|---|---|
| 月成本 | 5 万美元以下 | 5 万美元以上 |
| 数据敏感度 | 公开/一般数据 | PII、企业机密 |
| 延迟要求 | 可容忍 1-3 秒 | 需要 100ms 以下 |
| 团队 ML 能力 | 无 | 拥有 MLOps 团队 |
| 定制化需求 | 提示词层面 | 需要微调 |
6. AI 创业公司成功案例分析
Cursor:代码编辑器的 AI 革新
商业模式:
- Hobby:免费(功能受限)
- Pro:每月 20 美元(无限使用 Claude/GPT-4o)
- Business:每座席每月 40 美元(团队功能、SSO)
核心差异化战略:
- 代码库索引:将整个项目索引进向量数据库,提供
@codebase上下文 - Shadow Workspace:AI 在后台预测并预先计算代码变更
- 多文件编辑:一次请求即可同时修改多个文件(Composer 功能)
- 模型选择自由:用户可在 Claude、GPT-4o、Gemini 之间自由选择
与 GitHub Copilot 不同,Cursor 重新设计了 IDE 本身,提供 AI-first 体验。
Perplexity AI:AI 搜索引擎
商业模式:
- Free:基础搜索无限量
- Pro:每月 20 美元(可访问 GPT-4o、Claude,支持文件上传)
- Enterprise:定制价格
核心技术:
- 实时网页抓取 + LLM 答案生成
- 通过来源引用管理幻觉可信度
- 通过追问问题实现对话式搜索体验
变现洞察:不投放广告,仅靠订阅即达成年 ARR 1 亿美元(截至 2024 年)。
Cognition(Devin):AI 软件工程师
商业模式:企业 SaaS
- 月度订阅 + 按用量计费
- 初期定价:每月 500 美元
核心技术:长周期任务的智能体循环
- 代码执行环境(沙箱)
- 长期记忆与规划能力
- 工具使用(终端、浏览器、IDE)
Character.ai:AI 社交平台
商业模式:
- Free:基础角色对话
- c.ai+:每月 9.99 美元(更快响应、高级角色)
特别之处:与谷歌签订了 25 亿美元的授权合约(2024 年)
7. 监管与风险管理
EU AI Act 核心内容
于 2025 年 8 月生效的 EU AI Act 按风险等级对 AI 系统进行分类。
高风险(High-Risk)AI 分类条件:
- 医疗器械、自动驾驶车辆相关
- 招聘、教育评估系统
- 信用评估、贷款审查
- 执法、边境管控
- 司法行政、民主进程
高风险 AI 义务事项:
- 合规性评估(Conformity Assessment)
- 技术文档化与日志留存
- 实施人工监督机制
- 偏见测试与报告
- 需取得 CE 标志
幻觉管理策略
from openai import OpenAI
client = OpenAI()
def grounded_response(query: str, context: str) -> dict:
"""基于 RAG 生成有依据的响应"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": """请务必仅根据提供的上下文作答。
若上下文中没有相关信息,请明确说明"提供的信息中没有该内容"。
若不确定,请回答"需要进一步确认"。"""
},
{
"role": "user",
"content": f"上下文:\n{context}\n\n问题: {query}"
}
],
temperature=0, # 确定性响应
logprobs=True # 用于确认置信度
)
message = response.choices[0]
# 用 logprob 估计不确定性
avg_logprob = sum(
t.logprob for t in message.logprobs.content
) / len(message.logprobs.content) if message.logprobs else 0
return {
"answer": message.message.content,
"confidence": round(2.718 ** avg_logprob, 3), # e^logprob = prob
"needs_review": avg_logprob < -1.5 # 低置信度标记
}
法律责任与 AI 保险
AI 产品发布前检查清单:
- 服务条款中包含 AI 错误免责条款
- 医疗/法律/金融建议免责声明
- 数据处理同意书(GDPR/个人信息保护法)
- AI 生成内容版权政策
- 网络安全保险(AI 专项条款)
- 保留模型偏见审计记录
测验:AI 创业公司与产品开发
Q1. 在 LLM 产品中,Prompt 缓存降低 API 成本的原理是什么?
答案:将相同的提示词前缀(系统提示词、文档上下文等)存入服务端的 KV 缓存,使得包含相同前缀的后续请求可以直接从缓存中读取,而不必重新处理这些 token。
说明:以 Anthropic 为例,缓存读取(cache_read)比普通输入 token 便宜 90%。例如 Claude 3.5 Sonnet 的普通输入价格为每 1M token 3 美元,而缓存读取仅为 0.30 美元。系统提示词较大、或反复引用同一文档的产品(法律 AI、文档问答等)受益最明显。缓存写入(cache_creation)会产生约 25% 的额外成本,但缓存命中率高时,整体成本会大幅下降。
Q2. RAG 与 Fine-tuning:分别应该在什么情况下选择?
答案:需要动态/最新信息、或来源引用很重要时选择 RAG;需要稳定一致的特定风格/格式、或需要深度内化领域专用语言/知识时选择 Fine-tuning。
说明:
- 选择 RAG 的情形:企业内部文档检索、新闻/最新信息问答、需要来源引用的法律与医疗系统、数据频繁变化的场景
- 选择 Fine-tuning 的情形:实现特定品牌语调/风格、在代码生成中强制特定框架风格、用简短提示词完成复杂任务、追求最低延迟(无需系统提示词也能运行)
- 实务建议:多数情况下先从 RAG 开始,若风格/格式问题持续存在,再考虑 RAG + Fine-tuning 的混合方案。
Q3. AI 产品评估中,LLM-as-a-Judge 方法的优缺点是什么?
答案:优点是能进行快速、低成本的大规模自动评估,并能做出细腻的质量判断;缺点是评估模型自身存在偏见及自我偏好(self-preferring)问题。
说明:
- 优点:比人工评估快且便宜 100 倍以上、可应用一致的评分标准、易于规模化、语义判断优于单纯的关键词匹配
- 缺点:用 GPT-4 评估时会偏好 GPT-4 生成的答案、对提示词措辞敏感(评估提示词变化会导致结果不同)、长度偏见(倾向认为更长的答案更好)、无法验证事实准确性
- 缓解方法:使用多个 LLM 评审组成的集成、采用两两比较(pairwise)方式、必须与部分人工评估交叉验证
Q4. 在 EU AI Act 中,被归类为高风险 AI 系统的条件是什么?
答案:属于 Annex III 中列举的 8 个领域(医疗器械、自动驾驶、招聘/人事、教育评估、信用评估、执法、移民/边境管控、司法行政)之一,或对人身安全或基本权利有重大影响的 AI 系统均属于此类。
说明:EU AI Act 于 2024 年生效,2025-2026 年分阶段适用。高风险 AI 须履行合规性评估、取得 CE 标志、留存技术文档、保留日志(至少 6 个月)、设计人工监督机制等义务。违规最高可处以全球年营业额 3% 或 1500 万欧元中较高者的罚款。而普通垃圾邮件过滤器、部分推荐系统、游戏 AI 等则被归为低风险。
Q5. Cursor 与 GitHub Copilot 的核心差异化战略是什么?
答案:Cursor 将整个代码库做成向量嵌入索引,为 AI 提供完整的项目上下文,而 GitHub Copilot 只将当前打开的文件及相邻文件作为上下文。
说明:
- Cursor 的代码库索引:将项目内所有文件转换为嵌入向量并存入本地向量数据库,通过
@codebase命令在整个项目范围内检索相关代码 - 多文件编辑(Composer):一次 AI 请求即可同时修改数十个文件 — Copilot 做不到
- Shadow Workspace:在用户输入的同时,AI 在后台预先计算预测性编辑
- 模型灵活性:可根据任务在 Claude Sonnet、GPT-4o、Gemini 之间选择 — Copilot 仅使用自有模型
- 业务影响:凭借这一战略,2024 年 ARR 突破 1 亿美元,个人开发者满意度上超越 GitHub Copilot
结语
AI 创业公司成功的关键不在于技术,而在于 用正确的方式,通过 AI 解决正确的问题。
实战路线图:
- 先验证 Problem-Solution Fit(人们在没有 AI 的情况下是否也愿意为此付费?)
- 用最便宜的模型构建 MVP(GPT-4o mini、Claude Haiku)
- 建立用户反馈循环与 LLM 评估体系
- 当成本成为问题时才开始优化(缓存、批处理、小模型微调)
- 及早识别监管要求并设计合规方案
Cursor、Perplexity、Cognition 的共同点,都是从现有工具无法解决的痛点问题出发。AI 是手段,价值创造才是目标。
현재 단락 (1/363)
AI 创业公司最常见的错误,是「因为想用 AI」而去做产品。真正该问的问题是 **「这个问题在没有 AI 的情况下能不能解决?」**。