langchian入门二:prompts提示词的使用,你的LLM说话怎么这么⑥!

什么是prompts

在大语言模型(LLM)中,Prompt指的是模型生成内容时所需要的输入,它可以包含模型生成内容时所需要的背景知识、用户期望模型执行的指令、模型输出需要遵循的格式等。

为什么要用prompts

在我们平常使用大语言模型进行问答时,他回答的内容往往就是他默认的回答格式首先,然后,最后这种,例如想要让大语言模型回答时在开头添加固定开场白,或是结尾添加固定结束词,又或是让他只回答某一方面的问题,跟这个方面不相关的问题不回答等效果,就需要使用prompts来提示或者限制大语言模型的回答内容,特定的回答风格,或者是将大模型水平范围回答限制到垂直范围(回答内容准确性可能不高,高准确性使用外挂数据库更好).

提示词的组成

从图中可以看出,提示词主要由一个任务描述,一个输入文本,输出指示组成.他们会一同发送给大语言模型,而大语言模型就会根据提示词进行回答.

提示词公式=角色+角色技能+任务关键词+任务目标+任务背景+任务范围+任务结果判定+限制条件+输出格式+输出量

langchian中的提示词

langchian提供了几个提示词模板,可以自定义提示词模板

python 复制代码
from langchain.prompts import (
    ChatPromptTemplate,
    PromptTemplate,
    SystemMessagePromptTemplate,
    AIMessagePromptTemplate,
    HumanMessagePromptTemplate,
)
from langchain.schema import (
    AIMessage,
    HumanMessage,
    SystemMessage
)

用聊天消息作为输入,每条消息都与一个角色有关,是一个消息列表。
SystemMessagePromptTemplate, AIMessagePromptTemplate, HumanMessagePromptTemplate 是分别用于创建不同角色提示词的模板。

LangChain提供了几个对象,区分不同角色

  • HumanMessage:来自人类/用户的ChatMessage
  • AIMessage:来自AI/助手的ChatMessage
  • SystemMessage:来自系统的ChatMessage
  • FunctionMessage:来自函数调用的ChatMessage
    可以使用ChatMessage类手动指定角色

有兴趣的可以查看官方文档的详细使用.

最简单的提示词示例

python 复制代码
import os
from dotenv import find_dotenv, load_dotenv
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY=os.environ["DASHSCOPE_API_KEY"]
from langchain_community.llms import Tongyi
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
   
llm=Tongyi(temperature=1)
template='''
        你是一个不耐烦的老奶奶,非常不愿意回答问题,请你不耐烦的回答:{question}
    '''
prompt=PromptTemplate(
        template=template,
        input_variables=["question"]
)
chain = LLMChain(
        llm=llm,
        prompt=prompt
        )
question='什么是人工智能?'

res=chain.invoke(question)
print("无prompt--->\n",llm.invoke(question),"\n")
print("有prompt--->\n",res['text'])

这里使用的是阿里云的通义千问,还不会的可以看上一篇

传送门:langchain入门一:python+langchain+通义千问,白嫖qwen大模型实现自己的聊天机器人 - 掘金 (juejin.cn)

看看效果:

修改一下prompt的内容

python 复制代码
template='''
        你是一个温柔的成熟姐姐,回答问题就会感到愉快并发出呵呵呵的笑声,你会温柔的回答:{question}
    '''

看看效果:

总结

prompt是一个对大语言模型回答进行提示或是限制的主要内容,提示词对大语言模型的作用力度与大语言模型的智慧程度有关,程度越高,提示词的效果就会越好.

参考资料:LangChain

相关推荐
jaray31 分钟前
PyCharm 2024.3.2 Professional 如何更换 PyPI 镜像源
ide·python·pycharm·pypi 镜像源
Psycho_MrZhang34 分钟前
Neo4j Python SDK手册
开发语言·python·neo4j
web3.08889991 小时前
1688图片搜索API,相似商品精准推荐
开发语言·python
少云清1 小时前
【性能测试】15_JMeter _JMeter插件安装使用
开发语言·python·jmeter
光羽隹衡1 小时前
机器学习——TF-IDF实战(红楼梦数据处理)
python·tf-idf
2401_894828123 小时前
从原理到实战:随机森林算法全解析(附 Python 完整代码)
开发语言·python·算法·随机森林
B站计算机毕业设计超人3 小时前
计算机毕业设计Python知识图谱中华古诗词可视化 古诗词情感分析 古诗词智能问答系统 AI大模型自动写诗 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·人工智能·hadoop·python·机器学习·知识图谱·课程设计
玄同7653 小时前
Python「焚诀」:吞噬所有语法糖的终极修炼手册
开发语言·数据库·人工智能·python·postgresql·自然语言处理·nlp
johnny2333 小时前
Python管理工具:包、版本、环境
python
羽翼.玫瑰3 小时前
关于重装Python失败(本质是未彻底卸载Python)的问题解决方案综述
开发语言·python