青训营X豆包MarsCode 技术训练营第二课 | 豆包MarsCode AI 刷题

60 阅读2分钟

提示工程

一、做好提示工程的六大策略

1. 写清晰的指示

2. 给模型提供参考(也就是示例)

3. 将复杂任务拆分成子任务

4. 给GPT时间思考

5. 使用外部工具

6. 反复迭代问题

二、提示框架

(非常喜欢记纸质版笔记,这次学习记了很多笔记,字丑勿喷啦)

图片.png  

    指令(Instuction)--告诉模型这个任务大概要做什么、怎么做,比如如何使用提供的外部信息、如何处理查询以及如何构造输出。这通常是一个提示模板中比较固定的部分。一个常见用例是告诉模型“你是一个有用的XX助手”,这会让他更认真地对待自己的角色。

    上下文(Context)--则充当模型的额外知识来源。这些信息可以手动插入到提示中,通过矢量数据库检索得来,或通过其他方式(如调用API、计算器等工具)拉入。一个常见的用例时是把从向量数据库查询到的知识作为上下文传递给模型。

    提示输入(Prompt Input)--通常就是具体的问题或者需要大模型做的具体事情,这个部分和“指令”部分其实也可以合二为一。但是拆分出来成为一个独立的组件,就更加结构化,便于复用模板。这通常是作为变量,在调用模型之前传递给提示模板,以形成具体的提示。

    输出指示器(Output Indicator)--标记要生成的文本的开始。这就像我们小时候的数学考卷,先写一个“解”,就代表你要开始答题了。如果生成 Python 代码,可以使用 “import” 向模型表明它必须开始编写 Python 代码(因为大多数 Python 脚本以import开头)。这部分在我们和ChatGPT对话时往往是可有可无的,当然LangChain中的代理在构建提示模板时,经常性的会用一个“Thought:”(思考)作为引导词,指示模型开始输出自己的推理(Reasoning)。

 

三、langchain提供的提示模板类型

图片.png

导入方式:

 

from langchain.prompts.prompt import PromptTemplate

from langchain.prompts import FewShotPromptTemplate

from langchain.prompts import ChatPromptTemplate

from langchain.prompts.pipeline import PipelinePromptTemplate

from langchain.prompts import (

    ChatMessagePromptTemplate,

    SystemMessagePromptTemplate,

    AIMessagePromptTemplate,

    HumanMessagePromptTemplate,

)

四、思维链和思维树

图片.png

(非常喜欢的一张图,很直观地体现了四者之间的差异,与我平时用ai软件的方式不谋而合哈哈哈哈,教ai做一遍,再告诉它特殊情况的处理方式,最后它就可以很好地完成任务啦)