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

相关推荐
子墨77731 分钟前
Flask之Hello world 详解
python
繁依Fanyi33 分钟前
旅游心动盲盒:开启个性化旅行新体验
java·服务器·python·算法·eclipse·tomcat·旅游
计算机编程-吉哥38 分钟前
计算机毕业设计 基于Python的个性化旅游线路推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·课程设计·毕业论文·计算机毕业设计选题·个性化旅游线路推荐系统
罔闻_spider43 分钟前
爬虫prc技术----小红书爬取解决xs
爬虫·python·算法·机器学习·自然语言处理·中文分词
python机器学习ML1 小时前
机器学习K近邻算法——python详细代码解析(sklearn)(1)
python·机器学习·近邻算法·knn
DanCheng-studio1 小时前
毕设 大数据抖音短视频数据分析与可视化(源码)
python·毕业设计·毕设
易辰君2 小时前
python爬虫 - 深入requests模块
开发语言·爬虫·python
人工智障调包侠2 小时前
基于深度学习多层感知机进行手机价格预测
人工智能·python·深度学习·机器学习·数据分析
计算机编程-吉哥3 小时前
计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·计算机毕业论文·计算机毕业设计选题·软件工程毕业设计论文·文献管理系统
笃励3 小时前
Java面试题二
java·开发语言·python