千问本地大模型驱动酷家乐(纯模拟人工)全屋定制自动化设计方案

一、核心设计理念与架构

1.1 核心逻辑

完全复刻“人类设计师操作酷家乐”的全流程:千问本地大模型作为“大脑”,负责实时解析用户需求、规划操作步骤、学习酷家乐界面逻辑与设计规则;通过视觉识别工具(SikuliX)模拟人类“视觉定位”,精准识别酷家乐界面按钮、输入框等元素;通过键鼠模拟工具(PyAutoGUI)模拟人类“动手操作”,实现点击、拖拽、输入等动作;最终通过操作日志反馈与模型迭代,实现自动化学习与优化,形成“需求解析→步骤规划→视觉定位→键鼠执行→日志学习→优化迭代”的闭环。

1.2 整体架构(四层闭环)

  1. 决策层:千问本地大模型(Qwen3系列),核心负责需求解析、操作步骤规划、异常处理决策、自动化学习(从操作日志中提炼经验)。
  2. 感知层:视觉识别引擎(SikuliX+OpenCV),负责“看见”酷家乐界面元素(按钮、菜单、弹窗),验证操作结果(如是否成功打开户型库)。
  3. 执行层:键鼠模拟引擎(PyAutoGUI),负责“动手”执行操作,包括鼠标点击、拖拽、滚动,键盘输入文本与快捷键。
  4. 数据层:本地知识库(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步完成)

  1. 安装Ollama:从官网下载安装后,打开CMD执行命令拉取千问模型(以7B量化版为例): ollama pull qwen3:7b-int4 # 拉取INT4量化版,显存占用低 ollama run qwen3:7b-int4 # 测试模型,输入任意问题能回复即成功
  2. 配置vLLM推理引擎(提升实时性): # 安装vLLM:pip install vllm from vllm import LLM, SamplingParams # 初始化千问模型(本地加载) sampling_params = SamplingParams(temperature=0.7, max_tokens=512) llm = LLM(model="Qwen/Qwen3-7B-Instruct-INT4", device_map="cuda")
  3. 封装模型调用函数(供后续模块调用): 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 False

3.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 True

3.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天:环境搭建

  1. 安装Python 3.8+,配置环境变量(勾选“Add Python to PATH”)。
  2. 安装核心依赖: pip install pyautogui==0.9.54 sikulixapi==2.0.5 vllm==0.4.0 ollama==0.1.26 chromadb==0.4.22
  3. 安装酷家乐客户端,关闭自动更新(设置→更新→关闭);安装Java 8(SikuliX依赖)。

4.2 第3-4天:模型部署与初始化

  1. 通过Ollama拉取千问模型(ollama pull qwen3:7b-int4)。
  2. 运行3.1.2节的初始化代码,向模型注入酷家乐操作知识。
  3. 测试模型调用:运行qwen_infer函数,输入需求能生成步骤即成功。

4.3 第5天:视觉模板制作与键鼠调试

  1. 打开酷家乐,用SikuliX截取核心界面元素,保存到指定路径。
  2. 运行3.2节的视觉识别与键鼠模拟代码,测试单个操作(如点击酷家乐图标、拖拽鼠标)。
  3. 调整鼠标坐标(用pyautogui.position()获取实时坐标),确保拖拽、点击精准。

4.4 第6天:全流程串联与测试

  1. 整合3.3-3.4节代码,实现“需求输入→步骤解析→自动化执行”全流程。
  2. 输入1-2个简单需求(如“80㎡一室一厅,主卧做直排衣柜”),运行全流程测试。
  3. 查看日志,修复异常(如识别失败→重新截取模板;操作卡顿→增加等待时间)。

4.5 第7天:学习模块部署与优化

  1. 部署3.5节的日志记录与模型学习模块。
  2. 运行model_learn()函数,让模型从测试日志中学习,更新步骤映射规则。
  3. 最终测试:输入复杂需求,验证系统稳定性与设计精度。

五、关键优化与避坑指南

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权限,纯本地部署保障数据安全,零后续接口费用;系统操作门槛低,普通员工输入自然语言需求即可完成设计,大幅降低对资深设计师的依赖。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注