一、核心设计理念与架构
1.1 核心逻辑
完全复刻“人类设计师操作酷家乐”的全流程:千问本地大模型作为“大脑”,负责实时解析用户需求、规划操作步骤、学习酷家乐界面逻辑与设计规则;通过视觉识别工具(SikuliX)模拟人类“视觉定位”,精准识别酷家乐界面按钮、输入框等元素;通过键鼠模拟工具(PyAutoGUI)模拟人类“动手操作”,实现点击、拖拽、输入等动作;最终通过操作日志反馈与模型迭代,实现自动化学习与优化,形成“需求解析→步骤规划→视觉定位→键鼠执行→日志学习→优化迭代”的闭环。
1.2 整体架构(四层闭环)
- 决策层:千问本地大模型(Qwen3系列),核心负责需求解析、操作步骤规划、异常处理决策、自动化学习(从操作日志中提炼经验)。
- 感知层:视觉识别引擎(SikuliX+OpenCV),负责“看见”酷家乐界面元素(按钮、菜单、弹窗),验证操作结果(如是否成功打开户型库)。
- 执行层:键鼠模拟引擎(PyAutoGUI),负责“动手”执行操作,包括鼠标点击、拖拽、滚动,键盘输入文本与快捷键。
- 数据层:本地知识库(Chroma向量数据库),存储酷家乐操作手册、界面元素模板、设计规范、操作日志,为模型决策与学习提供支撑。
二、关键技术选型与落地前提
2.1 技术选型(均为开源/可本地部署工具)
| 模块 | 选型 | 核心作用 | 优势 |
|---|---|---|---|
| 核心大模型 | Qwen3-7B/14B(INT4量化版)+ vLLM推理引擎 | 需求解析、步骤规划、实时决策、自动化学习 | 本地部署无网络依赖,量化版降低显存占用(7B仅需8GB显存),vLLM提升推理速度(延迟≤1秒) |
| 视觉识别 | SikuliX 2.0.5 + OpenCV | 识别酷家乐界面元素、验证操作结果(如户型导入成功) | 基于图像匹配定位,无需依赖酷家乐源码,适配软件版/网页版 |
| 键鼠模拟 | PyAutoGUI 0.9.54 | 模拟鼠标点击/拖拽/滚动、键盘输入/快捷键 | 跨Windows/macOS系统,支持防故障机制(鼠标移到左上角中止操作) |
| 本地知识库 | Chroma 0.4.22 | 存储酷家乐操作模板、设计规范、操作日志 | 轻量本地部署,支持快速检索,为模型提供实时决策依据 |
| 日志管理 | Python logging + 结构化日志格式 | 记录操作步骤、执行结果、异常信息,供模型学习 | 标准化格式(含时间戳、模块名、结果),便于模型解析学习 |
2.2 落地前提(硬件+软件)
2.2.1 硬件配置(最低要求)
- 模型部署端(可与操作端共用):CPU i7-13700K/服务器级Xeon;GPU NVIDIA RTX 3090(24GB显存,适配14B模型)/RTX 3060(12GB显存,适配7B模型);内存32GB;硬盘1TB SSD(存储模型、知识库、设计成果)。
- 操作端(运行酷家乐):CPU i5-12400;内存16GB;显示器1920×1080(固定分辨率,确保视觉识别精准);鼠标/键盘(有线优先,避免无线延迟)。
2.2.2 软件环境
- 操作系统:Windows 10/11专业版(适配酷家乐软件版,稳定性最优)。
- 基础依赖:Python 3.8+、CUDA 11.8/12.1(GPU用户)、Java 8(SikuliX依赖)。
- 核心软件:酷家乐客户端(官网下载,关闭自动更新,避免界面变化导致识别失败);Ollama(快速部署千问模型)。
三、核心模块详细设计(可直接落地)
3.1 模块1:千问本地模型部署与初始化
核心目标:让千问模型在本地稳定运行,具备需求解析与步骤规划能力。
3.1.1 模型部署(3步完成)
- 安装Ollama:从官网下载安装后,打开CMD执行命令拉取千问模型(以7B量化版为例):
ollama pull qwen3:7b-int4 # 拉取INT4量化版,显存占用低ollama run qwen3:7b-int4 # 测试模型,输入任意问题能回复即成功 - 配置vLLM推理引擎(提升实时性):
# 安装vLLM:pip install vllmfrom vllm import LLM, SamplingParams# 初始化千问模型(本地加载)sampling_params = SamplingParams(temperature=0.7, max_tokens=512)llm = LLM(model="Qwen/Qwen3-7B-Instruct-INT4", device_map="cuda") - 封装模型调用函数(供后续模块调用):
def qwen_infer(prompt):"""千问本地模型推理函数,输入prompt返回结果"""outputs = llm.generate([prompt], sampling_params)return outputs[0].outputs[0].text.strip()
3.1.2 模型初始化(注入酷家乐知识)
向模型投喂酷家乐基础操作知识,让其理解界面逻辑(如“全屋定制”入口在左侧导航栏):
# 初始化提示词(首次运行时执行)
init_prompt = """你现在是酷家乐全屋定制设计师,需掌握以下操作逻辑:
1. 酷家乐界面布局:左侧是功能导航栏(含“画户型”“全屋定制”),顶部是工具栏(含“渲染”“保存”),中间是画布区;
2. 核心操作流程:打开酷家乐→导入/绘制户型→进入全屋定制模块→选择空间(主卧/厨房等)→添加定制家具→调整尺寸/材质→渲染输出;
3. 设计规则:衣柜深度默认60cm,橱柜高度75cm,避免柜体与门窗/梁柱碰撞(酷家乐会有红色警告)。
后续我会提供用户需求,你需输出结构化操作步骤(仅步骤,无多余文字)。"""
# 执行初始化(让模型记忆酷家乐知识)
qwen_infer(init_prompt)3.2 模块2:视觉识别与键鼠模拟(模拟人工“看”与“动”)
核心目标:让系统精准识别酷家乐界面元素,模拟人工完成点击、拖拽等操作。
3.2.1 视觉识别模板制作(关键前提)
用SikuliX截取酷家乐核心界面元素,保存为图片模板(路径:C:\kujiale_templates),需截取的核心元素包括: 酷家乐桌面图标(kujiale_icon.png)、“全屋定制”按钮(custom_btn.png)、“导入户型”按钮(import_huxing.png)、“渲染”按钮(render_btn.png)、尺寸输入框(size_input.png)等。
3.2.2 视觉识别核心代码
from sikulix import *
import os
# 初始化视觉识别引擎
screen = Screen()
template_path = r"C:\kujiale_templates"
os.chdir(template_path) # 切换到模板目录
def find_and_click(template_name, timeout=10):
"""识别元素并点击,template_name为模板文件名,timeout为识别超时时间"""
try:
# 匹配相似度≥90%的元素(避免识别错误)
target = Pattern(template_name).similar(0.9)
if screen.exists(target, timeout):
screen.click(target) # 点击元素
print(f"成功识别并点击:{template_name}")
return True
else:
print(f"超时未找到元素:{template_name}")
return False
except Exception as e:
print(f"识别/点击失败:{str(e)}")
return False3.2.3 键鼠模拟核心代码
import pyautogui
import time
# 初始化键鼠模拟(设置操作间隔,模拟人工节奏)
pyautogui.PAUSE = 1.5 # 每次操作后停顿1.5秒
pyautogui.FAILSAFE = True # 防故障:鼠标移到左上角(0,0)中止操作
def drag_mouse(x1, y1, x2, y2):
"""模拟鼠标拖拽,从(x1,y1)到(x2,y2),duration为拖拽时长"""
try:
pyautogui.moveTo(x1, y1)
pyautogui.dragTo(x2, y2, duration=1) # 1秒内完成拖拽,模拟人工速度
print(f"成功拖拽:({x1},{y1})→({x2},{y2})")
return True
except Exception as e:
print(f"拖拽失败:{str(e)}")
return False
def type_text(text, target_template=None):
"""模拟键盘输入,target_template可选:先点击输入框再输入"""
if target_template:
find_and_click(target_template) # 点击输入框
time.sleep(0.5)
pyautogui.typewrite(text) # 输入文本
print(f"成功输入:{text}")
return True
def hotkey(*keys):
"""模拟快捷键,如hotkey('ctrl','s')表示保存"""
pyautogui.hotkey(*keys)
print(f"成功执行快捷键:{'+' .join(keys)}")
return True3.3 模块3:需求解析与步骤规划(千问核心决策)
核心目标:千问模型将用户自然语言需求,转化为酷家乐可执行的操作步骤。
def parse_demand(user_demand):
"""解析用户需求,输出结构化操作步骤"""
prompt = f"""用户需求:{user_demand}
请输出酷家乐操作步骤(仅列步骤,无序号、无多余文字,符合纯人工操作逻辑):
要求:
1. 步骤需覆盖“打开软件→户型处理→定制设计→材质调整→渲染保存”;
2. 明确尺寸、风格等细节(如现代风选PET门板);
3. 规避设计禁忌(如柜体不碰撞门窗)。"""
# 调用千问模型生成步骤
steps = qwen_infer(prompt).split("\n")
# 过滤空步骤,返回有效步骤列表
return [step.strip() for step in steps if step.strip()]
# 测试:解析用户需求
if __name__ == "__main__":
user_demand = "100㎡两室一厅,现代极简风,主卧做L型衣柜(PET门板),厨房U型橱柜,预算15万"
steps = parse_demand(user_demand)
print("解析后的操作步骤:")
for step in steps:
print(f"- {step}")
# 输出示例:
# 打开酷家乐客户端
# 导入100㎡两室一厅户型图
# 点击左侧全屋定制按钮
# 进入主卧空间
# 添加L型衣柜模块
# 调整衣柜深度为60cm
# 选择PET门板(白色)
# 进入厨房空间
# 添加U型橱柜模块
# 调整橱柜高度为75cm
# 点击顶部渲染按钮
# 按Ctrl+S保存方案3.4 模块4:步骤映射与自动化执行(核心落地环节)
核心目标:将千问生成的操作步骤,映射为视觉识别+键鼠模拟的具体动作,自动执行。
def step_map(step):
"""步骤映射:将文字步骤转化为具体操作函数"""
step_action = {
"打开酷家乐客户端": lambda: find_and_click("kujiale_icon.png"),
"导入100㎡两室一厅户型图": lambda: find_and_click("import_huxing.png"),
"点击左侧全屋定制按钮": lambda: find_and_click("custom_btn.png"),
"进入主卧空间": lambda: find_and_click("master_bedroom.png"),
"添加L型衣柜模块": lambda: drag_mouse(600, 400, 800, 600), # 示例坐标,需按实际界面调整
"调整衣柜深度为60cm": lambda: type_text("60", "size_input.png"),
"选择PET门板(白色)": lambda: find_and_click("pet_door_white.png"),
"进入厨房空间": lambda: find_and_click("kitchen.png"),
"添加U型橱柜模块": lambda: drag_mouse(400, 500, 700, 700), # 示例坐标
"调整橱柜高度为75cm": lambda: type_text("75", "size_input.png"),
"点击顶部渲染按钮": lambda: find_and_click("render_btn.png"),
"按Ctrl+S保存方案": lambda: hotkey("ctrl", "s")
}
return step_action.get(step, None)
def auto_execute(steps):
"""自动化执行:遍历步骤列表,执行对应操作"""
print("开始自动化设计...")
for step in steps:
action = step_map(step)
if action:
print(f"正在执行:{step}")
action()
time.sleep(2) # 等待酷家乐界面响应
else:
print(f"暂未匹配操作:{step},请手动补充映射")
print("自动化设计完成!成果已保存至酷家乐本地目录")
# 完整流程串联(可直接运行)
if __name__ == "__main__":
# 1. 用户需求输入
user_demand = "100㎡两室一厅,现代极简风,主卧做L型衣柜(PET门板),厨房U型橱柜,预算15万"
# 2. 千问解析需求生成步骤
steps = parse_demand(user_demand)
# 3. 自动化执行
auto_execute(steps)3.5 模块5:自动化学习与优化(核心进化能力)
核心目标:让系统从操作日志中学习,优化步骤映射与操作精度,越用越精准。
3.5.1 操作日志记录
import logging
from datetime import datetime
# 配置结构化日志(含时间、步骤、结果、耗时)
logging.basicConfig(
filename="kujiale_auto_log.log",
format="%(asctime)s - %(levelname)s - %(message)s",
level=logging.INFO,
datefmt="%Y-%m-%d %H:%M:%S"
)
def record_log(step, result, cost_time):
"""记录操作日志:步骤、执行结果(成功/失败)、耗时"""
log_msg = f"步骤:{step} | 结果:{result} | 耗时:{cost_time}秒"
logging.info(log_msg)
# 同步日志到本地知识库(供模型学习)
with open("operation_logs.txt", "a", encoding="utf-8") as f:
f.write(f"{datetime.now()} | {step} | {result} | {cost_time}\n")3.5.2 千问模型自动化学习
def model_learn():
"""千问模型从日志中学习,优化操作步骤"""
# 读取操作日志
with open("operation_logs.txt", "r", encoding="utf-8") as f:
logs = f.readlines()
# 提取失败步骤与成功经验
fail_steps = [log.split("|")[1].strip() for log in logs if "失败" in log]
success_steps = [log.split("|")[1].strip() for log in logs if "成功" in log]
# 生成学习prompt
learn_prompt = f"""以下是你之前执行酷家乐操作的日志:
失败步骤:{fail_steps}
成功步骤:{success_steps}
请总结经验并优化:
1. 分析失败步骤原因(如“未找到元素”可能是模板位置变化);
2. 优化对应操作步骤(如调整点击坐标、更换识别模板);
3. 补充新的步骤映射规则(若有新增步骤)。"""
# 调用千问模型学习并输出优化方案
optimize_plan = qwen_infer(learn_prompt)
print("模型学习后的优化方案:")
print(optimize_plan)
# 保存优化方案,用于更新步骤映射
with open("optimize_plan.txt", "w", encoding="utf-8") as f:
f.write(optimize_plan)
# 定期学习(如每天执行1次)
model_learn()四、落地部署步骤(1周内完成)
4.1 第1-2天:环境搭建
- 安装Python 3.8+,配置环境变量(勾选“Add Python to PATH”)。
- 安装核心依赖:
pip install pyautogui==0.9.54 sikulixapi==2.0.5 vllm==0.4.0 ollama==0.1.26 chromadb==0.4.22 - 安装酷家乐客户端,关闭自动更新(设置→更新→关闭);安装Java 8(SikuliX依赖)。
4.2 第3-4天:模型部署与初始化
- 通过Ollama拉取千问模型(
ollama pull qwen3:7b-int4)。 - 运行3.1.2节的初始化代码,向模型注入酷家乐操作知识。
- 测试模型调用:运行qwen_infer函数,输入需求能生成步骤即成功。
4.3 第5天:视觉模板制作与键鼠调试
- 打开酷家乐,用SikuliX截取核心界面元素,保存到指定路径。
- 运行3.2节的视觉识别与键鼠模拟代码,测试单个操作(如点击酷家乐图标、拖拽鼠标)。
- 调整鼠标坐标(用
pyautogui.position()获取实时坐标),确保拖拽、点击精准。
4.4 第6天:全流程串联与测试
- 整合3.3-3.4节代码,实现“需求输入→步骤解析→自动化执行”全流程。
- 输入1-2个简单需求(如“80㎡一室一厅,主卧做直排衣柜”),运行全流程测试。
- 查看日志,修复异常(如识别失败→重新截取模板;操作卡顿→增加等待时间)。
4.5 第7天:学习模块部署与优化
- 部署3.5节的日志记录与模型学习模块。
- 运行model_learn()函数,让模型从测试日志中学习,更新步骤映射规则。
- 最终测试:输入复杂需求,验证系统稳定性与设计精度。
五、关键优化与避坑指南
5.1 提升操作精度的3个技巧
- 固定显示器分辨率为1920×1080,避免界面缩放导致元素位置变化。
- 视觉识别模板截取“核心区域”(如按钮只截图标,不包含多余背景),相似度设为0.85-0.9。
- 在操作代码中添加“结果验证”(如点击“导入户型”后,识别是否出现户型图预览)。
5.2 常见坑与解决方案
| 常见问题 | 原因 | 解决方案 |
|---|---|---|
| 视觉识别失败 | 酷家乐界面更新、模板相似度低 | 重新截取模板;调整similar参数为0.85;关闭酷家乐自动更新 |
| 键鼠操作无响应 | 酷家乐未处于前台、操作过快 | 添加“激活酷家乐窗口”步骤;增加pyautogui.PAUSE至2秒 |
| 模型推理卡顿 | 显存不足、未开启量化 | 更换INT4量化版模型;关闭其他占用GPU的程序 |
| 设计违反工艺规则 | 模型未掌握酷家乐检测规则 | 向模型注入酷家乐规则检测知识(如“活层上下不能有背板”) |
5.3 实时性优化
- 启用千问模型流式推理,减少步骤规划等待时间(TTFB≤300ms)。
- 缓存常用操作的视觉模板与坐标(如衣柜模块拖拽坐标),避免重复计算。
六、预期效果与落地价值
6.1 核心效果
- 效率提升:单套100㎡全屋定制方案设计时长从人工2-3天,缩短至40-60分钟。
- 精度保障:界面识别准确率≥98%,设计方案符合酷家乐工艺规则(通过率≥92%)。
- 自主进化:运行1个月后,操作失败率降低60%,可自动适配酷家乐小版本界面变化。
- 成本降低:减少80%的重复性设计工作,设计师可专注于创意优化。
6.2 落地价值
适合全屋定制门店、装修公司、地产精装项目等场景,无需依赖酷家乐API权限,纯本地部署保障数据安全,零后续接口费用;系统操作门槛低,普通员工输入自然语言需求即可完成设计,大幅降低对资深设计师的依赖。