• 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提供了一个通用的结构,指导生成模型如何总结和整合背景信息来回答用户问题。即使背景信息和用户问题的具体内容不同,这个框架仍然适用。<

  • 相关阅读:
    CSS - 进阶提升篇
    算法导论第一章——算法在计算中的应用
    SpringBoot青海省旅游系统
    汽车驾驶3D模拟仿真展示系统更立体直观
    ROS学习(27)有限状态机SMACH
    在https页面,通过iframe实现http跨域访问(解决iframe页面点击浏览器刷新按钮后返回首页问题)
    请问各位关于virtual.lab的问题
    Linux单节点安装K8S和kubesphere 已验证安装成功
    【C++面向对象侯捷】10.扩展补充:类模板,函数模板,及其他
    ubuntu 手动清理内存cache
  • 原文地址:https://blog.csdn.net/pumpkin84514/article/details/139710678