# GLM-4-Flash特性详解 ## 🎯 学习目标 通过本章学习,您将能够: - 深入了解GLM-4-Flash模型的特性和能力 - 掌握不同场景下的提示词工程技巧 - 学会优化AI交互体验和响应质量 - 在Chat-Room项目中充分发挥AI助手的潜力 ## ⚡ GLM-4-Flash模型特性 ### 模型能力概览 ```mermaid graph TB subgraph "GLM-4-Flash核心能力" A[语言理解
Language Understanding] --> A1[多语言支持
Multi-language] A --> A2[上下文理解
Context Awareness] A --> A3[意图识别
Intent Recognition] B[内容生成
Content Generation] --> B1[创意写作
Creative Writing] B --> B2[代码生成
Code Generation] B --> B3[文档总结
Summarization] C[对话交互
Conversational AI] --> C1[多轮对话
Multi-turn Chat] C --> C2[角色扮演
Role Playing] C --> C3[情感理解
Emotion Recognition] D[专业任务
Professional Tasks] --> D1[翻译服务
Translation] D --> D2[问答系统
Q&A System] D --> D3[内容分析
Content Analysis] end subgraph "技术特点" E[高速响应
Fast Response] F[低延迟
Low Latency] G[高并发
High Concurrency] H[成本效益
Cost Effective] end style A fill:#e8f5e8 style B fill:#fff3cd style C fill:#f8d7da style D fill:#d1ecf1 ``` ### Chat-Room AI助手功能设计 ```mermaid graph LR subgraph "AI助手功能模块" A[智能问答
Smart Q&A] --> A1[技术咨询
Tech Support] A --> A2[生活助手
Life Assistant] A --> A3[学习辅导
Learning Help] B[内容处理
Content Processing] --> B1[消息总结
Message Summary] B --> B2[关键词提取
Keyword Extract] B --> B3[情感分析
Sentiment Analysis] C[创意协作
Creative Collaboration] --> C1[头脑风暴
Brainstorming] C --> C2[文案创作
Copywriting] C --> C3[代码助手
Code Assistant] D[群组管理
Group Management] --> D1[话题引导
Topic Guide] D --> D2[氛围调节
Mood Regulation] D --> D3[活动建议
Activity Suggestion] end style A fill:#e8f5e8 style B fill:#fff3cd style C fill:#f8d7da style D fill:#d1ecf1 ``` ## 🎨 提示词工程 ### Chat-Room专用提示词模板 ```python # server/ai/prompt_templates.py - 提示词模板 from typing import Dict, List, Optional, Any from dataclasses import dataclass from enum import Enum import json class PromptType(Enum): """提示词类型""" CHAT_ASSISTANT = "chat_assistant" CONTENT_SUMMARY = "content_summary" TRANSLATION = "translation" CODE_HELPER = "code_helper" CREATIVE_WRITING = "creative_writing" SENTIMENT_ANALYSIS = "sentiment_analysis" @dataclass class PromptTemplate: """提示词模板""" name: str type: PromptType system_prompt: str user_template: str parameters: Dict[str, Any] examples: List[Dict[str, str]] def format(self, **kwargs) -> str: """格式化用户提示词""" return self.user_template.format(**kwargs) class ChatRoomPromptManager: """ Chat-Room提示词管理器 功能: 1. 管理各种场景的提示词模板 2. 动态生成上下文相关的提示词 3. 优化AI响应质量和一致性 4. 支持多语言和个性化定制 """ def __init__(self): self.templates: Dict[str, PromptTemplate] = {} self._init_default_templates() def _init_default_templates(self): """初始化默认提示词模板""" # 聊天助手模板 chat_assistant = PromptTemplate( name="chat_assistant", type=PromptType.CHAT_ASSISTANT, system_prompt="""你是Chat-Room聊天室的AI助手,名叫"小智"。你的特点: 1. 友好、耐心、乐于助人 2. 具有丰富的知识和经验 3. 能够理解上下文和用户情感 4. 回复简洁明了,避免过长的回答 5. 适当使用表情符号增加亲和力 6. 尊重用户隐私,不记录敏感信息 当前聊天环境: - 群组名称:{group_name} - 在线人数:{online_count} - 当前时间:{current_time} 请根据用户的问题和聊天上下文,提供有帮助的回复。""", user_template="用户问题:{user_message}\n\n聊天上下文:\n{chat_context}", parameters={ "max_tokens": 512, "temperature": 0.7, "top_p": 0.9 }, examples=[ { "user": "你好,小智!", "assistant": "你好!😊 很高兴在Chat-Room遇到你!有什么我可以帮助你的吗?" }, { "user": "这个群里有什么有趣的话题吗?", "assistant": "让我看看最近的聊天记录...大家在讨论技术、生活和学习等话题呢!你对哪个方面比较感兴趣?我可以帮你找到相关的讨论 🤔" } ] ) # 内容总结模板 content_summary = PromptTemplate( name="content_summary", type=PromptType.CONTENT_SUMMARY, system_prompt="""你是一个专业的内容总结助手。请对聊天记录进行简洁、准确的总结。 总结要求: 1. 提取关键信息和主要话题 2. 保持客观中性的语调 3. 突出重要决定和结论 4. 控制在200字以内 5. 使用清晰的结构化格式""", user_template="请总结以下聊天内容:\n\n{chat_content}\n\n总结要点:{summary_points}", parameters={ "max_tokens": 300, "temperature": 0.3, "top_p": 0.8 }, examples=[ { "user": "总结今天的技术讨论", "assistant": "📋 今日技术讨论总结:\n\n🔹 主要话题:Python异步编程\n🔹 讨论要点:asyncio库使用、性能优化\n🔹 达成共识:异步编程适合I/O密集型任务\n🔹 后续计划:下周分享实战案例" } ] ) # 翻译助手模板 translation = PromptTemplate( name="translation", type=PromptType.TRANSLATION, system_prompt="""你是一个专业的翻译助手。请提供准确、自然的翻译服务。 翻译原则: 1. 保持原文的语气和风格 2. 考虑文化背景和语境 3. 使用地道的表达方式 4. 对于专业术语,提供准确翻译 5. 如有歧义,提供多种翻译选项""", user_template="请将以下内容从{source_lang}翻译为{target_lang}:\n\n{text}", parameters={ "max_tokens": 1024, "temperature": 0.2, "top_p": 0.8 }, examples=[ { "user": "翻译:Hello, how are you?", "assistant": "你好,你好吗?\n\n💡 更自然的表达:\n- 你好,最近怎么样?\n- 嗨,你还好吗?" } ] ) # 代码助手模板 code_helper = PromptTemplate( name="code_helper", type=PromptType.CODE_HELPER, system_prompt="""你是一个专业的编程助手。请提供准确、实用的编程帮助。 服务内容: 1. 代码解释和分析 2. 错误诊断和修复建议 3. 代码优化和重构 4. 最佳实践推荐 5. 算法和数据结构指导 回复格式: - 简洁的解释 - 完整的代码示例 - 关键点说明 - 相关建议""", user_template="编程问题:{question}\n\n代码上下文:\n```{language}\n{code}\n```\n\n具体需求:{requirements}", parameters={ "max_tokens": 1024, "temperature": 0.1, "top_p": 0.9 }, examples=[ { "user": "如何优化这个Python循环?", "assistant": "🔧 代码优化建议:\n\n```python\n# 原代码优化版本\nresult = [process(item) for item in items if condition(item)]\n```\n\n💡 优化要点:\n- 使用列表推导式提高性能\n- 减少函数调用开销\n- 提高代码可读性" } ] ) # 情感分析模板 sentiment_analysis = PromptTemplate( name="sentiment_analysis", type=PromptType.SENTIMENT_ANALYSIS, system_prompt="""你是一个情感分析专家。请分析文本的情感倾向和情绪状态。 分析维度: 1. 情感极性:正面、负面、中性 2. 情感强度:强烈、中等、轻微 3. 具体情绪:开心、愤怒、悲伤、焦虑等 4. 情感变化:情绪波动趋势 输出格式: - 简洁的分析结果 - 关键情感词汇 - 建议的回应方式""", user_template="请分析以下文本的情感:\n\n{text}\n\n分析重点:{focus_areas}", parameters={ "max_tokens": 256, "temperature": 0.3, "top_p": 0.8 }, examples=[ { "user": "分析:今天工作太累了,什么都不想做", "assistant": "😔 情感分析:\n\n🔹 情感极性:负面\n🔹 情感强度:中等\n🔹 主要情绪:疲惫、消极\n🔹 建议回应:表示理解和关心,提供放松建议" } ] ) # 注册模板 self.templates = { "chat_assistant": chat_assistant, "content_summary": content_summary, "translation": translation, "code_helper": code_helper, "sentiment_analysis": sentiment_analysis } def get_template(self, template_name: str) -> Optional[PromptTemplate]: """获取提示词模板""" return self.templates.get(template_name) def format_chat_prompt(self, user_message: str, group_name: str = "默认群组", online_count: int = 1, chat_context: str = "") -> tuple[str, str]: """格式化聊天提示词""" template = self.get_template("chat_assistant") if not template: return "", user_message import datetime current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") system_prompt = template.system_prompt.format( group_name=group_name, online_count=online_count, current_time=current_time ) user_prompt = template.format( user_message=user_message, chat_context=chat_context ) return system_prompt, user_prompt def format_summary_prompt(self, chat_content: str, summary_points: str = "主要话题和结论") -> tuple[str, str]: """格式化总结提示词""" template = self.get_template("content_summary") if not template: return "", chat_content system_prompt = template.system_prompt user_prompt = template.format( chat_content=chat_content, summary_points=summary_points ) return system_prompt, user_prompt def format_translation_prompt(self, text: str, source_lang: str = "英文", target_lang: str = "中文") -> tuple[str, str]: """格式化翻译提示词""" template = self.get_template("translation") if not template: return "", text system_prompt = template.system_prompt user_prompt = template.format( text=text, source_lang=source_lang, target_lang=target_lang ) return system_prompt, user_prompt def format_code_helper_prompt(self, question: str, code: str = "", language: str = "python", requirements: str = "请提供解决方案") -> tuple[str, str]: """格式化代码助手提示词""" template = self.get_template("code_helper") if not template: return "", question system_prompt = template.system_prompt user_prompt = template.format( question=question, code=code, language=language, requirements=requirements ) return system_prompt, user_prompt def add_custom_template(self, template: PromptTemplate): """添加自定义模板""" self.templates[template.name] = template def list_templates(self) -> List[str]: """列出所有模板名称""" return list(self.templates.keys()) # 智能提示词优化器 class PromptOptimizer: """提示词优化器""" def __init__(self): self.optimization_rules = { "clarity": "使用清晰、具体的语言", "context": "提供充分的上下文信息", "structure": "使用结构化的格式", "examples": "包含相关的示例", "constraints": "明确指定输出约束" } def optimize_prompt(self, original_prompt: str, optimization_goals: List[str]) -> str: """优化提示词""" optimized = original_prompt for goal in optimization_goals: if goal == "clarity": optimized = self._improve_clarity(optimized) elif goal == "structure": optimized = self._add_structure(optimized) elif goal == "examples": optimized = self._add_examples(optimized) return optimized def _improve_clarity(self, prompt: str) -> str: """提高清晰度""" # 添加明确的指令 if not prompt.startswith("请"): prompt = "请" + prompt # 添加输出格式说明 if "格式" not in prompt: prompt += "\n\n请以清晰、简洁的格式回复。" return prompt def _add_structure(self, prompt: str) -> str: """添加结构化格式""" if "步骤" not in prompt and "要点" not in prompt: prompt += "\n\n请按以下结构回复:\n1. 主要观点\n2. 详细说明\n3. 总结建议" return prompt def _add_examples(self, prompt: str) -> str: """添加示例""" if "例如" not in prompt and "示例" not in prompt: prompt += "\n\n请提供具体的例子来说明你的观点。" return prompt # 使用示例 def demo_prompt_management(): """提示词管理演示""" manager = ChatRoomPromptManager() print("=== Chat-Room提示词管理演示 ===") # 聊天助手提示词 system_prompt, user_prompt = manager.format_chat_prompt( user_message="你能帮我解释一下什么是机器学习吗?", group_name="AI学习群", online_count=15, chat_context="最近大家在讨论人工智能的发展趋势" ) print("聊天助手提示词:") print(f"系统提示词:{system_prompt[:200]}...") print(f"用户提示词:{user_prompt}") # 代码助手提示词 system_prompt, user_prompt = manager.format_code_helper_prompt( question="如何优化这个函数的性能?", code="def slow_function(data):\n result = []\n for item in data:\n if item > 0:\n result.append(item * 2)\n return result", language="python", requirements="提供更高效的实现方式" ) print("\n代码助手提示词:") print(f"用户提示词:{user_prompt}") # 列出所有模板 templates = manager.list_templates() print(f"\n可用模板:{templates}") if __name__ == "__main__": demo_prompt_management() ``` ## 🎯 实践练习 ### 练习1:个性化AI助手 ```python class PersonalizedAIAssistant: """ 个性化AI助手练习 要求: 1. 根据用户偏好调整回复风格 2. 学习用户的兴趣和习惯 3. 提供个性化的建议和服务 4. 支持多种AI人格设定 """ def adapt_to_user_style(self, user_id: int, conversation_history: List[str]): """适应用户风格""" # TODO: 实现用户风格学习 pass ``` ### 练习2:多模态AI集成 ```python class MultiModalAI: """ 多模态AI集成练习 要求: 1. 支持图像理解和描述 2. 集成语音识别和合成 3. 处理文档和表格数据 4. 实现跨模态的智能交互 """ def process_image_message(self, image_data: bytes, user_query: str): """处理图像消息""" # TODO: 实现图像理解 pass ``` ## ✅ 学习检查 完成本章学习后,请确认您能够: - [ ] 理解GLM-4-Flash模型的核心特性 - [ ] 设计有效的提示词模板 - [ ] 优化AI交互体验 - [ ] 实现多场景的AI功能 - [ ] 管理和优化提示词质量 - [ ] 完成实践练习 ## 📚 下一步 GLM-4-Flash特性掌握后,请继续学习: - [上下文管理](context-management.md) - [异步处理](async-processing.md) --- **现在您已经掌握了GLM-4-Flash的强大特性!** ⚡