做网站 杭州,wordpress 在线教育 模板,乐从容桂网站建设,企业做网站的必要性你是不是也有过这样的经历#xff1a;同样是问大模型“怎么学AI测试”#xff0c;有时候回答冗长又空泛#xff0c;有时候却简洁又有干货#xff1f;有时候追问问题#xff0c;大模型还会“答非所问”#xff0c;完全忘了上一轮说过什么#xff1f;其实#xff0c;这背…你是不是也有过这样的经历同样是问大模型“怎么学AI测试”有时候回答冗长又空泛有时候却简洁又有干货有时候追问问题大模型还会“答非所问”完全忘了上一轮说过什么其实这背后的关键就在于你是否掌握了大模型对话中System、User、Assistant这三个核心角色的用法。这三个角色看似简单却直接决定了大模型的回答质量和对话效率。今天我们就以AI测试学习场景为例结合实际代码案例彻底讲透这三个角色的区别与使用技巧。一、先搞懂三个角色到底是什么在大模型的对话体系中System、User、Assistant就像一场对话的“三角主角”各自有着明确的分工缺一不可。我们先来看一段基础的代码结构直观感受三个角色在代码中的体现import os from dotenv import load_dotenv from openai import OpenAI # 初始化客户端以DeepSeek为例可替换为其他大模型 load_dotenv() client OpenAI( api_keyos.getenv(API_KEY), base_urlos.getenv(BASE_URL, https://api.deepseek.com/v1) ) # 对话消息列表承载三个角色的交互 messages [ {role: system, content: 你是有5年经验的AI测试专家回答简洁且有技术干货}, {role: user, content: 零基础怎么学AI测试}, # {role: assistant, content: 大模型生成的回复会被放在这里用于多轮对话承接} ] # 调用大模型接口 response client.chat.completions.create( modelos.getenv(MODEL, deepseek-chat), messagesmessages, streamFalse ) # 输出助手的回复 print(response.choices[0].message.content)从代码中能清晰看到三个角色以字典的形式被放入messages列表作为大模型的输入。接下来我们逐一拆解每个角色的核心作用1. System大模型的“人设与规则制定者”System角色相当于给大模型设定了“隐形指令”——它决定了大模型以什么身份、什么风格、什么规则来回答问题。它不直接参与对话交互但却是全局的“幕后指挥”。在代码中它是messages里第一个字典项比如我们设定{role: system, content: 你是有5年经验的AI测试专家回答简洁且有技术干货不超过50字。}有了这个设定大模型就不会再用泛泛的语言敷衍你而是严格遵守“AI测试专家简洁50字以内”的约束。2. User对话的“发起者与提问者”User角色就是我们自己是问题的提出者、指令的下达者也是对话的推动者。我们的每一个问题、每一次追问都是给大模型的输入信号。在代码中它是messages里代表用户的字典项比如{role: user, content: 零基础怎么学AI测试} {role: user, content: 推荐哪些AI测试工具}这些都是User角色的核心作用——明确对话的话题和方向。3. Assistant对话的“响应者与上下文承接者”Assistant角色是大模型的化身它的核心任务是根据System的设定和User的问题生成符合要求的回答并且在多轮对话中承接上下文。在代码中它是大模型返回的结果我们会把它再放入messages列表用于下一轮对话# 把助手的回复加入消息列表用于上下文承接 messages.append({role: assistant, content: response.choices[0].message.content}) # 新增用户的追问 messages.append({role: user, content: 第3点怎么学})简单来说它是执行层既要遵守System定的“规矩”又要回应User提的“问题”还得记住自己上一轮说了什么避免“失忆”。二、实战对比不同角色搭配效果天差地别光说理论太抽象我们以AI测试学习的问题为例结合代码案例看看不同角色搭配的效果。案例1没有System约束回答有多“随意”代码实现messages [ # 去掉System角色仅保留User提问 {role: user, content: AI测试最该学啥} ] response client.chat.completions.create( modelos.getenv(MODEL, deepseek-chat), messagesmessages, streamFalse ) print(无System约束的回答, response.choices[0].message.content)效果展示大模型的回答可能是这样的“学习AI测试需要掌握的内容很多首先要懂编程语言比如Python然后要掌握测试框架如pytest、unittest还有AI相关的工具和算法基础另外还要了解软件测试的基本流程包括单元测试、集成测试等最后还需要实操项目来积累经验……”冗长、没有重点完全达不到我们想要的效果。案例2加上System约束回答立刻“精准”代码实现messages [ # 新增System角色约束 {role: system, content: 你是严谨的AI测试技术导师回答不超过30字。}, {role: user, content: AI测试最该学啥} ] response client.chat.completions.create( modelos.getenv(MODEL, deepseek-chat), messagesmessages, streamFalse ) print(有System约束的回答, response.choices[0].message.content)效果展示大模型的回答会变成“先学Python基础再掌握测试框架与AI工具应用。”简洁、有重点完美符合我们的要求——这就是System角色的魔力。案例3多轮对话中Assistant的“上下文承接力”有多重要这是最能体现角色配合的场景我们来看完整的代码和对话流程代码实现messages [ {role: system, content: 你是AI测试专家回答简洁且有步骤。}, {role: user, content: 零基础怎么学AI测试}, ] # 第一轮对话助手生成初始回答 response client.chat.completions.create( modelos.getenv(MODEL, deepseek-chat), messagesmessages, streamFalse ) assistant_reply response.choices[0].message.content # 将助手的回复加入消息列表用于上下文承接 messages.append({role: assistant, content: assistant_reply}) print(助手第一轮回复, assistant_reply) # 第二轮对话用户追问助手承接上下文 messages.append({role: user, content: 第3点怎么学}) response client.chat.completions.create( modelos.getenv(MODEL, deepseek-chat), messagesmessages, streamFalse ) print(助手第二轮回复, response.choices[0].message.content)效果展示助手第一轮回复“1.学Python基础2.掌握测试框架3.学AI工具应用。”助手第二轮回复“从AI用例生成工具入手再学AI自动化测试平台实操。”可以看到因为我们把Assistant的历史回复加入了messages列表大模型记住了自己上一轮提到的“3个步骤”当用户追问“第3点怎么学”时没有偏离话题而是精准承接并展开——这就是Assistant角色的核心价值也是多轮对话不“翻车”的关键。三、实用技巧用好三个角色的核心要点结合代码案例和实战效果我们总结出几个核心技巧帮你快速上手1. System角色越具体效果越好不要只写“你是专家”要把身份、风格、规则都写清楚。在代码中就是把content写得更详细❌ 错误示范{role: system, content: 你是AI测试专家。}✅ 正确示范{role: system, content: 你是有5年AI测试经验的工程师回答分点且每点不超过20字仅推荐免费工具。}越具体的System指令大模型的回答越贴合你的需求。2. User角色问题要明确避免模糊不要问“怎么学AI测试”可以问“零基础学AI测试推荐3个核心学习步骤”。在代码中就是让User的content更精准❌ 错误示范{role: user, content: 怎么学AI测试}✅ 正确示范{role: user, content: 零基础学AI测试推荐3个核心学习步骤每个步骤不超过15字。}明确的问题能让大模型的回答更有针对性减少无效信息。3. Assistant角色善用历史回复强化上下文在多轮对话中messages一定要把Assistant的历史回复加入列表就像案例3中的代码那样。这样大模型才不会“失忆”才能精准承接你的追问。四、最后总结三个角色的核心逻辑其实用好System、User、Assistant这三个角色本质上是掌握了与大模型“有效沟通的逻辑”而代码则是将这个逻辑落地的工具System决定“大模型以什么姿态说话”是代码中messages的初始约束User决定“大模型说什么话题”是代码中推动对话的输入Assistant决定“大模型怎么回应并延续对话”是代码中需要被保留的上下文。无论是学习AI测试、写代码、做方案还是日常使用大模型只要掌握了这个逻辑就能让大模型从“答非所问的工具”变成“精准高效的助手”。下次再用大模型时不妨试试给它设定清晰的System角色提出明确的User问题再把Assistant的回复保留下来承接对话看看会不会给你惊喜