
# 安装
pip install customtkinter
def __init__(self):super().__init__()# 窗口基础设置self.title("本地Qwen1.5流式对话工具")self.geometry("800x600")self.grid_columnconfigure(1, weight=1)self.grid_rowconfigure(1, weight=1)# 模型变量(全局复用,只加载一次)self.model = Noneself.tokenizer = None# 流式输出消息队列,用于主线程更新UIself.stream_queue = queue.Queue()self.is_generating = False# 1. 对话展示框self.chat_text = ctk.CTkTextbox(self, wrap="word")self.chat_text.grid(row=1, column=0, columnspan=2, padx=10, pady=10, sticky="nsew")self.chat_text.configure(state="disabled")# 2. 输入框self.input_box = ctk.CTkEntry(self, width=600, placeholder_text="输入你的问题...")self.input_box.grid(row=2, column=0, padx=10, pady=(0,10), sticky="ew")self.input_box.bind("<Return>", self.send_msg)# 3. 发送按钮self.send_btn = ctk.CTkButton(self, text="发送", command=self.send_msg)self.send_btn.grid(row=2, column=1, padx=(0,10), pady=(0,10))# 加载模型(单独方法,只运行一次)self.load_model()# 启动主线程UI刷新循环,处理流式输出self.update_stream_ui()
torch 是 PyTorch 的核心模块,是 Facebook 开源的深度学习框架,专门用于机器学习、神经网络、AI 模型训练(大模型、图像、语音、LLM 都靠它)。# 导入包
import torch


导入阿里 ModelScope(魔搭)平台大语言模型标准语句,专门用来加载 Qwen、Llama、Baichuan 等文本生成大模型。# 加载包
from modelscope import AutoModelForCausalLM, AutoTokenizer
AutoTokenizer:自动加载对应模型的分词器,负责文本编码、解码AutoModelForCausalLM:自动加载自回归生成模型(对话 / 续写大模型专用)# ========== 独立模型加载方法 ==========def load_model(self):"""单独加载本地模型与分词器,仅初始化时执行一次"""try:self.append_text("系统:正在加载本地模型,请稍候...")self.model = AutoModelForCausalLM.from_pretrained( model_path,torch_dtype="auto",# device_map="auto",trust_remote_code=True)self.tokenizer = AutoTokenizer.from_pretrained(model_path)self.append_text("系统:模型加载完成,可以开始对话!\n")except Exception as e:self.append_text(f"系统:模型加载失败!错误信息:{str(e)}\n")
✅完整效果展示:
https://github.com/tongtongge/Python-AI
往期回顾
点点关注,点点爱心