怎么更改网站标题网站访问量很大怎么办
怎么更改网站标题,网站访问量很大怎么办,网站改版影响seo吗,工程施工合同免费版GLM-4.7-Flash代码实例#xff1a;Python调用OpenAI兼容API实现智能邮件生成
你是不是也经常为写邮件头疼#xff1f;特别是那些需要反复沟通、格式要求严格的商务邮件#xff0c;写起来费时费力#xff0c;还怕出错。
今天#xff0c;我来分享一个实用的解决方案#…GLM-4.7-Flash代码实例Python调用OpenAI兼容API实现智能邮件生成你是不是也经常为写邮件头疼特别是那些需要反复沟通、格式要求严格的商务邮件写起来费时费力还怕出错。今天我来分享一个实用的解决方案用GLM-4.7-Flash大模型通过Python调用它的OpenAI兼容API实现智能邮件自动生成。你只需要告诉它邮件的大致内容它就能帮你生成一封格式规范、语气得体的完整邮件。GLM-4.7-Flash是智谱AI推出的新一代大语言模型它最大的特点就是快。采用混合专家架构推理时只激活部分参数响应速度非常快特别适合需要实时交互的应用场景比如我们马上要做的邮件生成。更重要的是这个模型已经封装成了开箱即用的镜像提供了标准的OpenAI兼容API。这意味着如果你之前用过ChatGPT的API那么切换到GLM-4.7-Flash几乎不需要修改代码学习成本极低。1. 环境准备与快速部署1.1 获取GLM-4.7-Flash镜像首先你需要一个已经部署好的GLM-4.7-Flash服务。如果你还没有可以按照以下步骤快速获取访问CSDN星图镜像广场搜索“GLM-4.7-Flash”选择对应的镜像并一键部署镜像启动后你会获得两个重要的服务地址Web界面通常是https://你的域名-7860.web.gpu.csdn.net/用于手动测试和对话API服务http://127.0.0.1:8000这是我们今天要用的编程接口1.2 检查服务状态部署完成后先确认服务是否正常运行。打开终端执行# 查看服务状态 supervisorctl status你应该能看到类似这样的输出glm_vllm RUNNING pid 12345, uptime 0:05:30 glm_ui RUNNING pid 12346, uptime 0:05:30两个服务都显示“RUNNING”就表示一切正常。1.3 安装必要的Python库在你的Python环境中安装调用API所需的库pip install requests openai这里我们安装两个库requests用于发送HTTP请求openai虽然GLM-4.7-Flash不是OpenAI的模型但它的API兼容OpenAI格式我们可以用openai库来简化调用2. 基础概念快速入门在开始写代码之前我们先简单了解几个关键概念这样你就能明白代码在做什么。2.1 什么是OpenAI兼容APIOpenAI兼容API是一种标准化的接口设计。简单来说就是不同的AI模型都提供相同格式的API这样开发者写一次代码就能对接多个不同的模型。GLM-4.7-Flash就提供了这样的接口。它的API地址、请求格式、返回格式都和ChatGPT的API基本一致所以如果你之前用过ChatGPT的API现在用GLM-4.7-Flash会感觉非常熟悉。2.2 API调用的核心参数调用大模型API时有几个关键参数需要了解model指定使用哪个模型。对于GLM-4.7-Flash这个值是固定的messages对话消息列表包含用户的问题和模型的回答temperature控制回答的随机性。值越小回答越确定值越大越有创意max_tokens限制回答的最大长度stream是否使用流式输出。开启后可以实时看到生成过程2.3 邮件生成的基本思路用AI生成邮件其实就是一个“对话”过程你告诉AI“帮我写一封邮件内容是...”AI理解你的需求AI生成完整的邮件内容你拿到邮件稍作修改就能用我们今天的任务就是把这个过程用代码自动化。3. 分步实践从简单调用到智能邮件生成3.1 第一步最简单的API调用我们先从一个最简单的例子开始测试API是否能正常工作import requests # API地址 api_url http://127.0.0.1:8000/v1/chat/completions # 准备请求数据 data { model: /root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages: [ {role: user, content: 你好请介绍一下你自己} ], temperature: 0.7, max_tokens: 500 } # 发送请求 response requests.post(api_url, jsondata) # 解析响应 if response.status_code 200: result response.json() # 提取AI的回答 ai_response result[choices][0][message][content] print(AI的回答) print(ai_response) else: print(f请求失败状态码{response.status_code}) print(response.text)运行这段代码如果一切正常你会看到GLM-4.7-Flash的自我介绍。这说明API调用成功了3.2 第二步使用openai库简化调用虽然直接用requests库也能工作但使用openai库会让代码更简洁from openai import OpenAI # 初始化客户端指定GLM-4.7-Flash的API地址 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed # GLM-4.7-Flash不需要API密钥 ) # 调用模型 response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[ {role: user, content: 用一句话解释什么是人工智能} ], temperature0.7, max_tokens100 ) # 输出结果 print(AI的回答) print(response.choices[0].message.content)看到区别了吗使用openai库代码更接近官方ChatGPT API的写法可读性更好。3.3 第三步实现基础的邮件生成功能现在我们来写一个真正的邮件生成函数from openai import OpenAI def generate_simple_email(topic, recipient, sender): 生成简单的邮件 参数 topic: 邮件主题 recipient: 收件人 sender: 发件人 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) # 构建提示词 prompt f 请帮我写一封商务邮件。 邮件要求 1. 主题{topic} 2. 收件人{recipient} 3. 发件人{sender} 4. 语气专业、礼貌 5. 包含标准的邮件格式称呼、正文、结尾、签名 请直接生成完整的邮件内容。 try: response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[ {role: user, content: prompt} ], temperature0.7, max_tokens800 ) return response.choices[0].message.content except Exception as e: return f生成邮件时出错{str(e)} # 测试函数 if __name__ __main__: email generate_simple_email( topic项目进度汇报, recipient李经理, sender王小明 ) print(生成的邮件) print(email) print(- * 50)运行这个代码你会得到一封格式完整的邮件。不过这个版本还比较简单只能处理基本的邮件信息。3.4 第四步进阶版邮件生成器让我们来完善一下创建一个更强大的邮件生成器from openai import OpenAI from typing import Dict, List, Optional import json class SmartEmailGenerator: 智能邮件生成器 def __init__(self): 初始化客户端 self.client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) self.model /root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash def generate_email(self, email_type: str, recipient: str, sender: str, topic: str, key_points: List[str], tone: str 专业, language: str 中文, additional_notes: Optional[str] None) - Dict: 生成智能邮件 参数 email_type: 邮件类型汇报、邀请、感谢、咨询等 recipient: 收件人 sender: 发件人 topic: 邮件主题 key_points: 关键要点列表 tone: 语气风格 language: 语言 additional_notes: 额外说明 # 构建详细的提示词 prompt self._build_prompt( email_type, recipient, sender, topic, key_points, tone, language, additional_notes ) try: response self.client.chat.completions.create( modelself.model, messages[ {role: system, content: 你是一个专业的邮件写作助手擅长撰写各种类型的商务邮件。}, {role: user, content: prompt} ], temperature0.7, max_tokens1200 ) email_content response.choices[0].message.content return { success: True, email_content: email_content, model_used: self.model, token_usage: { prompt_tokens: response.usage.prompt_tokens if hasattr(response.usage, prompt_tokens) else 0, completion_tokens: response.usage.completion_tokens if hasattr(response.usage, completion_tokens) else 0, total_tokens: response.usage.total_tokens if hasattr(response.usage, total_tokens) else 0 } } except Exception as e: return { success: False, error: str(e), email_content: None } def _build_prompt(self, email_type: str, recipient: str, sender: str, topic: str, key_points: List[str], tone: str, language: str, additional_notes: Optional[str]) - str: 构建详细的提示词 prompt_parts [ f请帮我写一封{language}的{email_type}邮件。, , 【邮件基本信息】, f邮件类型{email_type}, f收件人{recipient}, f发件人{sender}, f邮件主题{topic}, f语气风格{tone}, , 【邮件要点】 ] # 添加关键要点 for i, point in enumerate(key_points, 1): prompt_parts.append(f{i}. {point}) prompt_parts.append() # 添加额外说明 if additional_notes: prompt_parts.append(【额外说明】) prompt_parts.append(additional_notes) prompt_parts.append() # 添加格式要求 prompt_parts.extend([ 【格式要求】, 1. 使用标准的邮件格式包括称呼、正文、结尾敬语、签名, 2. 正文段落清晰逻辑连贯, 3. 语言得体符合商务邮件的规范, 4. 根据邮件类型调整合适的表达方式, , 请直接生成完整的邮件内容不需要额外的解释。 ]) return \n.join(prompt_parts) def generate_multiple_versions(self, base_params: Dict, variations: List[Dict], num_versions: int 3) - List[Dict]: 生成多个版本的邮件 参数 base_params: 基础参数 variations: 变体参数列表 num_versions: 生成版本数量 results [] for i in range(min(num_versions, len(variations))): # 合并基础参数和变体参数 params base_params.copy() params.update(variations[i]) result self.generate_email(**params) result[version] i 1 results.append(result) return results # 使用示例 if __name__ __main__: # 创建邮件生成器实例 generator SmartEmailGenerator() # 基础参数 base_params { email_type: 项目进度汇报, recipient: 李经理, sender: 王小明, topic: 第三季度项目进展汇报, key_points: [ 项目目前按计划进行已完成总体进度的70%, 关键技术难题已解决进入测试阶段, 需要协调资源支持下周的集成测试, 预计下月底完成全部开发工作 ], tone: 专业且积极, language: 中文 } # 生成一个版本的邮件 print(生成单个邮件版本) result generator.generate_email(**base_params) if result[success]: print(邮件生成成功) print(\n生成的邮件内容) print(result[email_content]) print(f\n使用的tokens{result[token_usage][total_tokens]}) else: print(f生成失败{result[error]}) print(\n *50 \n) # 生成多个版本供选择 print(生成多个邮件版本供选择) variations [ {tone: 正式严谨, additional_notes: 需要包含具体的数据支持}, {tone: 简洁明了, additional_notes: 重点突出控制在300字以内}, {tone: 积极向上, additional_notes: 强调团队成果和未来展望} ] versions generator.generate_multiple_versions(base_params, variations) for i, version in enumerate(versions): if version[success]: print(f\n版本 {version[version]}{variations[i][tone]}) print(- * 30) print(version[email_content][:200] ...) # 只显示前200字符 print(fTokens: {version[token_usage][total_tokens]})这个进阶版的邮件生成器有几个实用的功能参数化配置可以灵活设置邮件类型、语气、语言等详细提示词给AI更明确的指导生成质量更高的邮件多版本生成一次生成多个不同风格的版本方便选择错误处理完善的异常处理避免程序崩溃使用统计显示消耗的tokens数量方便成本估算4. 实用技巧与进阶功能4.1 流式输出实时看到生成过程如果你想让用户实时看到邮件生成的过程可以使用流式输出def generate_email_with_streaming(email_params: Dict): 使用流式输出生成邮件 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) prompt f请写一封{email_params[language]}的{email_params[email_type]}邮件。 收件人{email_params[recipient]} 发件人{email_params[sender]} 主题{email_params[topic]} 要点{, .join(email_params[key_points])} 语气{email_params[tone]} 请生成完整的邮件内容 print(开始生成邮件...\n) # 创建流式请求 stream client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[{role: user, content: prompt}], temperature0.7, max_tokens800, streamTrue # 关键参数启用流式输出 ) full_response # 逐块接收并显示 for chunk in stream: if chunk.choices[0].delta.content is not None: content chunk.choices[0].delta.content print(content, end, flushTrue) full_response content print(\n\n邮件生成完成) return full_response # 使用示例 if __name__ __main__: params { email_type: 会议邀请, recipient: 张总, sender: 市场部 李华, topic: 关于新产品发布会的邀请, key_points: [新产品功能介绍, 发布会时间地点, 参会注意事项], tone: 正式邀请, language: 中文 } email_content generate_email_with_streaming(params)流式输出的好处是用户体验更好用户不用等待整个邮件生成完成就能看到内容。4.2 邮件模板系统对于经常需要发送的邮件类型可以建立模板系统class EmailTemplateSystem: 邮件模板系统 def __init__(self, generator): self.generator generator self.templates self._load_templates() def _load_templates(self): 加载预定义模板 return { progress_report: { name: 项目进度汇报, default_params: { email_type: 项目进度汇报, tone: 专业详细, language: 中文 }, prompt_template: 请根据以下信息生成项目进度汇报邮件 项目名称{project_name} 当前阶段{current_phase} 完成进度{progress_percentage}% 关键成果{key_achievements} 遇到的问题{issues} 下一步计划{next_steps} 需要支持{support_needed} 收件人{recipient} 发件人{sender} 请生成专业、详细的汇报邮件。 }, meeting_invitation: { name: 会议邀请, default_params: { email_type: 会议邀请, tone: 正式礼貌, language: 中文 }, prompt_template: 请生成会议邀请邮件 会议主题{meeting_topic} 会议时间{meeting_time} 会议地点{meeting_location} 参会人员{participants} 会议议程{agenda} 注意事项{notes} 收件人{recipient} 发件人{sender} 请生成正式、清晰的邀请邮件。 } } def generate_from_template(self, template_name: str, template_vars: Dict, custom_params: Dict None): 根据模板生成邮件 if template_name not in self.templates: return {success: False, error: f模板 {template_name} 不存在} template self.templates[template_name] # 合并参数 params template[default_params].copy() if custom_params: params.update(custom_params) # 渲染提示词 prompt template[prompt_template].format(**template_vars) # 调用生成器 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) try: response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[ {role: system, content: 你是一个专业的邮件写作助手。}, {role: user, content: prompt} ], temperature0.7, max_tokens1000 ) return { success: True, email_content: response.choices[0].message.content, template_used: template_name } except Exception as e: return {success: False, error: str(e)} # 使用示例 if __name__ __main__: # 创建生成器和模板系统 generator SmartEmailGenerator() template_system EmailTemplateSystem(generator) # 使用进度汇报模板 print(使用模板生成项目进度汇报邮件) template_vars { project_name: 智能客服系统升级, current_phase: 测试阶段, progress_percentage: 75, key_achievements: 核心功能开发完成性能测试通过, issues: 第三方接口响应较慢, next_steps: 完成集成测试准备上线, support_needed: 需要运维团队配合部署, recipient: 王总监, sender: 技术部 张明 } result template_system.generate_from_template( progress_report, template_vars, {topic: 智能客服系统项目进度汇报} ) if result[success]: print(f使用模板{result[template_used]}) print(\n生成的邮件) print(result[email_content])模板系统的优势是标准化确保同类邮件的格式和质量一致高效只需填写变量不用每次重新描述需求可维护模板集中管理修改方便4.3 批量生成与导出如果需要批量处理邮件可以这样实现import pandas as pd from datetime import datetime class BatchEmailProcessor: 批量邮件处理器 def __init__(self, generator): self.generator generator def process_from_csv(self, csv_file: str, output_file: str None): 从CSV文件批量生成邮件 # 读取CSV文件 df pd.read_csv(csv_file) results [] print(f开始处理 {len(df)} 封邮件...) for index, row in df.iterrows(): print(f正在生成第 {index 1} 封邮件...) # 构建参数 params { email_type: row.get(email_type, 通用邮件), recipient: row.get(recipient, ), sender: row.get(sender, ), topic: row.get(topic, ), key_points: str(row.get(key_points, )).split(;), tone: row.get(tone, 专业), language: row.get(language, 中文), additional_notes: row.get(additional_notes, ) } # 生成邮件 result self.generator.generate_email(**params) if result[success]: results.append({ 序号: index 1, 收件人: params[recipient], 主题: params[topic], 邮件内容: result[email_content], 生成时间: datetime.now().strftime(%Y-%m-%d %H:%M:%S), 状态: 成功, 使用tokens: result[token_usage][total_tokens] }) print(f ✓ 第 {index 1} 封邮件生成成功) else: results.append({ 序号: index 1, 收件人: params[recipient], 主题: params[topic], 邮件内容: f生成失败{result[error]}, 生成时间: datetime.now().strftime(%Y-%m-%d %H:%M:%S), 状态: 失败, 使用tokens: 0 }) print(f ✗ 第 {index 1} 封邮件生成失败{result[error]}) # 保存结果 result_df pd.DataFrame(results) if output_file: result_df.to_csv(output_file, indexFalse, encodingutf-8-sig) print(f\n结果已保存到{output_file}) # 生成统计信息 success_count len([r for r in results if r[状态] 成功]) total_tokens sum([r[使用tokens] for r in results]) print(f\n批量处理完成) print(f成功{success_count}/{len(df)}) print(f失败{len(df) - success_count}/{len(df)}) print(f总tokens消耗{total_tokens}) return result_df # 使用示例需要准备CSV文件 if __name__ __main__: # 示例创建测试CSV文件 test_data { email_type: [项目汇报, 会议邀请, 感谢信], recipient: [李经理, 张总, 王老师], sender: [王小明, 市场部, 学生 张三], topic: [项目进展, 产品研讨会, 感谢指导], key_points: [进度正常;需要资源, 时间地点;议程, 受益匪浅;感谢帮助], tone: [专业, 正式, 真诚], language: [中文, 中文, 中文] } # 保存为CSV test_df pd.DataFrame(test_data) test_df.to_csv(test_emails.csv, indexFalse) print(测试CSV文件已创建test_emails.csv) # 批量处理 generator SmartEmailGenerator() processor BatchEmailProcessor(generator) # 实际使用时取消注释下面这行 # results processor.process_from_csv(test_emails.csv, output_emails.csv)批量处理功能适合需要大量生成邮件的场景比如定期给客户发送更新邮件给团队成员发送周报活动邀请函批量发送5. 常见问题解答5.1 API调用失败怎么办如果API调用失败可以按以下步骤排查import requests def test_api_connection(): 测试API连接 test_url http://127.0.0.1:8000/v1/models try: response requests.get(test_url, timeout10) if response.status_code 200: print(✓ API连接正常) print(f可用模型{response.json()}) return True else: print(f✗ API返回错误{response.status_code}) print(f错误信息{response.text}) return False except requests.exceptions.ConnectionError: print(✗ 无法连接到API服务器) print(请检查) print(1. GLM-4.7-Flash服务是否已启动) print(2. 端口8000是否可访问) print(3. 防火墙设置是否正确) return False except Exception as e: print(f✗ 连接测试失败{str(e)}) return False # 运行测试 if __name__ __main__: test_api_connection()5.2 生成的邮件质量不高怎么办如果生成的邮件质量不理想可以尝试以下方法优化提示词给AI更明确的指导调整temperature参数降低值让回答更确定提高值让回答更有创意提供示例在提示词中给出好的邮件示例分步生成先让AI列出大纲再生成详细内容def generate_email_with_outline(email_params): 分步生成先大纲后内容 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) # 第一步生成大纲 outline_prompt f请为以下邮件生成详细大纲 邮件类型{email_params[email_type]} 收件人{email_params[recipient]} 发件人{email_params[sender]} 主题{email_params[topic]} 关键要点{, .join(email_params[key_points])} 请提供包含以下部分的大纲 1. 称呼 2. 开头寒暄 3. 正文分点说明 4. 结尾总结 5. 结束语和签名 # 生成大纲 outline_response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[{role: user, content: outline_prompt}], temperature0.3, # 低temperature确保大纲稳定 max_tokens300 ) outline outline_response.choices[0].message.content print(生成的大纲) print(outline) print(\n *50 \n) # 第二步根据大纲生成完整邮件 content_prompt f请根据以下大纲生成完整的邮件 {outline} 邮件要求 - 语气{email_params[tone]} - 语言{email_params[language]} - 格式规范符合商务邮件标准 请生成完整的邮件内容 # 生成完整邮件 content_response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[{role: user, content: content_prompt}], temperature0.7, max_tokens800 ) return content_response.choices[0].message.content # 使用示例 if __name__ __main__: params { email_type: 项目提案, recipient: 投资方 张总, sender: 创业团队 李明, topic: 智能办公系统项目提案, key_points: [市场前景广阔, 技术方案成熟, 团队经验丰富, 预期回报率高], tone: 专业且有说服力, language: 中文 } email generate_email_with_outline(params) print(生成的完整邮件) print(email)5.3 如何控制生成邮件的长度可以通过以下方式控制邮件长度设置max_tokens参数限制生成的最大token数在提示词中指定字数明确要求AI控制字数后处理截断生成后再进行截断def generate_email_with_length_control(email_params, max_words300): 控制邮件长度 client OpenAI( base_urlhttp://127.0.0.1:8000/v1, api_keynot-needed ) prompt f请写一封{email_params[language]}的{email_params[email_type]}邮件。 收件人{email_params[recipient]} 发件人{email_params[sender]} 主题{email_params[topic]} 要点{, .join(email_params[key_points])} 语气{email_params[tone]} 重要要求邮件总字数请控制在{max_words}字以内。 请生成完整的邮件内容 # 根据字数估算tokens中文大致1字2tokens max_tokens max_words * 2 100 # 加一些缓冲 response client.chat.completions.create( model/root/.cache/huggingface/ZhipuAI/GLM-4.7-Flash, messages[{role: user, content: prompt}], temperature0.7, max_tokensmin(max_tokens, 2000) # 不超过模型限制 ) return response.choices[0].message.content6. 总结通过今天的分享你应该已经掌握了如何使用Python调用GLM-4.7-Flash的OpenAI兼容API来实现智能邮件生成。我们来回顾一下关键点核心收获快速部署GLM-4.7-Flash镜像开箱即用提供了标准的OpenAI兼容API简单调用使用openai库几行代码就能调用强大的AI模型灵活定制通过调整提示词和参数可以生成各种类型的邮件高级功能支持流式输出、模板系统、批量处理等实用功能实际价值提升效率原本需要10分钟写的邮件现在几秒钟就能生成保证质量AI生成的邮件格式规范、语气得体灵活定制可以根据需要调整邮件的风格和内容易于集成可以轻松集成到现有的工作流程中下一步建议尝试不同的邮件类型除了商务邮件还可以试试生成邀请函、感谢信、通知等优化提示词根据实际效果调整提示词让生成的邮件更符合你的需求集成到实际工作流把邮件生成功能集成到你的日常工作中比如连接Outlook或企业微信探索更多应用同样的技术也可以用于生成报告、文档、文案等内容GLM-4.7-Flash的强大之处在于它的速度和易用性。相比其他大模型它的响应速度更快API兼容性更好特别适合需要实时交互的应用场景。记住AI是工具不是替代品。它生成的邮件可以作为初稿你还需要根据实际情况进行调整和润色。但随着你不断优化提示词和使用方法AI会越来越懂你的需求生成的邮件也会越来越符合你的期望。现在你可以开始用这个工具提升你的邮件写作效率了。从简单的测试开始逐步应用到实际工作中你会发现AI助手能为你节省大量时间让你更专注于真正重要的工作。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。