Day7:本周复盘与 Prompt 综合练习:巩固 AI Agent 学习成果

摘要:在 AI Agent 的学习旅程中,定期复盘和强化实践至关重要。本文围绕 Day7 的学习任务展开,通过复盘本周在大模型 API、参数以及提示工程技巧方面的学习内容,整理实用的 Prompt 模板库,并创建一个 “Prompt 生成器” 来综合提升 Prompt 编写能力。这不仅有助于巩固所学知识,还能为实际应用提供更高效的支持。

一、引言

经过一周的学习,我们对大语言模型的使用有了更深入的理解。今天,我们将对本周所学进行全面复盘,并通过实际操作进一步提升我们在 Prompt 编写方面的技能。这将帮助我们更好地掌握大语言模型的应用,为未来更复杂的任务做好准备。

二、核心任务:本周学习内容复盘与 Prompt 模板库整理

(一)本周学习内容复盘

  1. 大模型 API

    • 学习了如何调用不同大模型(如通义千问等)的 API,包括构建请求、设置 API 密钥、处理响应等基本操作。通过实际代码示例,理解了与模型进行交互的流程,例如使用requests库发送 HTTP 请求获取模型的回答。

    • 了解到不同模型的 API 在请求格式、参数设置等方面可能存在差异,需要根据具体模型的文档进行调整。

  2. 大模型参数

    • 研究了影响模型输出的关键参数,如temperature(温度参数),它控制输出的随机性,值越高输出越随机多样,值越低越保守和确定;top_p(核采样参数)通过选择累计概率超过一定阈值的词来生成文本,与temperature共同影响生成文本的多样性和合理性。

    • 理解了调整这些参数可以根据不同的任务需求优化模型的输出,比如在创意写作任务中,适当提高temperature以获得更具创意的内容;在需要精确答案的任务中,降低temperature使答案更稳定。

  3. 提示工程技巧

    • 角色设定:学会为模型赋予特定身份,使其从该角色的视角、知识储备和语言风格进行回答。例如设定为 “资深 Python 工程师” 回答 Python 代码相关问题,设定为 “客服专员” 处理用户咨询,让模型的回答更贴合特定场景需求。

    • 少样本学习:通过向模型提供 1 - 2 个示例,引导模型依据示例的模式、风格或逻辑完成任务。如在文本分类任务中,提供积极和消极情感分类的示例,让模型对新文本进行类似分类;在故事续写中,依据给定的示例风格续写新故事。

    • 思维链(CoT):使模型能够分步推理,通过引导模型先分析问题、列出步骤再得出答案,增强回答的逻辑性和可解释性。例如在数学问题或逻辑推理问题中,模型按照这种方式逐步推导,给出清晰的解题思路。

    • 结构化输出:引导模型以特定的结构化格式(如 JSON)返回结果,方便将模型输出集成到其他系统或进行进一步数据处理。比如要求模型以 JSON 格式返回用户信息、任务规划等内容。

(二)Prompt 模板库整理

  1. 角色设定模板

    你现在是[角色名称],请回答以下问题:[具体问题]
    

    示例:

    你现在是“专业美食评论家”,请评价一下四川火锅的特色:
    
  2. 少样本学习模板

    示例1:[示例1内容] - [示例1结果]
    示例2:[示例2内容] - [示例2结果]
    请根据以上示例处理以下内容:[新内容]
    

    示例:

    示例1:“这部电影情节紧凑,特效精彩。” - 积极
    示例2:“这本书内容空洞,逻辑混乱。” - 消极
    请根据以上示例判断以下文本的情感倾向:“这个餐厅的服务非常周到,菜品也很美味。”
    
  3. 思维链(CoT)模板

    请按照以下步骤回答这个问题:首先,分析题目中所涉及的[问题类型,如数量关系、逻辑关系等];然后,列出[解题、推理等]步骤;最后,得出答案。问题是:[具体问题]
    

    示例:

    请按照以下步骤回答这个数学问题:首先,分析题目中所涉及的数量关系;然后,列出计算步骤;最后,得出答案。问题是:一个班级有30名学生,男生占总人数的40%,问女生有多少人?
    
  4. 结构化输出模板

请以[结构化格式,如JSON]返回[具体内容,如用户信息、任务规划等]。[具体要求,如姓名、年龄、职业等信息]

示例:

请以JSON格式返回一个用户的信息,包含姓名、年龄和职业。姓名设定为‘张三’,年龄28岁,职业是‘软件工程师’。

三、补充任务:“Prompt 生成器” 编写

(一)设计思路

我们将创建一个简单的 “Prompt 生成器”,根据用户输入的任务类型,自动生成对应的高质量 Prompt。使用 Python 的if - else语句或字典映射来实现不同任务类型到相应 Prompt 模板的映射。用户输入任务类型后,程序根据预设的规则生成 Prompt 并输出。

(二)代码实现

def generate_prompt(task_type):
    if task_type == '代码讲解':
        prompt = "你现在是‘资深程序员’,请对以下代码进行讲解:[在这里粘贴代码]"
    elif task_type == '文案撰写':
        prompt = "你现在是‘专业文案撰写人’,请撰写一篇关于[具体主题,例如产品推广、活动宣传等]的文案,要求[具体要求,如字数、风格等]"
    elif task_type == '文本分类':
        prompt = "示例1:[示例1内容] - [示例1类别] \n示例2:[示例2内容] - [示例2类别] \n请根据以上示例对以下文本进行分类:[待分类文本]"
    elif task_type == '数学问题解答':
        prompt = "请按照以下步骤回答这个数学问题:首先,分析题目中所涉及的数量关系;然后,列出计算步骤;最后,得出答案。问题是:[具体数学问题]"
    elif task_type == '用户信息结构化输出':
        prompt = "请以JSON格式返回一个用户的信息,包含姓名、年龄和职业。姓名设定为‘[姓名]’,年龄[年龄]岁,职业是‘[职业]’"
    else:
        prompt = "暂不支持该任务类型"
    return prompt


# 用户交互部分
task_type = input("请输入任务类型(如代码讲解、文案撰写、文本分类、数学问题解答、用户信息结构化输出等):")
generated_prompt = generate_prompt(task_type)
print("生成的Prompt如下:\n", generated_prompt)

四、总结

通过今天的学习,我们对本周在大模型 API、参数以及提示工程技巧方面的知识进行了系统复盘,并整理了实用的 Prompt 模板库。同时,成功编写了一个 “Prompt 生成器”,这将有助于我们在未来更快速、准确地生成适合不同任务的 Prompt。

在实际应用中,我们可以根据具体任务的需求,灵活运用这些 Prompt 模板和生成器,进一步提升与大语言模型的交互效果。记得将本周知识点笔记以及 “Prompt 生成器” 代码整理保存。在后续的学习和实践中,如果遇到问题,可以回顾本周所学内容,或者查阅相关资料,不断优化我们对大语言模型的使用。

希望大家通过本周的学习,在 AI Agent 的学习道路上迈出坚实的一步,能够更加熟练地运用大语言模型解决各种实际问题。

下周我们将开启Function Call和实现第一个第一个ReAct Agent。敬请期待!!!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐