医院网站建设计划,南昌地宝网,做网站为什么要用源码,电商商城系统免费ChatGLM3-6B实战教程#xff1a;基于本地模型构建自动化周报生成助手 1. 项目概述 你是不是每周都要花大量时间写工作总结和下周计划#xff1f;手动整理邮件、记录会议要点、汇总项目进展#xff0c;这些重复性工作既耗时又容易出错。现在#xff0c;有了ChatGLM3-6B本地…ChatGLM3-6B实战教程基于本地模型构建自动化周报生成助手1. 项目概述你是不是每周都要花大量时间写工作总结和下周计划手动整理邮件、记录会议要点、汇总项目进展这些重复性工作既耗时又容易出错。现在有了ChatGLM3-6B本地模型你可以轻松构建一个自动化周报生成助手让AI帮你完成这些繁琐的工作。本教程将手把手教你如何基于智谱AI开源的ChatGLM3-6B-32k模型使用Streamlit框架打造一个完全运行在本地的智能周报生成系统。无需联网无需API密钥所有数据处理都在你的电脑上完成确保商业机密和隐私安全。你将学到如何在本地环境快速部署ChatGLM3-6B模型如何使用Streamlit构建直观的Web界面如何设计提示词让AI生成高质量的周报内容如何实现多轮对话和上下文记忆功能2. 环境准备与快速部署2.1 硬件要求为了流畅运行ChatGLM3-6B模型建议使用以下配置显卡RTX 4090D或同等级别显卡24GB显存以上内存32GB RAM或更高存储至少50GB可用空间用于模型文件和依赖库2.2 一键安装步骤打开终端依次执行以下命令# 创建并激活虚拟环境 conda create -n weekly_report python3.10 conda activate weekly_report # 安装核心依赖版本锁定确保稳定性 pip install torch2.2.0cu121 torchvision0.17.0cu121 torchaudio2.2.0cu121 -f https://download.pytorch.org/whl/torch_stable.html pip install transformers4.40.2 streamlit # 下载模型文件可选如果已有模型文件可跳过 git clone https://huggingface.co/THUDM/chatglm3-6b-32k2.3 模型加载验证创建测试脚本检查模型是否正常加载# test_model.py from transformers import AutoModel, AutoTokenizer model_path ./chatglm3-6b-32k tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModel.from_pretrained(model_path, trust_remote_codeTrue).half().cuda() # 测试简单问答 response, history model.chat(tokenizer, 你好, history[]) print(模型响应:, response)运行测试脚本如果看到正常的问候回复说明模型加载成功。3. 构建周报生成助手3.1 Streamlit应用基础框架创建主应用文件weekly_report_app.pyimport streamlit as st from transformers import AutoModel, AutoTokenizer import os # 设置页面标题和图标 st.set_page_config( page_titleAI周报生成助手, page_icon, layoutwide ) # 初始化session状态 if history not in st.session_state: st.session_state.history [] if model_loaded not in st.session_state: st.session_state.model_loaded False st.cache_resource def load_model(): 一次性加载模型到内存避免重复加载 model_path ./chatglm3-6b-32k tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModel.from_pretrained(model_path, trust_remote_codeTrue).half().cuda() return model, tokenizer # 侧边栏配置 with st.sidebar: st.title(⚙ 配置选项) if st.button( 加载模型): with st.spinner(正在加载模型请稍候...): model, tokenizer load_model() st.session_state.model model st.session_state.tokenizer tokenizer st.session_state.model_loaded True st.success(模型加载完成) # 主界面 st.title( AI周报生成助手)3.2 周报生成功能实现添加周报生成的核心功能# 在weekly_report_app.py中继续添加 def generate_weekly_report(work_items): 生成周报的提示词模板 prompt f请根据以下工作内容生成一份专业的工作周报 本周完成的工作 {work_items} 请按照以下格式生成周报 1. 本周工作总结分点列出主要成果 2. 遇到的问题与解决方案 3. 下周工作计划 4. 需要的支持与资源 要求使用正式的业务语言突出重点成果字数在500字左右。 return prompt # 在主界面添加周报生成界面 if st.session_state.model_loaded: tab1, tab2 st.tabs([ 智能对话, 周报生成]) with tab1: # 智能对话界面代码后续实现 pass with tab2: st.header(自动化周报生成) # 工作内容输入 work_input st.text_area( 请输入本周工作内容可粘贴多个任务, height150, placeholder例如\n- 完成了项目A的需求分析\n- 修复了系统B的登录bug\n- 参加了团队技术分享会 ) # 生成选项 col1, col2 st.columns(2) with col1: report_style st.selectbox( 周报风格, [专业正式, 简洁明了, 详细技术型] ) with col2: report_length st.slider(周报长度, 300, 1000, 500) if st.button(生成周报, typeprimary): if work_input.strip(): with st.spinner(AI正在为您生成周报...): # 构建提示词 prompt generate_weekly_report(work_input) # 调用模型生成 response, _ st.session_state.model.chat( st.session_state.tokenizer, prompt, historyst.session_state.history ) # 显示结果 st.subheader(生成的周报) st.write(response) # 添加下载按钮 st.download_button( 下载周报, response, file_nameweekly_report.md, mimetext/markdown ) else: st.warning(请输入工作内容) else: st.info(请先在侧边栏加载模型以开始使用)3.3 智能对话功能增强完善智能对话功能支持多轮对话# 在tab1中添加智能对话功能 with tab1: st.header(智能工作助手) # 显示对话历史 for message in st.session_state.history: with st.chat_message(message[role]): st.write(message[content]) # 用户输入 if prompt : st.chat_input(请输入您的问题或指令...): # 添加用户消息到历史 st.session_state.history.append({role: user, content: prompt}) with st.chat_message(user): st.write(prompt) # 生成回复 with st.chat_message(assistant): message_placeholder st.empty() full_response # 流式输出 for response, _ in st.session_state.model.chat( st.session_state.tokenizer, prompt, historyst.session_state.history[:-1], # 排除刚添加的用户消息 streamTrue ): full_response response message_placeholder.write(full_response ▌) message_placeholder.write(full_response) # 添加助手回复到历史 st.session_state.history.append({role: assistant, content: full_response}) # 限制历史记录长度 if len(st.session_state.history) 20: st.session_state.history st.session_state.history[-20:]4. 高级功能与实用技巧4.1 预设提示词模板为了提高效率可以添加一些常用的提示词模板# 在周报生成标签页中添加预设模板 preset_templates { 技术开发周报: 请生成技术开发人员的周报重点突出 - 代码开发与重构进展 - 技术难题解决 - 代码审查和学习收获, 项目管理周报: 请生成项目经理的周报包含 - 项目进度与里程碑达成 - 资源协调与团队管理 - 风险识别与应对措施, 销售业务周报: 请生成销售人员的周报强调 - 客户拜访与成交情况 - 市场动态与竞争分析 - 下阶段销售目标 } # 在周报生成界面添加模板选择 template_choice st.selectbox(选择周报模板, list(preset_templates.keys())) if st.button(应用模板): work_input preset_templates[template_choice]4.2 批量处理功能对于需要生成多份周报的场景可以添加批量处理功能# 添加批量处理界面 with st.expander(批量生成周报高级功能): uploaded_file st.file_uploader(上传工作记录文件, type[txt, csv]) if uploaded_file is not None: # 解析文件内容 content uploaded_file.getvalue().decode(utf-8) work_items_list content.split(---) # 假设用---分隔不同人的工作 if st.button(批量生成): for i, work_items in enumerate(work_items_list): if work_items.strip(): with st.spinner(f生成第{i1}份周报...): prompt generate_weekly_report(work_items) response, _ st.session_state.model.chat( st.session_state.tokenizer, prompt, history[] ) st.subheader(f周报 {i1}) st.write(response) st.download_button( f下载周报{i1}, response, file_namefweekly_report_{i1}.md )5. 常见问题解决5.1 性能优化建议如果发现生成速度较慢可以尝试以下优化# 在模型加载时添加优化参数 st.cache_resource def load_model(): model_path ./chatglm3-6b-32k tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModel.from_pretrained( model_path, trust_remote_codeTrue, torch_dtypetorch.float16, # 使用半精度浮点数 low_cpu_mem_usageTrue # 减少CPU内存使用 ).cuda() return model, tokenizer5.2 内存管理技巧对于长时间运行的应用需要注意内存管理定期清理对话历史避免内存占用过多使用torch.cuda.empty_cache()清理GPU缓存对于特别长的对话可以考虑只保留最近几轮上下文5.3 模型响应质量提升如果生成的周报不够精准可以改进提示词设计提供更具体的工作描述明确要求包含数据和支持细节指定喜欢的格式和段落结构6. 总结与下一步建议通过本教程你已经成功构建了一个基于ChatGLM3-6B的本地周报生成助手。这个系统完全运行在你的硬件上确保了数据隐私和安全同时提供了流畅的交互体验。你已经掌握的核心技能本地大语言模型的部署和调用Streamlit Web应用的开发提示词工程的基本技巧多轮对话上下文的维护下一步可以尝试的进阶功能集成日历和邮件自动从日历读取会议安排从邮件提取工作内容多模态支持添加图片和文档理解能力支持更丰富的内容输入团队协作功能开发多用户版本支持整个团队的周报生成个性化学习让模型学习你的写作风格生成更符合个人习惯的周报现在就开始使用你的AI周报助手吧每周节省下来的时间可以用来做更有价值的工作。记住这个系统完全在你的控制之下你可以根据需要随时调整和改进它。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。