commit a5632c517e2c3624e80abb32182646f2bdec382b Author: pidan <273612724@qq.com> Date: Wed Aug 5 17:25:15 2026 +0800 Initial: knowledge base diff --git a/README.md b/README.md new file mode 100644 index 0000000..167f621 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# AI 落地公司企划项目 + +对应 Wiki: https://wiki.suyushi.top/ai-project + +## 文档 +- `本地模型好用落地设计.html` +- `商业闭环运营基板.html` +- `硬件与部署实现方案.html` +- `样板客户全周期行动包.html` +- `样板客户第一周行动包.html` +- `鞋类样板客户作战计划.html` (= 百年烟斗项目) diff --git a/assets/architecture.png b/assets/architecture.png new file mode 100644 index 0000000..25b74af Binary files /dev/null and b/assets/architecture.png differ diff --git a/assets/dataflow.png b/assets/dataflow.png new file mode 100644 index 0000000..5d5728e Binary files /dev/null and b/assets/dataflow.png differ diff --git a/assets/proposal_content.md b/assets/proposal_content.md new file mode 100644 index 0000000..ed3e295 --- /dev/null +++ b/assets/proposal_content.md @@ -0,0 +1,175 @@ +# 销售型生产企业 AI 数字化建设方案 + +**软硬件一体化 · 私有本地部署 · 数据不出厂** + +客户:【客户名称】 服务商:【您的公司 / 顾问姓名】 日期:【提交日期】 + +--- + +## 一、执行摘要 + +- 一期(打基础,1–2 个月):把分散数据收拢成"一本账",让老板看明白去年赚在哪、亏在哪。 +- 二期(提效率,2–3 个月):本地 AI 自动出周报/月报、盯异常,释放人力。 +- 三期(增利润,3–6 个月):AI 预测备货与资金,真正帮老板省钱。 +- 零风险落地:不碰客户现有 ERP/进销存,旁路部署,数据只出不进。 +- 数据不出厂:全部模型跑在客户内网 EVO-X2 主机,敏感数据不离开办公室。 +- 商务模式:一期一付、做一期看一期效果,老板决策压力小、回款节奏稳。 + +## 二、客户痛点与现状 + +- 数据散落各处:网店后台、Excel 台账、微信记录各管各的,对不上账。 +- 看不清赚亏:想看"去年哪月卖得好、哪个 SKU 最赚"要人工拼表,慢且易错。 +- 人力耗在重复劳动:财务/运营每周手动导出、透视、做图,没空做分析。 +- 库存与现金流焦虑:缺货断供、积压占资金,老板心里没底。 +- 想用 AI 但不会用:担心数据上云泄露、怕采购昂贵系统、怕折腾业务。 + +## 三、方案定位 + +- 旁路部署:在原有业务系统"旁边"独立搭一套 AI 数据分析与自动化辅助系统。 +- 数据只出不进:从原系统(网店/进销存)只读导出,分析结果不回写,不影响现有流程。 +- 私有本地运行:模型与数据库部署在客户内网主机,敏感经营数据不出厂。 +- 轻量可演进:不强制替换 ERP,先见效再扩展,风险可控、投入可控。 +- 管理层触达:看板 + 微信推送,老板手机即可看报告、收预警。 + +## 四、整体技术架构(四层 + 底层硬件) + +【图1】 + +- 底层:硬件与系统 —— EVO-X2 128GB 统一内存主机 + Ubuntu 24.04 LTS。 +- 第一层:数据层 —— SQLite 数据库 + Python 清洗脚本 + Chroma 向量知识库。 +- 第二层:模型层 —— Ollama + Qwen3.6-35B 本地模型,DeepSeek V4 Flash 云端备用。 +- 第三层:智能调度层 —— Hermes Agent 连接模型、工具与消息平台。 +- 第四层:触达层 —— Streamlit 数据看板 + 微信/飞书/钉钉推送。 + +## 五、技术选型详解 + +### 5.1 底层:硬件与系统部署方案 + +核心选型逻辑:EVO-X2 的 128GB 统一内存 + 256GB/s 带宽,能在 2 万元预算内本地流畅运行 30B 级别模型,整机功耗约 100W,适合 24 小时开机。 + +| 项目 | 配置 | 说明 | +| --- | --- | --- | +| 主机 | GMKtec EVO-X2(128GB 版) | 迷你主机,不占空间、静音,适合办公室环境 | +| 内存 | 128GB LPDDR5X 统一内存(可分 96GB 给 GPU) | 本地跑 35B MoE 模型 + 向量库 + 数据库够用 | +| 存储 | 2TB NVMe SSD × 2(系统盘/数据盘分离) | 系统盘装系统和模型,数据盘存数据库与日志 | +| 操作系统 | Ubuntu 24.04 LTS | 对 AMD ROCm 支持最好,AI 性能比 Windows 高 20%–30% | +| 网络 | 内网固定 IP + Tailscale | 用于远程巡检和系统更新 | +| 备用方案 | DeepSeek V4 Flash API | 本地模型处理不了的复杂任务自动 fallback 到云端 | + +### 5.2 第一层:数据层方案 + +- 数据库:SQLite 3,轻量零配置,单文件易备份迁移,支持 SQL 查询。 +- 清洗脚本:Python(pandas + openpyxl),每月定时运行 Excel → 清洗 → 入库。 +- 中间格式:Markdown 表格,AI 理解准确率最高的文本格式,便于人工核对。 +- 向量知识库:Chroma(轻量级),存储产品手册、会议纪要,供 RAG 检索。 +- 定时任务:cron(Linux 自带),每月 1 号自动运行清洗脚本,无需人工干预。 + +### 5.3 第二层:模型层方案 + +核心选型逻辑:Qwen3.6-35B-A3B 为 MoE 架构,激活仅 3B 参数,本地实测 25–35 Token/s,智商接近 Claude 3.5 Sonnet,完全本地运行,数据不出厂。 + +| 组件 | 技术选型 | 说明 | +| --- | --- | --- | +| 本地推理引擎 | Ollama | 一行命令部署,兼容 OpenAI API 格式,管理方便 | +| 主模型 | Qwen3.6-35B-A3B(4bit 量化版) | 智商约等于 Claude 3.5 Sonnet,速度 25–35 Token/s,占地约 20GB | +| 备用云端模型 | DeepSeek V4 Flash(API) | 处理超长文本或复杂推理,按量付费,月均成本低于 200 元 | +| 嵌入模型 | bge-m3(本地) | 知识库向量化,纯本地运行,不依赖外网 | +| 模型格式 | GGUF(llama.cpp 兼容) | 支持 CPU + GPU 混合推理,显存不足可 fallback 到内存 | + +### 5.4 第三层:智能调度层方案 + +- 智能体框架:Hermes Agent,连接模型、工具、消息平台,作为系统"大脑"。 +- Web 管理面板:Hermes Web UI,可视化配置模型、工具、知识库,查看 Token 消耗和日志。 +- 工具定义:Python 函数注册为 Tools,让 AI 可以调用数据库查询、清洗脚本、发送报告。 +- 消息网关:iLink Bot API(微信),让 AI 通过微信推送报告、接收指令。 +- 国产开源框架,原生支持微信接入与工具调用,部署简单,适合 ToB 场景。 + +### 5.5 第四层:触达层方案 + +- 数据看板:Streamlit(Python),展示销售趋势、SKU 排行、区域分布、异常预警。 +- 报表推送:Hermes Agent + 微信 Bot,每周一自动推送《经营简报》,图文并茂。 +- 多通道:飞书/钉钉/企业微信(可选),走同一消息通道。 +- 人工审核:每月 2 次远程巡检,检查系统日志、备份数据库、确认推送正常。 + +## 六、数据流转全链路 + +【图2】 + +数据从原系统"只出不进":每月原始数据经清洗脚本进入 SQLite 数据库;AI(本地 Ollama + 云端备用 + 向量知识库)分析后生成看板与报表;最终通过微信推送给老板,人工审阅后执行决策。全程不影响客户现有业务流程。 + +## 七、三期建设路线 + +### 7.1 第一期:数据资产化(1–2 个月) + +核心任务:打通数据孤岛,建立统一的数据看板。 + +- 数据清洗与入库:导出近 1–2 年网店销售数据(订单、SKU、区域、金额),清洗后存入 SQLite 数据库。 +- 建立核心指标:固定计算口径(销售额、退货率、客单价、库存周转天数),让老板和各部门对"数据"有统一认知。 +- 搭建基础看板:开发简单 Web 看板(Streamlit 或 Grafana),实时展示月度销售额趋势、SKU 排行榜、区域分布图。 +- 交付物:标准化数据表结构文档、月度/年度销售数据看板(在线链接)、《公司数据资产盘点报告》。 +- 验收标准:老板能随时登录看板,查看到去年任意月份的销售数据,且数据准确无误。 + +### 7.2 第二期:分析智能化(2–3 个月) + +核心任务:接入 AI 模型,实现自动化分析和预警。 + +- 本地模型部署:在客户内部服务器(或 EVO-X2 主机)部署 Qwen3.6 等小模型,确保财务和客户数据不出厂。 +- 自动化周报/月报:AI 自动读取数据库,每周一生成《经营简报》(含销量异动、库存预警),通过飞书/钉钉/微信推送。 +- 异常归因分析:SKU 销量暴跌时,AI 自动关联时间段(是否缺货、是否被竞品跟价),给出"可能原因"建议。 +- 交付物:本地 AI 模型推理服务、自动化周报/月报推送机器人、AI 异常预警逻辑配置文档。 +- 验收标准:每月初老板在手机上收到上个月完整经营分析报告,重点异常项清晰标注。 + +### 7.3 第三期:决策自动化(3–6 个月) + +核心任务:从"发现问题"升级到"给出方案",并介入业务流程。 + +- 库存预测与补货建议:AI 根据历史销售和季节因子预测下月各 SKU 需求量,自动生成采购建议单(买多少、什么时候买)。 +- 现金流模拟:输入下月预计支出和回款周期,AI 模拟现金流健康度,预警资金缺口。 +- 选品及定价策略:结合外部市场数据(大盘走势),定期输出《SKU 优化建议》(淘汰哪些、主推哪些、降价清仓)。 +- 交付物:智能库存预警与采购建议系统、现金流压力测试看板、SKU 生命周期管理报告。 +- 验收标准:公司参考 AI 建议进行至少一次库存结构调整,并产生库存占用资金减少的可量化效果。 + +### 7.4 三期对比总览 + +| 阶段 | 周期 | 核心目标 | 关键交付 | 老板获得感 | +| --- | --- | --- | --- | --- | +| 一期 数据资产化 | 1–2 个月 | 理清家底 | 统一看板 + 数据资产报告 | 看明白赚亏 | +| 二期 分析智能化 | 2–3 个月 | 提效率 | 本地 AI + 自动周报 + 预警 | AI 分析师盯盘 | +| 三期 决策自动化 | 3–6 个月 | 增利润 | 预测补货 + 现金流模拟 | 商业大脑给方案 | + +## 八、成本估算(仅硬件/云,不含服务费) + +| 项目 | 预估金额(人民币) | 备注 | +| --- | --- | --- | +| 主机硬件(EVO-X2 128GB) | 15,000 – 18,000 元 | 一次投入,含 2TB SSD | +| 备用配件(额外 2TB SSD 等) | 1,000 – 2,000 元 | 数据备份和冗余 | +| 云端 API(DeepSeek Flash) | 100 – 200 元/月 | 仅复杂任务触发,日常主要用本地模型 | +| 网络/域名(如需公网访问) | 0 – 500 元/年 | 可选项,非必需 | + +说明:以上为硬件与云资源成本估算,实施服务费由服务商与客户另行协商确定,按一期一付、验收后付款。 + +## 九、客户需配合准备清单 + +| 序号 | 内容 | 说明 | +| --- | --- | --- | +| 1 | 近 1–2 年网店销售数据(Excel/CSV) | 用于清洗和导入数据库 | +| 2 | 公司产品手册/商品台账(Excel) | 补充 SKU 维度信息(品类、成本、建议售价) | +| 3 | 一台能联网的电脑 / 一个不用的手机号 | 用于微信 Bot 登录和远程维护通道 | +| 4 | 内网 WiFi 或有线网络 | 固定内网 IP 用于远程维护(可用 Tailscale 替代) | + +## 十、服务价值与下一步行动 + +### 10.1 服务价值(三句话) + +- 第一期:我把你家散落各处的数据收拢成"一本账",让你看明白钱花哪去了。 +- 第二期:我给你配个"AI 数据分析师",24 小时盯着数据,出问题第一时间告诉你。 +- 第三期:我给你装上"AI 商业大脑",不仅告诉你哪有问题,还告诉你怎么办,甚至模拟办了之后会怎样。 +- 复制扩张:样板跑通后,同一套架构可快速复制到同类销售型生产企业,边际成本极低。 + +### 10.2 下一步行动 + +- 建议从一期起步:先交付"一本账"看板,2 个月内见效。 +- 我方动作:① 拉取贵司近 1–2 年销售数据做样例清洗;② 部署 EVO-X2 演示环境;③ 输出首版看板。 +- 贵司配合:提供销售数据/台账、准备一台不用的手机、确认内网接入。 +- 确认即启动:签订一期合作,按里程碑验收付款。 +- 联系人:【您的姓名 / 微信】 diff --git a/gen_pptx.py b/gen_pptx.py new file mode 100644 index 0000000..e10e514 --- /dev/null +++ b/gen_pptx.py @@ -0,0 +1,522 @@ +# -*- coding: utf-8 -*- +""" +生成《销售型生产企业 AI 数字化建设方案》策划案 PPT (.pptx) +- 两张图示(architecture.png / dataflow.png) 用 matplotlib 渲染 +- 正文用【占位符】当可复用模板;演讲者备注含"示例填充 + 讲解话术" +- 成本页仅含硬件/云成本,不含服务费报价 +""" +import os +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from matplotlib.patches import FancyBboxPatch +import matplotlib.font_manager as fm + +# ---------- 路径 ---------- +BASE = r"C:\Users\Administrator\Desktop\AI落地公司企划项目" +ASSETS = os.path.join(BASE, "assets") +os.makedirs(ASSETS, exist_ok=True) +ARCH_PNG = os.path.join(ASSETS, "architecture.png") +FLOW_PNG = os.path.join(ASSETS, "dataflow.png") +OUT_PPTX = os.path.join(BASE, "销售型生产企业AI数字化建设方案.pptx") + +# ---------- matplotlib 中文字体 ---------- +def setup_cjk_font(): + for p in [r"C:/Windows/Fonts/msyh.ttc", r"C:/Windows/Fonts/simhei.ttf", + r"C:/Windows/Fonts/simsun.ttc", r"C:/Windows/Fonts/msyhbd.ttc"]: + if os.path.exists(p): + try: + fm.fontManager.addfont(p) + except Exception: + pass + cands = ["Microsoft YaHei", "SimHei", "SimSun", "Noto Sans CJK SC", + "WenQuanYi Micro Hei", "Source Han Sans SC"] + avail = {f.name for f in fm.fontManager.ttflist} + chosen = next((c for c in cands if c in avail), None) + if chosen: + plt.rcParams["font.sans-serif"] = [chosen] + plt.rcParams["axes.unicode_minus"] = False + +setup_cjk_font() + +# ---------- 图1:四层技术架构栈 ---------- +def draw_architecture(path): + fig, ax = plt.subplots(figsize=(12.5, 9)) + ax.set_xlim(0, 12.2) + ax.set_ylim(0, 9.2) + ax.axis("off") + bands = [ + ("触达层", "第四层", "#2E93F7", ["Web 看板 (Streamlit)", "微信/钉钉/飞书推送", "经营简报(图文)"]), + ("智能调度层", "第三层", "#1E6FB8", ["Hermes Agent", "Web 管理面板", "工具调用·消息网关"]), + ("模型层", "第二层", "#15538C", ["Qwen3.6-35B (Ollama)", "DeepSeek V4 Flash 备用", "bge-m3 向量嵌入"]), + ("数据层", "第一层", "#0E3D66", ["SQLite 数据库", "Python 清洗脚本", "Chroma 向量知识库"]), + ("硬件与系统", "底层", "#0B2545", ["EVO-X2 128GB", "Ubuntu 24.04 LTS", "2×2TB NVMe·Tailscale"]), + ] + n = len(bands) + bh, gap, bottom = 1.45, 0.22, 0.55 + for i, (name, tag, color, chips) in enumerate(bands): + y = bottom + i * (bh + gap) + band = FancyBboxPatch((0.4, y), 11.4, bh, + boxstyle="round,pad=0.02,rounding_size=0.12", + linewidth=0, facecolor=color, alpha=0.95) + ax.add_patch(band) + ax.text(0.7, y + bh/2 + 0.18, name, color="white", fontsize=17, + fontweight="bold", va="center", ha="left") + ax.text(0.7, y + bh/2 - 0.32, tag, color="#BBD6F2", fontsize=10, + va="center", ha="left") + cx, cw, sp = 3.3, 2.55, 0.16 + for j, c in enumerate(chips): + x = cx + j * (cw + sp) + chip = FancyBboxPatch((x, y + 0.30), cw, bh - 0.60, + boxstyle="round,pad=0.02,rounding_size=0.08", + linewidth=0, facecolor="white", alpha=0.94) + ax.add_patch(chip) + ax.text(x + cw/2, y + bh/2, c, color="#0B2545", fontsize=10.5, + fontweight="bold", va="center", ha="center") + ax.annotate("", xy=(0.4, bottom + n*(bh+gap) - 0.15), xytext=(0.4, bottom + 0.15), + arrowprops=dict(arrowstyle="-|>", color="#9FB6CE", lw=2)) + ax.text(0.2, bottom + n*(bh+gap)/2, "数据流\n自下而上", color="#9FB6CE", + fontsize=9, va="center", ha="center", rotation=90) + ax.text(6.1, 9.0, "整体技术架构(四层 + 底层硬件)", color="#0B2545", + fontsize=14, fontweight="bold", va="center", ha="center") + plt.tight_layout() + fig.savefig(path, dpi=200, bbox_inches="tight", facecolor="white") + plt.close(fig) + +# ---------- 图2:数据流转全链路 ---------- +def draw_dataflow(path): + fig, ax = plt.subplots(figsize=(14, 7)) + ax.set_xlim(0, 14) + ax.set_ylim(0, 7) + ax.axis("off") + nodes = [ + (1.0, 4.4, "每月原始数据\n(Excel/CSV)", "#0E3D66"), + (3.3, 4.4, "清洗脚本\n(pandas)", "#15538C"), + (5.6, 4.4, "SQLite\n数据库", "#1E6FB8"), + (8.0, 4.4, "Hermes Agent\n调度", "#2E93F7"), + (10.4, 4.4, "看板 / 报表", "#2E93F7"), + (12.6, 4.4, "微信推送\n→ 老板决策", "#FF8A3D"), + ] + models = [ + (7.0, 1.7, "本地 Ollama\nQwen3.6", "#FF8A3D"), + (8.6, 1.7, "DeepSeek API\n(备用)", "#FF8A3D"), + (10.2, 1.7, "向量知识库\nChroma", "#FF8A3D"), + ] + def box(x, y, text, color, w=1.7, h=1.0): + b = FancyBboxPatch((x - w/2, y - h/2), w, h, + boxstyle="round,pad=0.02,rounding_size=0.12", + linewidth=0, facecolor=color, alpha=0.96) + ax.add_patch(b) + ax.text(x, y, text, color="white", fontsize=10.5, fontweight="bold", + va="center", ha="center") + for x, y, t, c in nodes: + box(x, y, t, c) + for x, y, t, c in models: + box(x, y, t, c, w=1.7, h=0.95) + acolor = "#7A94B0" + for i in range(len(nodes) - 1): + x1, x2 = nodes[i][0], nodes[i+1][0] + ax.annotate("", xy=(x2 - 0.85, 4.4), xytext=(x1 + 0.85, 4.4), + arrowprops=dict(arrowstyle="-|>", color=acolor, lw=2)) + for mx, _, _, _ in models: + ax.annotate("", xy=(8.0, 3.9), xytext=(mx, 2.17), + arrowprops=dict(arrowstyle="-|>", color="#FF8A3D", lw=1.8)) + ax.text(8.6, 2.6, "模型层支撑", color="#FF8A3D", fontsize=9, + va="center", ha="center") + ax.text(7.0, 6.5, "数据流转全链路:只出不进,分析结果闭环到老板手机", + color="#0B2545", fontsize=14, fontweight="bold", va="center", ha="center") + plt.tight_layout() + fig.savefig(path, dpi=200, bbox_inches="tight", facecolor="white") + plt.close(fig) + +draw_architecture(ARCH_PNG) +draw_dataflow(FLOW_PNG) +print("diagrams done") + +# ============ PPTX ============ +from pptx import Presentation +from pptx.util import Inches, Pt, Emu +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +BG_DARK = RGBColor(0x0B, 0x25, 0x45) +PRIMARY = RGBColor(0x13, 0x31, 0x5C) +ACCENT = RGBColor(0x2E, 0x93, 0xF7) +HIGHLIGHT = RGBColor(0xFF, 0x8A, 0x3D) +LIGHT = RGBColor(0xF4, 0xF7, 0xFB) +GRAY = RGBColor(0x6B, 0x7A, 0x8F) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +TEXTDARK = RGBColor(0x1A, 0x24, 0x33) + +prs = Presentation() +SW = Inches(13.333) +SH = Inches(7.5) +prs.slide_width = SW +prs.slide_height = SH +BLANK = prs.slide_layouts[6] + +def add_bg(slide, color=BG_DARK): + s = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH) + s.fill.solid(); s.fill.fore_color.rgb = color + s.line.fill.background(); s.shadow.inherit = False + return s + +def add_title(slide, title, page=None, subtitle=None): + bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.15)) + bar.fill.solid(); bar.fill.fore_color.rgb = PRIMARY + bar.line.fill.background(); bar.shadow.inherit = False + stripe = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.15), SW, Inches(0.06)) + stripe.fill.solid(); stripe.fill.fore_color.rgb = ACCENT + stripe.line.fill.background(); stripe.shadow.inherit = False + tb = slide.shapes.add_textbox(Inches(0.55), Inches(0.16), SW - Inches(1.1), Inches(0.95)) + tf = tb.text_frame; tf.word_wrap = True + p = tf.paragraphs[0]; r = p.add_run(); r.text = title + r.font.size = Pt(25); r.font.bold = True; r.font.color.rgb = WHITE + if subtitle: + p2 = tf.add_paragraph(); r2 = p2.add_run(); r2.text = subtitle + r2.font.size = Pt(12); r2.font.color.rgb = RGBColor(0xBB, 0xD6, 0xF2) + if page is not None: + ft = slide.shapes.add_textbox(Inches(0.55), SH - Inches(0.4), SW - Inches(1.6), Inches(0.3)) + fp = ft.text_frame.paragraphs[0]; fr = fp.add_run() + fr.text = "销售型生产企业 AI 数字化建设方案 · 【客户名称】" + fr.font.size = Pt(9); fr.font.color.rgb = GRAY + pg = slide.shapes.add_textbox(SW - Inches(1.05), SH - Inches(0.4), Inches(0.6), Inches(0.3)) + pp = pg.text_frame.paragraphs[0]; pr = pp.add_run(); pr.text = str(page) + pr.font.size = Pt(9); pr.font.color.rgb = GRAY; pp.alignment = PP_ALIGN.RIGHT + +def add_bullets(slide, items, left, top, width, height, size=15, color=TEXTDARK): + tb = slide.shapes.add_textbox(left, top, width, height) + tf = tb.text_frame; tf.word_wrap = True + first = True + for it in items: + text, lvl = it if isinstance(it, tuple) else (it, 0) + p = tf.paragraphs[0] if first else tf.add_paragraph() + first = False + p.level = lvl + p.space_after = Pt(9) + prefix = "• " if lvl == 0 else " – " + r = p.add_run(); r.text = prefix + text + r.font.size = Pt(size if lvl == 0 else size - 2) + r.font.color.rgb = color + return tb + +def add_table(slide, data, left, top, width, height, col_widths=None): + rows = len(data); cols = len(data[0]) + gtbl = slide.shapes.add_table(rows, cols, left, top, width, height) + table = gtbl.table + if col_widths: + tot = sum(col_widths) + for i, cw in enumerate(col_widths): + table.columns[i].width = Emu(int(width * cw / tot)) + for ri, row in enumerate(data): + for ci, val in enumerate(row): + cell = table.cell(ri, ci) + cell.margin_left = Inches(0.08); cell.margin_right = Inches(0.08) + cell.margin_top = Inches(0.04); cell.margin_bottom = Inches(0.04) + cell.vertical_anchor = MSO_ANCHOR.MIDDLE + tf = cell.text_frame; tf.word_wrap = True + p = tf.paragraphs[0]; r = p.add_run(); r.text = val + r.font.size = Pt(11) + if ri == 0: + cell.fill.solid(); cell.fill.fore_color.rgb = PRIMARY + r.font.color.rgb = WHITE; r.font.bold = True + else: + cell.fill.solid() + cell.fill.fore_color.rgb = WHITE if ri % 2 else LIGHT + r.font.color.rgb = TEXTDARK + if ci == 0: + r.font.bold = True + return table + +def add_image(slide, path, left, top, width): + slide.shapes.add_picture(path, left, top, width=width) + +def set_notes(slide, text): + slide.notes_slide.notes_text_frame.text = text + +def new_content(title, page, subtitle=None): + s = prs.slides.add_slide(BLANK) + add_bg(s, LIGHT) + add_title(s, title, page=page, subtitle=subtitle) + return s + +# ---------- 1. 封面 ---------- +cov = prs.slides.add_slide(BLANK) +add_bg(cov, BG_DARK) +# 左侧强调条 +acc = cov.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.22), SH) +acc.fill.solid(); acc.fill.fore_color.rgb = ACCENT; acc.line.fill.background(); acc.shadow.inherit = False +# 主标题 +t = cov.shapes.add_textbox(Inches(0.9), Inches(1.9), Inches(11.5), Inches(1.6)) +tf = t.text_frame; tf.word_wrap = True +p = tf.paragraphs[0]; r = p.add_run(); r.text = "销售型生产企业" +r.font.size = Pt(46); r.font.bold = True; r.font.color.rgb = WHITE +p2 = tf.add_paragraph(); r2 = p2.add_run(); r2.text = "AI 数字化建设方案" +r2.font.size = Pt(46); r2.font.bold = True; r2.font.color.rgb = ACCENT +# 副标题 +st = cov.shapes.add_textbox(Inches(0.9), Inches(3.7), Inches(11.5), Inches(0.6)) +sp = st.text_frame.paragraphs[0]; sr = sp.add_run() +sr.text = "软硬件一体化 · 私有本地部署 · 数据不出厂" +sr.font.size = Pt(18); sr.font.color.rgb = RGBColor(0xBB, 0xD6, 0xF2) +# 一句话价值 +vt = cov.shapes.add_textbox(Inches(0.9), Inches(4.5), Inches(11.5), Inches(0.6)) +vp = vt.text_frame.paragraphs[0]; vr = vp.add_run() +vr.text = "把“脏数据”变成“干净资产”,让 AI 替你看盘、盯异常、做决策" +vr.font.size = Pt(15); vr.font.color.rgb = WHITE +# 底部占位信息 +info = cov.shapes.add_textbox(Inches(0.9), Inches(6.0), Inches(11.5), Inches(1.0)) +ip = info.text_frame; ip.word_wrap = True +for i, line in enumerate([ + "客户:【客户名称】 行业:【如 母婴/食品/五金 网店工厂】", + "服务商:【您的公司 / 顾问姓名】 日期:【提交日期】"]): + pp = ip.paragraphs[0] if i == 0 else ip.add_paragraph() + rr = pp.add_run(); rr.text = line + rr.font.size = Pt(13); rr.font.color.rgb = RGBColor(0x9F, 0xB6, 0xCE) +set_notes(cov, + "【示例填充】客户:杭州某母婴用品网店工厂;行业:母婴用品;服务商:XX 数字化工作室;日期:2026-09-01\n" + "【讲解话术】老板您好,这份方案不卖您系统、不碰您现有进销存,只在您办公室放一台小主机," + "把散落各处的销售数据收拢成'一本账',再用本地 AI 帮您看盘、盯异常、给决策。数据全在您自己厂里,不出门。") + +# ---------- 2. 目录 ---------- +s = new_content("目录", 1) +add_bullets(s, [ + "一、为什么现在要做(痛点与现状)", + "二、方案定位与整体技术架构", + "三、四层技术架构详解(硬件 / 数据 / 模型 / 调度 / 触达)", + "四、数据流转全链路", + "五、三期建设路线(资产化 → 智能化 → 自动化)", + "六、成本估算与客户配合事项", + "七、服务价值与下一步行动", +], Inches(0.9), Inches(1.6), Inches(11.5), Inches(5.0), size=18) +set_notes(s, "【讲解话术】我按'先理清家底→再发现问题→最后自动决策'三步走,今天重点讲清每一步给您带来什么、要投多少。") + +# ---------- 3. 执行摘要 ---------- +s = new_content("执行摘要", 2) +add_bullets(s, [ + "一期(打基础,1–2 月):把分散数据收拢成“一本账”,让老板看明白去年赚在哪、亏在哪。", + "二期(提效率,2–3 月):本地 AI 自动出周/月报、盯异常,释放人力。", + "三期(增利润,3–6 月):AI 预测备货与资金,真正帮老板省钱。", + "零风险落地:不碰客户现有 ERP/进销存,旁路部署,数据只出不进。", + "数据不出厂:全部模型跑在客户内网 EVO-X2 主机,敏感数据不离开办公室。", + "一期一付、做一期看一期效果,老板决策压力小、回款节奏稳。", +], Inches(0.9), Inches(1.6), Inches(11.5), Inches(5.0), size=15) +set_notes(s, + "【示例填充】以母婴客户为例:一期后老板能随时看'去年 11 月双11 哪个 SKU 最赚';" + "二期后每周一手机收到经营简报;三期后 AI 建议'年后少备 A 款、多备 B 款'。\n" + "【讲解话术】您不用一次性投很多,先做一期看效果,满意再继续。") + +# ---------- 4. 客户痛点与现状 ---------- +s = new_content("一、为什么现在要做:客户痛点与现状", 3) +add_bullets(s, [ + "数据散落各处:网店后台、Excel 台账、微信记录各管各的,对不上账。", + "看不清赚亏:想看“去年哪月卖得好、哪个 SKU 最赚”要人工拼表,慢且易错。", + "人力耗在重复劳动:财务/运营每周手动导出、透视、做图,没空做分析。", + "库存与现金流焦虑:缺货断供、积压占资金,老板心里没底。", + "想用 AI 但不会用:担心数据上云泄露、怕采购昂贵系统、怕折腾业务。", +], Inches(0.9), Inches(1.6), Inches(11.5), Inches(5.0), size=15) +set_notes(s, + "【示例填充】某母婴用品网店工厂,年销约 3000 万,3 个平台店铺,SKU 200+," + "老板最关心库存周转和回款,财务每周花 1.5 天做表。\n" + "【讲解话术】这些痛点您是不是都有?这套方案就是专门冲着'看不清、做表累、心里没底'来的。") + +# ---------- 5. 方案定位 ---------- +s = new_content("二、方案定位:旁路部署,零风险落地", 4) +add_bullets(s, [ + "旁路部署:在原有业务系统“旁边”独立搭一套 AI 数据分析与自动化辅助系统。", + "数据只出不进:从原系统(网店/进销存)只读导出,分析结果不回写,不影响现有流程。", + "私有本地运行:模型与数据库部署在客户内网主机,敏感经营数据不出厂。", + "轻量可演进:不强制替换 ERP,先见效再扩展,风险可控、投入可控。", + "管理层触达:看板 + 微信推送,老板手机即可看报告、收预警。", +], Inches(0.9), Inches(1.6), Inches(11.5), Inches(5.0), size=15) +set_notes(s, + "【讲解话术】一句话:我不在您现有系统上动刀,只在旁边加一台'AI 数据助理'," + "您原来的进销存该怎么用还怎么用,零风险。") + +# ---------- 6. 四层技术架构总览 ---------- +s = new_content("三、整体技术架构(四层 + 底层硬件)", 5) +add_image(s, ARCH_PNG, Inches(2.0), Inches(1.35), Inches(9.3)) +set_notes(s, + "【讲解话术】从下往上看:最底下是您办公室一台 EVO-X2 小主机;往上是数据层、模型层、" + "调度层,最上面是您手机能看到的看板和微信推送。数据从原系统只进到最底层,结果从最上层出来。\n" + "注:具体型号(EVO-X2 / Qwen3.6 / DeepSeek 等)以交付时主流为准。") + +# ---------- 7. 底层:硬件与系统 ---------- +s = new_content("底层:硬件与系统部署方案", 6, subtitle="核心逻辑:2 万预算内本地流畅跑 30B 级模型,功耗约 100W,适合 24h 开机") +add_table(s, [ + ["项目", "配置", "说明"], + ["主机", "GMKtec EVO-X2(128GB 版)", "迷你主机,不占空间、静音,适合办公室"], + ["内存", "128GB LPDDR5X 统一内存(可分 96GB 给 GPU)", "本地跑 35B MoE + 向量库 + 数据库够用"], + ["存储", "2TB NVMe SSD ×2(系统盘/数据盘分离)", "系统装系统模型,数据盘存库与日志"], + ["操作系统", "Ubuntu 24.04 LTS", "对 AMD ROCm 支持好,AI 性能高 20–30%"], + ["网络", "内网固定 IP + Tailscale", "远程巡检与系统更新"], + ["备用方案", "DeepSeek V4 Flash API", "复杂任务自动 fallback 到云端"], +], Inches(0.7), Inches(1.7), Inches(11.9), Inches(4.6), col_widths=[1.3, 3.6, 4.0]) +set_notes(s, + "【示例填充】以母婴客户为例:一台 EVO-X2 放财务室,插网线,固定内网 IP,我用 Tailscale 远程维护。\n" + "【讲解话术】这台机器比一台台式机还小,静音不发热,24 小时开着电费忽略不计,但能本地跑大模型。") + +# ---------- 8. 第一层:数据层 ---------- +s = new_content("第一层:数据层方案", 7, subtitle="核心逻辑:SQLite 单文件易备份;Markdown 是 AI 理解准确率最高的文本格式") +add_bullets(s, [ + "数据库:SQLite 3,轻量零配置,单文件易备份迁移。", + "清洗脚本:Python(pandas + openpyxl),每月定时运行 Excel→清洗→入库。", + "中间格式:Markdown 表格,AI 理解准确率最高的文本格式,便于人工核对。", + "向量知识库:Chroma(轻量),存产品手册/会议纪要,供 RAG 检索。", + "定时任务:cron(Linux 自带),每月 1 号自动清洗,无需人工干预。", +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【讲解话术】您每月把网店导出的 Excel 丢进一个文件夹,系统自己洗好存进数据库," + "不用您再手动拼表。") + +# ---------- 9. 第二层:模型层 ---------- +s = new_content("第二层:模型层方案", 8, subtitle="核心逻辑:Qwen3.6 为 MoE,激活仅 3B,在 EVO-X2 上 25–35 Token/s,数据不出厂") +add_table(s, [ + ["组件", "技术选型", "说明"], + ["本地推理引擎", "Ollama", "一行命令部署,兼容 OpenAI API,管理方便"], + ["主模型", "Qwen3.6-35B-A3B(4bit 量化)", "智商≈Claude 3.5 Sonnet,约 20GB,速度 25–35 Token/s"], + ["备用云端模型", "DeepSeek V4 Flash API", "复杂推理按量付费,月均 < 200 元"], + ["嵌入模型", "bge-m3(本地)", "知识库向量化,纯本地不依赖外网"], + ["模型格式", "GGUF(llama.cpp 兼容)", "CPU+GPU 混合推理,显存不足可 fallback 内存"], +], Inches(0.7), Inches(1.7), Inches(11.9), Inches(4.6), col_widths=[1.8, 3.2, 4.0]) +set_notes(s, + "【讲解话术】95% 的分析都在您这台机器上本地算,只有极少量复杂任务才花几块钱走云端," + "您的客户名单和金额永远不会出办公室。") + +# ---------- 10. 第三层:智能调度层 ---------- +s = new_content("第三层:智能调度层方案", 9, subtitle="核心逻辑:Hermes Agent 国产开源,原生支持微信接入与工具调用,适合 ToB") +add_bullets(s, [ + "智能体框架:Hermes Agent,连接模型/工具/消息平台,系统“大脑”。", + "Web 管理面板:可视化配置模型、工具、知识库,查看 Token 消耗与日志。", + "工具定义:Python 函数注册为 Tools,让 AI 能查库、跑脚本、发报告。", + "消息网关:iLink Bot API(微信),AI 主动推送报告、接收指令。", + "国产开源、部署简单,适合 ToB 场景。", +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【讲解话术】这一层就是让 AI '会干活':它能自己查数据库、自己生成报告、自己发到您微信上。") + +# ---------- 11. 第四层:触达层 ---------- +s = new_content("第四层:触达层方案", 10, subtitle="核心逻辑:Streamlit 快速搭看板;微信推送让老板手机收报告,无需装 APP") +add_bullets(s, [ + "数据看板:Streamlit(Python),展示销售趋势、SKU 排行、区域分布、异常预警。", + "报表推送:Hermes Agent + 微信 Bot,每周一自动推送《经营简报》图文。", + "多通道:飞书/钉钉/企业微信可选,走同一消息通道。", + "人工巡检:每月 2 次远程巡检,查日志、备份库、确认推送正常。", +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【示例填充】母婴客户用微信:每周一早 9 点,老板微信收到上周经营简报,含销量异动和库存预警。\n" + "【讲解话术】您不用学新软件,报告直接发您微信,像收一条工作消息一样简单。") + +# ---------- 12. 数据流转全链路 ---------- +s = new_content("四、数据流转全链路", 11) +add_image(s, FLOW_PNG, Inches(1.1), Inches(1.35), Inches(11.1)) +set_notes(s, + "【讲解话术】整条链路是'只进不出':原始数据进来,洗干净存库,AI 分析完把结论推到您手机," + "结论不回写您的业务系统,所以绝对不影响您现有流程。") + +# ---------- 13. 第一期 ---------- +s = new_content("五之一、第一期:数据资产化(1–2 个月)", 12, subtitle="核心任务:打通数据孤岛,建立统一数据看板") +add_bullets(s, [ + "数据清洗与入库:导出近 1–2 年网店销售(订单/SKU/区域/金额),清洗入 SQLite。", + "建立核心指标:固定口径(销售额、退货率、客单价、库存周转天数)。", + "搭建基础看板:Web 看板展示月度趋势、SKU 排行、区域分布。", + ("交付物:数据表结构文档、在线看板、《公司数据资产盘点报告》", 0), + ("验收:老板随时登录查任意月份数据且准确", 0), +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【示例填充】母婴客户一期交付:一张看板,能点开看'2025 各月销售额''TOP20 SKU''华东/华南占比'。\n" + "【讲解话术】一期结束,您就拥有了全公司统一的'一本账'。") + +# ---------- 14. 第二期 ---------- +s = new_content("五之二、第二期:分析智能化(2–3 个月)", 13, subtitle="核心任务:接入 AI,实现自动化分析与预警") +add_bullets(s, [ + "本地模型部署:EVO-X2 内部署 Qwen3.6 等小模型,数据不出厂。", + "自动化周/月报:AI 读库,每周一生成《经营简报》推送微信。", + "异常归因:SKU 销量暴跌时,AI 关联缺货/竞品跟价,给“可能原因”。", + ("交付物:本地推理服务、推送机器人、异常预警配置文档", 0), + ("验收:每月初手机收到完整经营分析,重点异常清晰标注", 0), +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【示例填充】母婴客户二期:某 SKU 周销量跌 40%,AI 简报标注'疑似断货+竞品降价',并附建议。\n" + "【讲解话术】这期相当于给您配了个 24 小时不休息的数据分析师。") + +# ---------- 15. 第三期 ---------- +s = new_content("五之三、第三期:决策自动化(3–6 个月)", 14, subtitle="核心任务:从“发现问题”升级到“给出方案”并介入业务") +add_bullets(s, [ + "库存预测与补货:按历史+季节因子预测需求,自动生成采购建议单。", + "现金流模拟:输入支出与回款周期,模拟健康度、预警资金缺口。", + "选品与定价:结合外部大盘,输出《SKU 优化建议》(淘汰/主推/清仓)。", + ("交付物:智能库存预警采购系统、现金流压力测试看板、SKU 生命周期报告", 0), + ("验收:参考 AI 建议做至少一次库存调整,产生可量化资金占用下降", 0), +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【示例填充】母婴客户三期:AI 预测年后 B 款需求涨,建议提前备货;同时提示 C 款滞销建议清仓," + "释放占用资金约 30 万。\n" + "【讲解话术】这期是'商业大脑',不仅告诉您哪有问题,还告诉您怎么办、办了会怎样。") + +# ---------- 16. 三期节奏总览 ---------- +s = new_content("五、三期节奏与投入对比总览", 15) +add_table(s, [ + ["阶段", "周期", "核心目标", "关键交付", "老板获得感"], + ["一期 数据资产化", "1–2 月", "理清家底", "统一看板 + 数据资产报告", "看明白赚亏"], + ["二期 分析智能化", "2–3 月", "提效率", "本地 AI + 自动周报 + 预警", "AI 分析师盯盘"], + ["三期 决策自动化", "3–6 月", "增利润", "预测补货 + 现金流模拟", "商业大脑给方案"], +], Inches(0.7), Inches(1.8), Inches(11.9), Inches(3.6), col_widths=[2.0, 1.2, 1.8, 3.6, 2.3]) +set_notes(s, + "【讲解话术】三步走、每一步都有明确交付和验收,您随时可以停在任意一期,风险完全可控。") + +# ---------- 17. 成本估算(仅硬件/云) ---------- +s = new_content("六之一、总体成本估算(仅硬件 / 云,不含服务费)", 16) +add_table(s, [ + ["项目", "预估金额(人民币)", "备注"], + ["主机硬件(EVO-X2 128GB)", "15,000 – 18,000 元", "一次投入,含 2TB SSD"], + ["备用配件(额外 SSD 等)", "1,000 – 2,000 元", "数据备份与冗余"], + ["云端 API(DeepSeek Flash)", "100 – 200 元/月", "仅复杂任务触发,日常用本地"], + ["网络/域名(如需公网)", "0 – 500 元/年", "可选项,非必需"], +], Inches(0.7), Inches(1.8), Inches(11.9), Inches(3.6), col_widths=[3.2, 3.0, 3.7]) +set_notes(s, + "【示例填充】母婴客户一次性硬件约 1.7–2.0 万,之后每月云端 API 不到 200 元。\n" + "【讲解话术】这是您要承担的'材料费',一次性投入小、月费可忽略;我的实施服务费咱们线下另谈," + "按一期一付、验收后付。") + +# ---------- 18. 客户需配合准备 ---------- +s = new_content("六之二、客户需配合准备清单", 17) +add_table(s, [ + ["序号", "内容", "说明"], + ["1", "近 1–2 年网店销售数据(Excel/CSV)", "用于清洗和导入数据库"], + ["2", "产品手册/商品台账(Excel)", "补充 SKU 维度(品类/成本/建议售价)"], + ["3", "一台能联网的电脑 / 一个不用的手机号", "微信 Bot 登录 + 远程维护通道"], + ["4", "内网 WiFi 或有线网络", "固定内网 IP 或 Tailscale 替代"], +], Inches(0.7), Inches(1.8), Inches(11.9), Inches(3.8), col_widths=[0.8, 4.2, 4.0]) +set_notes(s, + "【讲解话术】您这边要做的事很简单:把数据导出给我、准备一个不用的手机号和能联网," + "其余安装部署都是我来做。") + +# ---------- 19. 服务价值卖点 + 复制扩张 ---------- +s = new_content("七之一、服务价值卖点(三句话)", 18) +add_bullets(s, [ + "第一期:我把你家散落各处的数据收拢成“一本账”,让你看明白钱花哪去了。", + "第二期:我给你配个“AI 数据分析师”,24 小时盯着数据,出问题第一时间告诉你。", + "第三期:我给你装上“AI 商业大脑”,不仅告诉哪有问题,还告诉你怎么办、模拟办了会怎样。", + "复制扩张:样板跑通后,同一套架构可快速复制到同类销售型生产企业。", + "商务模式:一期一付、做一期看一期效果,决策压力小、回款稳。", +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【讲解话术】您跟同行聊的时候,就这三句话,谁都听得懂、谁都想要。样板跑通," + "后面复制给其他厂非常快。") + +# ---------- 20. 下一步行动 / CTA ---------- +s = new_content("七之二、下一步行动", 19) +add_bullets(s, [ + "建议从一期起步:先交付“一本账”看板,2 个月内见效。", + "我方接下来:① 拉取贵司近 1–2 年销售数据做样例清洗;② 部署 EVO-X2 演示环境;③ 输出首版看板。", + "贵司配合:提供销售数据/台账、准备一台不用的手机、确认内网接入。", + "确认即启动:签订一期合作,按里程碑验收付款。", + "联系人:【您的姓名 / 微信】", +], Inches(0.9), Inches(1.7), Inches(11.5), Inches(4.8), size=15) +set_notes(s, + "【讲解话术】今天聊完,如果您认可,咱们就先签一期。两周内您能看到第一版看板demo," + "觉得有用再继续二期、三期。") + +prs.save(OUT_PPTX) +print("PPTX saved:", OUT_PPTX, "slides:", len(prs.slides._sldIdLst)) diff --git a/gen_pptx_guide.py b/gen_pptx_guide.py new file mode 100644 index 0000000..377cb44 --- /dev/null +++ b/gen_pptx_guide.py @@ -0,0 +1,375 @@ +# -*- coding: utf-8 -*- +"""生成《三阶段软硬配置及使用指南.pptx》 +核心:每个阶段 = 客户好处 + 具体工作流程 + 人操作/自动化分工 +""" +import os +from pptx import Presentation +from pptx.util import Inches, Pt, Emu +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +BASE = r"C:\Users\Administrator\Desktop\AI落地公司企划项目" +ASSETS = os.path.join(BASE, "assets") +OUT = os.path.join(BASE, "三阶段软硬配置及使用指南.pptx") + +BG_DARK = RGBColor(0x0B,0x25,0x45) +PRIMARY = RGBColor(0x13,0x31,0x5C) +ACCENT = RGBColor(0x2E,0x93,0xF7) +HIGHLIGHT= RGBColor(0xFF,0x8A,0x3D) +LIGHT = RGBColor(0xF4,0xF7,0xFB) +GRAY = RGBColor(0x6B,0x7A,0x8F) +WHITE = RGBColor(0xFF,0xFF,0xFF) +TEXTDARK = RGBColor(0x1A,0x24,0x33) +HUMAN_C = RGBColor(0xC8,0x6A,0x1B) +AUTO_C = RGBColor(0x1E,0x6F,0xB8) + +prs = Presentation() +SW, SH = Inches(13.333), Inches(7.5) +prs.slide_width, prs.slide_height = SW, SH +BLANK = prs.slide_layouts[6] + +def add_bg(slide, color=LIGHT): + s = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,0,SW,SH) + s.fill.solid(); s.fill.fore_color.rgb=color + s.line.fill.background(); s.shadow.inherit=False + +def add_title(slide, title, page=None, subtitle=None): + bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,0,SW,Inches(1.15)) + bar.fill.solid(); bar.fill.fore_color.rgb=PRIMARY; bar.line.fill.background(); bar.shadow.inherit=False + st = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,Inches(1.15),SW,Inches(0.06)) + st.fill.solid(); st.fill.fore_color.rgb=ACCENT; st.line.fill.background(); st.shadow.inherit=False + tb = slide.shapes.add_textbox(Inches(0.55),Inches(0.16),SW-Inches(1.1),Inches(0.95)) + tf = tb.text_frame; tf.word_wrap=True + p = tf.paragraphs[0]; r = p.add_run(); r.text=title + r.font.size=Pt(25); r.font.bold=True; r.font.color.rgb=WHITE + if subtitle: + p2 = tf.add_paragraph(); r2=p2.add_run(); r2.text=subtitle + r2.font.size=Pt(12); r2.font.color.rgb=RGBColor(0xBB,0xD6,0xF2) + if page is not None: + ft = slide.shapes.add_textbox(Inches(0.55),SH-Inches(0.4),SW-Inches(1.6),Inches(0.3)) + fp = ft.text_frame.paragraphs[0]; fr=fp.add_run() + fr.text="三阶段软硬配置及使用指南 · 【客户名称】"; fr.font.size=Pt(9); fr.font.color.rgb=GRAY + pg = slide.shapes.add_textbox(SW-Inches(1.05),SH-Inches(0.4),Inches(0.6),Inches(0.3)) + pp = pg.text_frame.paragraphs[0]; pr=pp.add_run(); pr.text=str(page) + pr.font.size=Pt(9); pr.font.color.rgb=GRAY; pp.alignment=PP_ALIGN.RIGHT + +def add_bullets(slide, items, left, top, width, height, size=14, color=TEXTDARK): + tb = slide.shapes.add_textbox(left,top,width,height) + tf = tb.text_frame; tf.word_wrap=True + first=True + for it in items: + text,lvl = it if isinstance(it,tuple) else (it,0) + p = tf.paragraphs[0] if first else tf.add_paragraph() + first=False; p.level=lvl; p.space_after=Pt(8) + pre = "• " if lvl==0 else " – " + r = p.add_run(); r.text = pre+text + r.font.size = Pt(size if lvl==0 else size-2); r.font.color.rgb=color + +def add_table(slide, data, left, top, width, height, col_widths=None, tag_col=None): + rows,cols = len(data), len(data[0]) + gtbl = slide.shapes.add_table(rows,cols,left,top,width,height) + table = gtbl.table + if col_widths: + tot=sum(col_widths) + for i,cw in enumerate(col_widths): + table.columns[i].width = Emu(int(width*cw/tot)) + for ri,row in enumerate(data): + for ci,val in enumerate(row): + cell = table.cell(ri,ci) + cell.margin_left=Inches(0.07); cell.margin_right=Inches(0.07) + cell.margin_top=Inches(0.03); cell.margin_bottom=Inches(0.03) + cell.vertical_anchor=MSO_ANCHOR.MIDDLE + tf = cell.text_frame; tf.word_wrap=True + p = tf.paragraphs[0] + if tag_col and ci in tag_col and ri>0: + c_left = gtbl.left + sum(table.columns[k].width for k in range(ci)) + c_top = gtbl.top + sum(table.rows[k].height for k in range(ri)) + c_w = table.columns[ci].width + c_h = table.rows[ri].height + badge = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, + c_left+Emu(int(c_w*0.08)), c_top+Emu(int(c_h*0.2)), + Emu(int(c_w*0.84)), Emu(int(c_h*0.6))) + badge.fill.solid() + badge.fill.fore_color.rgb = HUMAN_C if "人" in val else AUTO_C + badge.line.fill.background(); badge.shadow.inherit=False + btf = badge.text_frame; btf.word_wrap=True + bp = btf.paragraphs[0]; bp.alignment=PP_ALIGN.CENTER + br = bp.add_run(); br.text=val + br.font.size=Pt(10); br.font.bold=True; br.font.color.rgb=WHITE + cell.text = "" + continue + r = p.add_run(); r.text=val; r.font.size=Pt(11) + if ri==0: + cell.fill.solid(); cell.fill.fore_color.rgb=PRIMARY + r.font.color.rgb=WHITE; r.font.bold=True + else: + cell.fill.solid(); cell.fill.fore_color.rgb = WHITE if ri%2 else LIGHT + r.font.color.rgb=TEXTDARK + if ci==0: r.font.bold=True + return table + +def add_image(slide, path, left, top, width): + slide.shapes.add_picture(path,left,top,width=width) + +def notes(slide, text): + slide.notes_slide.notes_text_frame.text = text + +def new_page(title, page, subtitle=None): + s = prs.slides.add_slide(BLANK); add_bg(s); add_title(s,title,page,subtitle); return s + +# ============ 1 封面 ============ +cov = prs.slides.add_slide(BLANK); add_bg(cov,BG_DARK) +acc = cov.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,0,Inches(0.22),SH) +acc.fill.solid(); acc.fill.fore_color.rgb=ACCENT; acc.line.fill.background(); acc.shadow.inherit=False +t = cov.shapes.add_textbox(Inches(0.9),Inches(1.8),Inches(11.5),Inches(1.7)) +tf=t.text_frame; tf.word_wrap=True +p=tf.paragraphs[0]; r=p.add_run(); r.text="三阶段软硬配置及使用指南" +r.font.size=Pt(42); r.font.bold=True; r.font.color.rgb=WHITE +p2=tf.add_paragraph(); r2=p2.add_run(); r2.text="数据底座 → 模型引擎 → 日常使用运维" +r2.font.size=Pt(20); r2.font.color.rgb=ACCENT +st = cov.shapes.add_textbox(Inches(0.9),Inches(3.6),Inches(11.5),Inches(0.6)) +sp=st.text_frame.paragraphs[0]; sr=sp.add_run() +sr.text="每一阶段:客户能得到什么好处 | 工作流程怎么跑 | 人操作还是自动化" +sr.font.size=Pt(16); sr.font.color.rgb=RGBColor(0xBB,0xD6,0xF2) +info = cov.shapes.add_textbox(Inches(0.9),Inches(5.6),Inches(11.5),Inches(1.0)) +ip=info.text_frame +for i,line in enumerate(["客户:【客户名称】 服务商:【您的公司】", + "配套文档:商业闭环运营基板 v1.9 / 硬件与部署实现方案 v1.1 / 本地模型好用落地设计 v1.0"]): + pp=ip.paragraphs[0] if i==0 else ip.add_paragraph() + rr=pp.add_run(); rr.text=line; rr.font.size=Pt(12); rr.font.color.rgb=RGBColor(0x9F,0xB6,0xCE) +notes(cov,"【讲解】这份指南解决三个问题:客户能得到什么、流程怎么跑、哪些自动化哪些要人。") + +# ============ 2 目录 ============ +s = new_page("目录",1) +add_bullets(s,[ + "一、整体架构速览 + 人机分工总原则", + "二、阶段一:数据底座 —— 好处 / 流程 / 人机分工", + "三、阶段二:模型引擎 —— 好处 / 流程 / 人机分工", + "四、阶段三:日常使用与运维 —— 好处 / 流程 / 人机分工", + "五、人操作 vs 自动化 总表", + "六、客户好处汇总 + 你的运维节奏", + "七、心里有底 QA + 红线兜底", +], Inches(0.9),Inches(1.7),Inches(11.5),Inches(4.6),size=17) + +# ============ 3 架构总览 ============ +s = new_page("一、整体架构速览",2) +add_image(s, os.path.join(ASSETS,"architecture.png"), Inches(1.6),Inches(1.35),Inches(10.1)) +add_bullets(s,[ + "人机分工总原则:一次性配置靠人,日常运行靠自动;老板只做两件事——看报告、问数据", +], Inches(0.9),Inches(6.6),Inches(11.5),Inches(0.6),size=13,color=PRIMARY) +notes(s,"最底下硬件是一次性装机(人);数据清洗建库是定时自动;模型常驻自动路由;最上面看板/微信推送全自动。") + +# ============ 4 阶段一 目标与好处 ============ +s = new_page("二之一、阶段一 数据底座:目标与客户好处",3) +add_bullets(s,[ + ("客户好处",0), + "① 数据收拢成「一本账」:老板随时查任何月份、任何 SKU,不再等财务做表", + "② 免费工具先学会自己看数据(演示+教学,不依赖别人)", + "③ 数据资产在自己厂里,不出厂、不上云,放心", + ("本阶段做什么",0), + "免费工具 + 数据清洗整理 + SQLite 建库 + Streamlit 看板", + ("自动化程度",0), + "清洗入库、看板更新 = 全自动(cron 定时);老板查数据 = 人操作(浏览器打开就看)", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.2),size=15) +notes(s,"阶段一对应基板阶段一/二。价值锚:让老板第一次体验到「数据看得清」。") + +# ============ 5 阶段一 工作流程 ============ +s = new_page("二之二、阶段一 数据底座:具体工作流程",4) +add_bullets(s,[ + "① 【人·老板】每月从网店后台导出 Excel/CSV,丢进共享文件夹(教一次就会)", + "② 【自动·cron】每月 1 号凌晨,清洗脚本自动运行:去重→统一格式→入库 SQLite", + "③ 【自动】看板数据自动刷新(服务常驻,无需重启)", + "④ 【人·老板】打开浏览器随时查:月度趋势 / SKU 排行 / 区域分布 / 断码热力图", + "⑤ 【人·你】每月 1 次数据对账:抽 3–5 个关键数跟老板确认,口径不变", + "⑥ 【人·你】指标口径随业务调整时维护(季度级)", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.0),size=15) +notes(s,"老板的日常操作只有一件事:导数据丢文件夹。其余全自动。") + +# ============ 6 阶段一 人机分工表 ============ +s = new_page("二之三、阶段一 人操作 vs 自动化",5) +add_table(s,[ + ["功能","实现方式","频率","分工"], + ["安装/配置免费工具","一次性部署到你电脑/客户机","一次性","人"], + ["老板导出数据丢文件夹","平台后台导出","每周/每月","人"], + ["数据清洗+入库 SQLite","Python 脚本 + cron","每月1号自动","自动"], + ["看板数据刷新","Streamlit 服务常驻","实时","自动"], + ["老板查数据/看板","浏览器访问内网地址","随时","人"], + ["数据对账确认","抽数核对","每月1次","人"], + ["指标口径维护","文档+脚本更新","按需","人"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(4.6),col_widths=[2.6,3.2,1.8,2.4],tag_col=[3]) +notes(s,"阶段一自动化集中在「清洗入库+看板」,人只做配置和每月对账。") + +# ============ 7 阶段二 目标与好处 ============ +s = new_page("三之一、阶段二 模型引擎:目标与客户好处",6) +add_bullets(s,[ + ("客户好处",0), + "① 数据不出厂也能 AI 分析:周报、归因、问答全在本地跑(敏感数据安全)", + "② 响应快:本地 30B MoE 推理 25–35 Token/s,不用等网络", + "③ 成本固定:本地模型一次买断,不按次收费,越用越划算", + ("本阶段做什么",0), + "EVO-X2+NAS 装机 → Ubuntu/ROCm → Ollama 多模型常驻 → Hermes Agent → API 混用兜底", + ("自动化程度",0), + "模型加载、任务路由、云端兜底 = 全自动;装机配置 = 一次性人操作", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.2),size=15) +notes(s,"阶段二对应基板阶段三。核心卖点:敏感数据本地分析 + 固定成本。") + +# ============ 8 阶段二 部署流程 ============ +s = new_page("三之二、阶段二 模型引擎:部署流程",7) +add_bullets(s,[ + "① 【人·你】POC 先行:先用云端 API 在客户真实数据上跑出周报样例,老板认可才买硬件", + "② 【人·你】装机:EVO-X2 装 Ubuntu 24.04 + ROCm 驱动(最大坑,样机先跑通)+ NAS RAID5", + "③ 【人·你】模型部署:Ollama 拉 35B MoE + 14B + bge-m3,设 keep_alive 常驻", + "④ 【人·你】Agent 配置:Hermes Agent 注册工具(查库/发消息/生成报告)+ 任务路由规则", + "⑤ 【人·你】API 混用配置:DeepSeek 兜底开关(置信度低自动转云端)", + "⑥ 【自动】之后:模型常驻、路由、兜底全部自动运行,无需人工干预", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.0),size=15) +notes(s,"阶段二是配置密集型:全部一次性配置做完,之后全自动。") + +# ============ 9 阶段二 人机分工表 ============ +s = new_page("三之三、阶段二 人操作 vs 自动化",8) +add_table(s,[ + ["功能","实现方式","频率","分工"], + ["POC 效果验证","云端 API 跑样例给老板看","客户掏钱前","人"], + ["硬件装机","EVO-X2+NAS 安装调试","一次性","人"], + ["ROCm/驱动/系统","Ubuntu 24.04 + ROCm 配置","一次性","人"], + ["模型加载/常驻","Ollama keep_alive","自动运行","自动"], + ["任务路由","Agent 按任务分模型","实时","自动"], + ["云端 API 兜底","置信度低自动 fallback","实时","自动"], + ["月度特调模型(QLoRA)","27B 特调训练","3个月后按需","人"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(4.6),col_widths=[2.6,3.2,1.8,2.4],tag_col=[3]) +notes(s,"阶段二 7 项里 5 项自动,人只做装机和 POC。") + +# ============ 10 阶段三 目标与好处 ============ +s = new_page("四之一、阶段三 日常使用运维:目标与客户好处",9) +add_bullets(s,[ + ("客户好处",0), + "① 每周一自动收《经营周报》:不用做表,微信直接看图文", + "② 断码/库存预警自动推送:缺货出事前就知道,不等老板发现", + "③ 随时问数据:像问助手一样「上月华东卖了多少」,秒回", + "④ 每月 4 次到岗专属服务:特调模型、问答库整理、巡检、答疑", + "⑤ 决策有依据:补货建议、现金流模拟、SKU 优化", + ("自动化程度",0), + "周报/预警/问答 = 全自动(定时任务+Agent);月度到岗 = 人操作(你)", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.2),size=15) +notes(s,"阶段三对应基板阶段三运行期+阶段四。客户日常几乎零操作。") + +# ============ 11 阶段三 功能流程 ============ +s = new_page("四之二、阶段三 日常功能工作流程",10) +add_bullets(s,[ + ("周报(全自动)",0), + "① 每周一早 9 点 cron 触发 → ② Agent 读库 → ③ 35B MoE 生成图文简报 → ④ 微信推给老板", + ("断码预警(全自动)",0), + "① 每日 08:00 扫描库存 → ② 命中断码阈值 → ③ Agent 生成预警 → ④ 微信推送", + ("数据问答(半自动)",0), + "① 老板微信/看板提问 → ② Agent 查库 → ③ 本地模型组织答案 → ④ 秒回(复杂问题自动转云端)", + ("月度到岗(人操作·你)",0), + "每月 4 次:特调模型优化 / A&Q 问答库整理 / 巡检备份 / 老板答疑", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(5.2),size=14) +notes(s,"周报、预警完全不需要人碰;问答是人问机答;到岗是你的服务承诺。") + +# ============ 12 阶段三 人机分工表 ============ +s = new_page("四之三、阶段三 人操作 vs 自动化",11) +add_table(s,[ + ["功能","实现方式","频率","分工"], + ["经营周报推送","cron + Agent + 微信","每周一早9点","自动"], + ["断码/库存预警","每日库存扫描 + 阈值触发","每日08:00","自动"], + ["数据问答","Agent 查库 + 本地模型回答","随时","人问/机答"], + ["月度到岗(4次)","上门服务","每月4次","人"], + ["备份快照","NAS 每日快照 + 异地","每日/每周","自动"], + ["巡检与日志检查","远程巡检","每周1次","人"], + ["备份还原演练","手动演练","每月1次","人"], + ["模型效果抽查","抽查5条输出质量","每周1次","人"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(4.6),col_widths=[2.6,3.2,1.8,2.4],tag_col=[3]) +notes(s,"核心功能全自动;人的动作集中在巡检、到岗、抽查。") + +# ============ 13 总表 ============ +s = new_page("五、人操作 vs 自动化 总表(一页看全)",12) +add_table(s,[ + ["环节","自动化的","需要人操作的","老板日常动作"], + ["阶段一 数据底座","清洗入库、看板刷新(cron)","安装配置、每月对账","导数据丢文件夹、看板查数"], + ["阶段二 模型引擎","模型常驻、路由、API 兜底","POC、装机、特调","无(全自动)"], + ["阶段三 使用运维","周报、断码预警、问答","月度到岗、巡检、抽查","看微信、问数据"], + ["你(服务商)","—","到岗4次/月 + 远程巡检 + 维护","—"], +], Inches(0.7),Inches(1.8),Inches(11.9),Inches(3.8),col_widths=[2.2,3.4,3.6,2.8]) +add_bullets(s,[ + "结论:老板每周只花 10 分钟(看周报+导数据);你的日常是每周远程巡检 1 次 + 每月到岗 4 次", +], Inches(0.9),Inches(6.0),Inches(11.5),Inches(0.8),size=14,color=PRIMARY) +notes(s,"这张表是给客户看「我买了什么服务」的总图。") + +# ============ 14 好处汇总 ============ +s = new_page("六之一、客户得到的好处汇总(老板视角)",13) +add_table(s,[ + ["好处","对应功能","解决什么问题"], + ["不再等财务做表","周报每周一自动推送","报表慢、人力耗"], + ["数据随时看得清","看板+数据问答","看不清赚亏"], + ["出事早知道","断码/异常预警","缺货、积压后知后觉"], + ["敏感数据不出厂","本地模型+NAS","怕数据泄露"], + ["决策有依据","补货/现金流/SKU 建议","拍脑袋备货"], + ["有人全程管","月度到岗+远程运维","系统没人维护"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(3.6),col_widths=[3.0,4.2,3.4]) +add_bullets(s,[ + "一句话给老板:数据留在厂里,分析自动跑,报告送到手机,出事提前提醒,决策有人给依据", +], Inches(0.9),Inches(5.6),Inches(11.5),Inches(0.8),size=15,color=HIGHLIGHT) + +# ============ 15 运维节奏 ============ +s = new_page("六之二、你的运维节奏(每天/每周/每月/每季)",14) +add_table(s,[ + ["频率","动作","耗时"], + ["每天","看系统告警(模型/服务异常到你微信)","10 分钟"], + ["每周","① 确认周一周报已发出 ② 抽查 5 条输出质量","20 分钟"], + ["每月","4 次到岗(特调/A&Q/巡检/答疑)+ 备份还原演练 + API 用量核对","4 个半天"], + ["每季度","模型效果评估 + 客户升档评估 + 特调需求评估","1 天"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(3.4),col_widths=[1.4,6.2,2.6]) +add_bullets(s,[ + "单人可承受:每周合计约 1 小时远程 + 每月 4 个半天到岗 —— 这是月维护费 2000/3000 的服务边界", +], Inches(0.9),Inches(5.4),Inches(11.5),Inches(0.8),size=14,color=PRIMARY) + +# ============ 16 QA ============ +s = new_page("七之一、心里有底 QA(常见问题)",15) +add_table(s,[ + ["问题","答案"], + ["机器挂了怎么办?","数据在 NAS(RAID+快照+异地),换机重装系统后还原,1 天内恢复(每月演练过)"], + ["模型效果差怎么办?","按顺序调:查 RAG 检索 → 改提示词 → 换大模型 → 最后才微调;期间置信度低自动转云端,客户无感"], + ["断电了怎么办?","UPS 兜底 10 分钟,来电自动恢复;NAS 有快照不怕掉盘"], + ["客户要加新功能?","工具函数库加一个函数即可(模板化),半天内上线"], + ["老板要查数据?","看板随时查 / 微信问一句秒回"], + ["数据更新怎么进系统?","客户导出丢文件夹 → cron 自动清洗入库,不用你干预"], + ["客户停缴维护费?","系统停更但已交付功能保留(威慑不撕破脸)"], + ["你自己生病/忙不过来?","SOP 文档化 + 远程自动运维,关键操作留文档"], +], Inches(0.7),Inches(1.7),Inches(11.9),Inches(4.8),col_widths=[2.6,9.4]) + +# ============ 17 红线兜底 ============ +s = new_page("七之二、红线与兜底机制",16) +add_bullets(s,[ + "① 数据不出厂:NAS 只在内网,Tailscale 只放行你;云端 API 只接可脱敏任务", + "② POC 先行:客户掏钱前先用云端样例验证效果,效果好才买硬件", + "③ 验收前置:合同写明「本地完成的任务验收 = 格式正确+规则正确」,主观好坏交云端", + "④ 兜底开关:Agent 置信度低 → 自动转云端 API,客户无感切换", + "⑤ 本地主力:35B MoE 承接 80–90% 任务,云端只是保险丝(月预算 <200)", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(4.6),size=15) + +# ============ 18 第一周清单 ============ +s = new_page("七之三、交付后第一周清单",17) +add_bullets(s,[ + "☐ 免费工具装好,老板学会自己拖数据", + "☐ 数据盘点拿到(含尺码维度,鞋类客户必查)", + "☐ 清洗脚本跑通,老板点过关键数", + "☐ 一页流程图交付(含退换货流程)", + "☐ 备忘录签署(免费边界 + 3 个月保护期 + 案例转介绍)", + "☐ 约好下周:教老板拖新数据 + 提阶段二(周报 300/次)", +], Inches(0.9),Inches(1.6),Inches(11.5),Inches(4.2),size=15) + +# ============ 19 封底 ============ +s = prs.slides.add_slide(BLANK); add_bg(s,BG_DARK) +t = s.shapes.add_textbox(Inches(0.9),Inches(3.0),Inches(11.5),Inches(1.5)) +tf=t.text_frame; tf.word_wrap=True +p=tf.paragraphs[0]; p.alignment=PP_ALIGN.CENTER +r=p.add_run(); r.text="三阶段软硬配置及使用指南 · v1.0" +r.font.size=Pt(30); r.font.bold=True; r.font.color.rgb=WHITE +p2=tf.add_paragraph(); p2.alignment=PP_ALIGN.CENTER +r2=p2.add_run(); r2.text="配置一次 · 运行自动 · 老板零操作 · 你只做维护" +r2.font.size=Pt(16); r2.font.color.rgb=ACCENT + +prs.save(OUT) +print("saved:", OUT, "slides:", len(prs.slides._sldIdLst)) diff --git a/三阶段软硬配置及使用指南.pptx b/三阶段软硬配置及使用指南.pptx new file mode 100644 index 0000000..ba0229f Binary files /dev/null and b/三阶段软硬配置及使用指南.pptx differ diff --git a/商业闭环运营基板.html b/商业闭环运营基板.html new file mode 100644 index 0000000..01578ab --- /dev/null +++ b/商业闭环运营基板.html @@ -0,0 +1,502 @@ + + +
+ + +阶段一免费是获客投资:用免费工具+数据清洗+工作流整理建立"数据抓手"(数据资产和业务理解都在你手里),客户吃到甜头后离不开你;阶段二起正式收费:建库看板 → 本地小模型(处理内部业务)→ Agent → 云端 API 混用,逐层升级;最终靠 月维护费形成长期现金流。样板客户费用后议也不怕——阶段一本来就是免费的,样板期等于免费做阶段一换案例+转介绍,阶段二起按正式报价。
+服务边界:公司内部业务尽量少触及——只提供两类核心服务:前期数据资产维护 + 后期硬件设备维护(小型服务器+本地 NAS 搭建、多模型+Agent 抓手工具)。业务上的事只给辅助建议,绝不卷入内部经营与内耗。定位是客户身边的"外挂技术团队",不是"顾问+保姆"。
+阶梯扩展逻辑:每个阶段做的工作其实差不多,只是程度和范围不同——前期试点只做一个部门/一个组/一个项目,后期扩展到整个公司。先小后大、先便宜后贵,客户风险小,你每层都在加收入。
+公司化路径:样板客户跑通(阶段四见效)+ 拿到第 1 个转介绍付费客户后,注册一家小型科技服务公司(一人有限公司即可,经营范围:软件开发/数据处理/技术服务/AI 应用落地)。公司化的价值:对公开票收款、合同合规、信任背书、为后续雇人做准备;样板客户转为"样板案例客户",后续客户全部走正式报价。
+| 工作项 | 所需软硬件/工具 | 怎么开展 | 难度 | 工时 | 复用 |
|---|---|---|---|---|---|
| 1. 免费工具触点交付 | SQLite 轻量单机工具(自研模板) | Excel 拖入即可查数/出简单图表/按月汇总;免费给客户装,零门槛体验"数据变干净了";开发一次,所有客户复用 | 3 | 16h(一次性) | 模板化★ |
| 2. 数据源盘点与获取 | 网店后台导出、进销存导出 | 列清单:订单/SKU/区域/金额/库存;找客户要历史 1–2 年导出;靠客户配合,卡点在这 | 2 | 16h | — |
| 3. 清洗脚本开发 | Python + pandas + openpyxl | 去重、统一字段/编码、补缺失、格式归一;输出 Markdown 中间格式便于人工核对 | 4 | 32h | 模板化★ |
| 4. 数据质量校验 | 对账脚本 + 人工核对 | 总量/金额/时间跨度交叉验证;让老板亲自点几个数确认,口径不对后面全错 | 3 | 8h | — |
| 5. 打包数据资产包 | 标准化导出(MD/CSV/JSON) | 清洗后按统一结构导出中间格式,形成可复用、可交接的"数据资产包";导出清单与版本号 | 2 | 8h | 模板化★ |
| 6. 工作流整理(业务流程梳理) | 流程图工具(draw.io/白板)+ 访谈 | 和老板/店长过一遍订单→发货→库存→对账主流程,画出流程图+SOP 文档,标出数据盲区和流程断点;"数据抓手"第二条腿 | 3 | 16h | 模板化★ |
| 7. 数据资产盘点报告 | 报告模板 | 数据规模/质量/口径/流程断点/可挖掘点汇总;也是阶段二、三要做什么的引子 | 2 | 8h | 模板化★ |
| 工作项 | 所需软硬件/工具 | 怎么开展 | 难度 | 工时 | 复用 |
|---|---|---|---|---|---|
| 1. 核心指标口径定义 | 口径文档(Word/MD) | 和老板对齐销售额/退货率/客单价/库存周转天数的算法;口径不定后面全错,输出口径文档作为全员共识 | 3 | 16h | 模板化★ |
| 2. 库表设计与入库 | SQLite 3 | 设计订单/SKU/区域/月度聚合表;清洗脚本按月自动入库(cron);单文件易备份 | 2 | 16h | 模板化★ |
| 3. 看板开发 | Streamlit + 图表库 | 月度趋势 / SKU 排行 / 区域分布三视图;阶段二开发大头,做成可复用组件 | 4 | 40h | 模板化★ |
| 4. 看板部署+权限+演示 | 内网服务、账号密码 | 看板跑在内网轻量服务上,老板浏览器访问;演示"查去年任意月";设简单账号权限 | 2 | 8h | — |
| 5. 数据资产化验收 | 验收清单 | 老板亲自对数(抽 3–5 个关键数)→ 签字确认 → 出验收报告;验收点=第一个收款节点 | 2 | 8h | 模板化★ |
| 工作项 | 所需软硬件/工具 | 怎么开展 | 难度 | 工时 | 复用 |
|---|---|---|---|---|---|
| 1. 小型服务器+NAS 搭建 | EVO-X2(计算) + 本地 NAS(存储/备份) + Ubuntu + Tailscale | 服务器装系统+分区+SSH+组网;NAS 初始化 RAID+共享盘,数据落 NAS、模型跑服务器,每日快照+异地备份;客户出资 | 2 | 12h | 脚本化★ |
| 2. ROCm/AMD 驱动配置 | AMD ROCm 栈 | 整条链最大坑:核显+ROCm 兼容性、显存分配;预留 1–2 天容错;签客户前先在样机上 POC 验证 | 4 | 16–24h | 脚本化★ |
| 3. 多模型部署与路由 | Ollama 多模型(小 7–14B + 大 30B MoE)+ bge-m3 | 部署多个模型:小模型跑日常/工具调用(快),大模型跑复杂分析/报告;模型权重存 NAS 共享;配 bge-m3 嵌入;Agent 按任务复杂度自动路由 | 3 | 8h | 脚本化★ |
| 4. Agent 工具接入 | Hermes Agent + Ollama(OpenAI兼容) | 把本地模型接到 Agent;注册"查库/执行脚本/发消息"工具函数;先让 Agent 把内部业务跑起来 | 4 | 32h | 脚本化★ |
| 5. 云端大模型 API 混用配置 | DeepSeek V4 Flash API | 本地处理不了的长文本/复杂推理自动 fallback 到云端;大模型+本地模型相结合持续服务;月均成本控制在 200 元内;敏感数据仍走本地 | 2 | 4h | 脚本化★ |
| 6. 周报/月报 Prompt 调优 | Prompt 库 + 业务知识 | 设计《经营简报》模板:销量异动/库存预警/TOP变化;用真实数据反复迭代提示词 | 3 | 24h | 模板化★ |
| 7. 微信推送通道 | iLink Bot / 企业微信机器人 | 绑定一个不用的手机号;Agent 调接口推图文给老板;预留企业微信备选防封号 | 3 | 16h | — |
| 8. 异常归因逻辑 | 规则引擎 + Prompt + 数据关联 | SKU 销量暴跌 → AI 查时间段库存/竞品价格事件,输出"可能原因";规则先粗后细 | 4 | 32h | 模板化★ |
| 9. 定时自动任务 | cron + Agent 调度 | 每周一早 9 点自动生成+推送;失败重试与告警 | 2 | 4h | 脚本化★ |
| 10. 预警配置文档 | 配置手册 | 阈值怎么调、规则怎么加,写清楚给客户/自己留底 | 2 | 8h | 模板化★ |
| 工作项 | 所需软硬件/工具 | 怎么开展 | 难度 | 工时 | 复用 |
|---|---|---|---|---|---|
| 1. 库存预测模型 | Python(statsmodels/Prophet) + 历史销售 | 全项目最难:季节因子+SKU 粒度预测;先做 TOP 50 SKU,别贪全量;数据不足时用简单基线 | 5 | 48h | 半复用 |
| 2. 补货建议单生成 | 预测结果 + 库存/在途/安全库存 | 规则计算采购量=需求−现有−在途+安全库存;输出"买多少、何时买"建议单 | 4 | 24h | 半复用 |
| 3. 现金流模拟器 | Python 模拟 + 表格参数 | 输入下月支出/回款周期 → 逐周模拟余额 → 预警资金缺口;参数做成可视化填 | 4 | 24h | 半复用 |
| 4. SKU 优化建议 | 外部大盘数据 + Prompt + 规则 | 结合销量/毛利/趋势给"淘汰/主推/清仓"清单;外部数据用公开大盘即可 | 4 | 32h | 半复用 |
| 5. 现金流压力测试看板 | Streamlit 复用组件 | 场景切换(好/中/差)看资金曲线,老板自己玩 | 3 | 16h | 模板化★ |
| 6. 三期验收辅助 | 对比报表 | 跟踪客户按建议调整库存后的资金占用变化;验收靠客户执行,风险最大——合同要写配合义务 | 4 | 16h | — |
| 档位 | 判断(数据量) | 周报/次 | 月度维护 | 硬件配置 | 年卡参考 |
|---|---|---|---|---|---|
| S 小 | 月订单 <5千、SKU <500 | 300 | 2,000/月 | EVO-X2 单机(1.6–2 万) | 1.5–2 万/年 |
| M 中 | 月订单 5千–5万、SKU 500–5000 | 400–500 | 3,000/月 | EVO-X2 + NAS(2–2.6 万) | 3–4 万/年 |
| L 大 | 月订单 >5万、SKU >5000、多平台 | 600–800 | 4,000–5,000/月 | 更强服务器/双机(3–4 万+) | 5–8 万/年 |
| 版本 | 变更要点 |
|---|---|
| v1.0 | 初版:四阶段 = 硬件部署 + 三期交付(后证明编排有误) |
| v1.1 | 修正:阶段一/二无本地模型,纯数据清洗整理+建库看板;模型自阶段三起 |
| v1.2 | 确立"数据抓手":前期数据服务(清洗+流程整理)零硬件投入 |
| v1.3 | 确立转化漏斗:免费工具→数据服务→本地小模型→Agent/API 混用→维护费 |
| v1.4 | 确立收费节奏:阶段一全免费(获客投资),阶段二起正式收费 |
| v1.5 | 确立服务边界(数据+硬件维护,不碰经营内耗)+ 硬件构想(小型服务器+本地NAS+多模型+Agent) |
| v1.6 | 定价落地:订阅阶梯——阶段一免费,阶段二按周(300/次≈1,200/月),阶段三月维护(2,000/月+硬件),阶段四年卡 |
| v1.7 | 新增"版本与归档规范"节(②版本化+变更日志 / ④归档前四步审校 / ⑤预览确认制) |
| 模型 | 量化 | 占用 | 用途 | 驻留策略 |
|---|---|---|---|---|
| Qwen3.6-35B-A3B(MoE,激活 3B) | Q5_K_M | ≈25GB | 通用分析:周报/归因/问答/深度分析(主力) | 常驻(keep_alive=-1) |
| Qwen 27B 稠密(特调版) | Q4_K_M | ≈20GB | 特调业务场景:固定格式输出、行业术语(备用主力) | 按需加载(业务批处理时) |
| Qwen3-14B | Q5_K_M | ≈10GB | 规则任务:查数、工具调用、格式提取(快) | 常驻 |
| bge-m3(嵌入) | fp16 | ≈2GB | RAG 向量化 | 常驻 |
| KV cache(32K 上下文 × 常驻模型) | — | ≈8–12GB | 长上下文缓存 | — |
| 任务类型 | 用哪个 | 为什么 |
|---|---|---|
| 经营分析 / 周报 / 归因 / 深度问答 | 35B MoE(常驻) | 通用推理强、速度快(25–35 Token/s),覆盖 80% 场景 |
| 固定格式输出(特定报表/单据) | 27B 稠密特调(按需) | 微调后输出格式绝对稳定、术语准确——但只在真的需要时才上 |
| 查数 / 工具调用 / 简短提取 | 14B(常驻) | 快、省,杀鸡不用牛刀 |
| 文档检索问答(RAG) | bge-m3 检索 + 14B/35B 生成 | 检索质量决定效果,模型只是最后一步 |
| 超长文本 / 极难推理 / 新知识 | 云端 API(兜底) | 占比 10–20%,可脱敏后走云端 |
ollama run qwen35b --keepalive -1(-1 = 永不卸载)ollama run qwen27b,处理完自动让出内存| 能力场景 | 判定 | 说明 |
|---|---|---|
| 经营数据问答(自然语言查数+解释) | 替代 | 35B MoE 查库+解释完全够用 |
| 周报/月报生成(模板化) | 替代 | 模板+填空式,本地主力场景 |
| 异常归因分析(销量暴跌原因) | 替代 | 关联数据+规则推理,35B 级足够 |
| 库存/断码预警生成 | 替代 | 规则触发+文案生成,14B 就够 |
| RAG 文档问答(手册/合同/台账) | 替代 | 检索质量决定效果,模型是最后一步 |
| 非结构化数据提取(订单/单据→表) | 替代 | 结构化提取是 30B 级强项 |
| 长文摘要 / 简报解读 | 替代 | 30B 级摘要质量够用 |
| 简单脚本/公式生成(数据分析小工具) | 部分 | 简单脚本行;复杂代码仍建议云端 |
| 营销文案/创意写作 | 部分 | 初稿行,精品文案差口气 |
| 多模态(看图/听语音) | 云端 | 本地方案不含视觉模型;业务需要时单独接 API |
| 超长上下文(>32K 多文档分析) | 云端 | 超出本地上下文时兜底 |
| 最新知识(模型知识截止后的事) | 云端 | 本地模型知识有时效,实时信息走 API |
| 极难推理(复杂数学/长链推理) | 云端 | 占比极小,可脱敏后走云端 |
| 阶段 | 周期 | 收费 | 核心动作 | 交付物 | 验收点(=收款点) |
|---|---|---|---|---|---|
| 一 清洗+流程 | 1–2 周 | 免费 | 免费工具教学、数据盘点、清洗对账、流程访谈 | 免费工具、数据资产包、一页流程图、盘点报告 | 数据对账无误、老板会自己用工具(无收款) |
| 二 建库+看板 | 3–8 周 | 300/周报 ≈1,200/月 | 签周报订阅、口径对齐、SQLite 建库、看板、周报推送 | 口径文档、数据库、看板、周报首期 | 老板查任意月准确 + 周报稳定 → 收款 |
| 三 服务器+模型 | 9–14 周 | 硬件 2–2.6 万 + 2,000/月 | 签月度合同、硬件搭建、多模型、Agent/API、微信周报、4 次到岗 | 服务器+NAS、多模型栈、Agent 工具、微信周报、月度合同 | 周报自动稳定 2–3 周、老板手机收报告 → 收款 |
| 四 决策+年卡 | 15–21 周 | 年卡 | 预测、补货单、现金流模拟、SKU 策略、年卡谈判、全公司扩展 | 预测/补货系统、现金流看板、SKU 报告、年卡协议 | 库存调整有可量化效果 → 签年卡 |
开场 30 秒老板,我不卖系统、也不碰您现在的进销存。先给您装一个小工具,免费的——您把网店导出的 Excel 拖进去,就能按月看销售、看 SKU 排行、看哪个区域卖得好。
+演示 3 分钟(现场拖入一份示例数据)您看,这是月度销售趋势、这是 TOP SKU、这是区域分布——以后您自己就能查,不用等财务做表。
+钩子 1 分钟数据能看清了,但真要分析"为什么这个 SKU 跌了、下个月备多少货",还是费劲对吧?这块先不着急,今天先把工具用起来,数据我先帮您归置干净。
+收尾我把您数据的格式理一下,下周您自己就能拖新数据进来。有不会的随时找我,我教您。
+| 数据类型 | 来源 / 导出方式 | 时间范围 | 格式 | 谁给 |
|---|---|---|---|---|
| 网店销售订单 | 各平台商家后台 → 订单导出 | 近 1–2 年 | Excel/CSV | 店长/运营 |
| SKU 商品台账 | ERP/进销存或商品后台导出 | 当前 | Excel | 运营 |
| 区域/渠道数据 | 平台后台 → 区域/渠道报表 | 近 1–2 年 | Excel | 店长 |
| 库存/进销存 | 进销存系统导出(库存流水/现存量) | 近 1 年 | Excel | 库管/老板 |
| 退款/退货数据 | 平台后台 → 售后导出 | 近 1–2 年 | Excel/CSV | 客服/运营 |
| 财务回款(如有) | 财务软件/Excel 台账 | 近 1 年 | Excel | 财务 |
一、合作性质。乙方为甲方提供"样板服务(阶段一)":数据清洗整理、业务流程梳理、免费工具使用权。本阶段免费,属于样板合作。
+二、免费范围。免费范围严格限阶段一(数据清洗、流程整理、免费工具及使用教学)。阶段二及以后(建库看板、本地模型、Agent/API、长期维护)按乙方正式报价另行签署服务协议。
+三、甲方配合义务。提供近 1–2 年销售/库存数据(以甲方现有系统可导出为限)、参与 1 次流程访谈、提供免费工具的测试环境。
+四、边界约定。乙方不介入甲方经营管理与人事决策;数据分析由甲方人员执行,乙方提供工具、教学与辅助建议。
+五、数据权利。甲方数据归甲方所有;乙方仅用于本项目服务,不向第三方披露;服务终止后乙方按甲方要求删除本地副本。
+六、案例与转介绍。甲方同意乙方将本合作作为样板案例展示(涉及敏感信息脱敏),并优先向同行业 1–2 家客户转介绍乙方服务。【或:样板免费换案例+转介绍】
+七、保护期。本备忘录有效期 3 个月。期满未进入阶段二(未签署正式服务协议)的,乙方有权终止免费服务并回收工具。
+八、其他。本备忘录一式两份,双方各执一份,自签署之日起生效。
+| 组件 | 推荐配置 | 说明 | 预算(元) |
|---|---|---|---|
| 小型服务器(计算) | GMKtec EVO-X2 128GB(统一内存) | 2 万内本地流畅跑 30B MoE(25–35 Token/s),功耗仅 ~100W、静音,适合办公室 24h 开机;AMD 核显 + ROCm | 15,000–18,000 |
| 替代方案(可选) | 塔式工作站:Ryzen9/i7 + RTX 4060 16GB + 64GB 内存 | 独显生态成熟(CUDA 坑少),适合以 7–14B 模型为主、偶尔上 30B;功耗与噪音略高 | 12,000–15,000 |
| 本地 NAS(存储) | 群晖 DS423+ / 威联通 TS-464(4 盘位) | 品牌 NAS 省事、自带快照/RAID/APP;DIY(TrueNAS/OMV)更省但费时,单人做样板不推荐 DIY | 2,500–3,500 |
| NAS 硬盘 | 4×2TB NAS 盘(WD Red / 希捷酷狼),RAID5 | 可用容量约 6TB,坏一块不丢数据;留 1 个热备位更好 | 2,000–2,600 |
| 网络 | 千兆内网 + Tailscale 组网 | 服务器-NAS 走内网千兆(读写模型/数据);你走 Tailscale 远程运维 | 0–300 |
| UPS(可选) | 600VA 在线式 UPS | 厂区断电频繁时必配,保护 NAS 和服务器,避免 RAID 重建/数据损坏 | 400–600 |
| 模型 | 角色 | 用途 | 速度 / 占用 |
|---|---|---|---|
| Qwen3 7B–14B(小模型) | 日常快处理 | 数据问答、工具调用、摘要、规则任务、报表说明 | 快(40+ Token/s),约 8–14GB |
| Qwen3.6-35B-A3B(30B MoE) | 复杂分析 | 经营周报生成、异常归因、深度经营分析 | 25–35 Token/s,约 20GB |
| bge-m3(嵌入模型) | 向量化 | 产品手册/合同/会议纪要检索(RAG) | 轻量,纯本地 |
| DeepSeek V4 Flash(云端 API) | 兜底 | 超长文本、复杂推理、本地不擅长的任务 | 按量付费,月均 <200 元 |
| 工具 | 输入 | 输出 | 数据来源 |
|---|---|---|---|
| 经营周报 | 本周时间范围 | 微信图文简报(销量异动/库存预警/TOP 变化) | SQLite + 模型 |
| 数据问答 | 老板自然语言问题(如"上月华东卖了多少") | SQL 查询结果 + 一句解释 | SQLite + 小模型 |
| 库存盘点辅助 | 库存表/进销存导出 | 异常项(超储/临期/断货风险)+ 建议 | SQLite + 30B MoE |
| 文档检索(RAG) | 问题(如"XX 产品的退换货政策") | 产品手册/合同片段 + 引用位置 | NAS 文档 → Chroma + bge-m3 |
| 报表生成 | 指标/维度选择 | Excel/图表(月度销售、区域分布等) | SQLite + 工具函数 |
| 会议纪要整理(可选) | 录音转写文本 | 要点/待办清单(仅辅助,不替人决策) | 云端 API(非敏感)或本地 |
| 任务类型 | 用什么 | 验收标准 |
|---|---|---|
| 规则明确:周报模板填充、断码/库存预警触发、数据问答(查数) | 本地小模型(7–14B)即可 | 格式正确 + 规则正确(数字/预警条件对) |
| 复杂分析:经营归因、深度分析、报告润色(核心价值,数据敏感) | 30B MoE(本地 · 主力) | 逻辑通顺 + 数据引用准确(可人工复核) |
| 超长文本 / 疑难推理 / 开放式创作(占比小、可脱敏) | 云端大模型 API(DeepSeek · 保险丝) | 客户感知"够用、省事",月预算 200 内 |
投入:约 550h 工时(阶段一 104h + 阶段二 88h + 阶段三 160h + 阶段四 160h + 商务 40h);硬件 2–2.6 万由客户自购,你不垫资(可经你渠道采购赚合理差价)。
+回报:一个跑通全流程的完整案例(从免费工具到年卡逻辑)+ 客户转介绍 1–2 家同行业客户 + 鞋类行业的指标/流程 Know-how(断码、退换货、尺码预测)——这些是你复制给下一个鞋类客户的核心资产。
+底线:免费但不白干——备忘录写清"免费换案例+转介绍+署名";5 个月没跑通 → 复盘止损,别无限期免费下去。
+| 阶段 | 目标版(周) | 底线版(周) | 关键成果 | 里程碑(=成果节点,非收款) |
|---|---|---|---|---|
| 一 清洗+流程 | 第 1–2 周 | 第 1–3 周 | 资产包+流程图(含退换货流) | 数据对账无误、鞋类断码痛点确认 |
| 二 建库+看板 | 第 3–7 周 | 第 4–9 周 | 数据库+看板+周报(含断码预警) | 老板随时查任意月、周报稳定 2–3 周 |
| 三 硬件+模型 | 第 8–12 周 | 第 10–15 周 | 客户自购硬件落地+多模型+Agent+微信周报 | 微信周报自动稳定 2–3 周 |
| 四 决策+封版 | 第 13–16 周 | 第 16–20 周 | 款×尺码预测+断码补货+现金流+SKU 策略 | 一次断码补货见效 → 案例封版 |
| 封版+转介绍 | 第 17 周 | 第 21 周 | 案例素材(脱敏)+ 转介绍启动 | 约到第 1 家转介绍客户 |