• RAG下的prompt编写探索


    针对特定领域的回答,编写抽象的prompt需要在细节和灵活性之间找到平衡。我们需要一个既能涵盖普遍步骤又能适应不同问题的框架。以下是如何在这种情况下编写抽象prompt的方法,以及适用于各种技术领域的通用策略。

    一、编写抽象Prompt的通用策略

    1. 定义用户问题和背景信息

      • 明确用户输入({user_input})和背景信息({retrieved_docs})的角色。
      • 背景信息可以包括一组相关的知识点、数据或文档片段。
    2. 结构化回答的指令

      • 提供一个高层次的回答框架,指导生成模型如何组织回答。
      • 指示如何整合背景信息以形成连贯的答案。
    3. 保持回答的逻辑性和严谨性

      • 要求生成模型保持逻辑的连贯性和技术内容的严谨性。
      • 避免过于模糊或不确定的表述。
    4. 灵活适应不同问题

      • prompt应该足够通用,以适应不同但相关的技术问题。
      • 保持开放性,使生成模型能够在多种上下文中应用相同的结构。

    示例:抽象Prompt的编写方法

    范例 1:针对编程技术问题

    用户输入
    “如何优化Python代码的性能?”

    检索到的背景信息

    1. “使用内置的数据结构(如列表、集合和字典)可以显著提高性能。”
    2. “避免在循环内重复计算,尽可能将常量或不变的计算移出循环。”
    3. “利用Python的并行处理库,如multiprocessingconcurrent.futures,可以提高CPU密集型任务的性能。”

    抽象Prompt示例

    用户问题:{user_input}
    
    相关背景信息:
    1. {retrieved_docs[0]}
    2. {retrieved_docs[1]}
    3. {retrieved_docs[2]}
    
    请按照以下指令生成回答:
    
    1. 从整体上总结用户问题涉及的主要领域或概念。
    2. 利用提供的背景信息,详细描述一系列步骤或方法来解决或回答用户的问题。
    3. 解释每个方法或步骤的重要性,如何应用以及在什么情况下最有效。
    4. 最后,提供关于如何进一步优化或改进的建议。
    
    请生成对以下问题的回答:
    “{user_input}”
    

    最终Prompt

    用户问题:如何优化Python代码的性能?
    
    相关背景信息:
    1. 使用内置的数据结构(如列表、集合和字典)可以显著提高性能。
    2. 避免在循环内重复计算,尽可能将常量或不变的计算移出循环。
    3. 利用Python的并行处理库,如`multiprocessing`或`concurrent.futures`,可以提高CPU密集型任务的性能。
    
    请按照以下指令生成回答:
    
    1. 从整体上总结用户问题涉及的主要领域或概念。
    2. 利用提供的背景信息,详细描述一系列步骤或方法来解决或回答用户的问题。
    3. 解释每个方法或步骤的重要性,如何应用以及在什么情况下最有效。
    4. 最后,提供关于如何进一步优化或改进的建议。
    
    请生成对以下问题的回答:
    “如何优化Python代码的性能?”
    

    在这个示例中,prompt提供了一个通用的结构,指导生成模型如何总结和整合背景信息来回答用户问题。即使背景信息和用户问题的具体内容不同,这个框架仍然适用。<

  • 相关阅读:
    蓝桥杯实战应用【算法代码篇】-二分查找的递归解法(附python、Java、C语言、R语言和C++代码)
    正则表达式元字符
    JS原型链
    看起来是线程池的BUG,但是我认为是源码设计不合理。
    SQL Server 2016(分离和附加数据库)
    Android shell 常用 debug 命令
    vue+element模仿电商商城,前后端分离实现,下单微信扫码支付
    kubernetes部署dashboard
    查字符串或者查对象值去重
    HMS Core助力宝宝巴士为全球开发者展现高品质儿童数字内容
  • 原文地址:https://blog.csdn.net/pumpkin84514/article/details/139710678