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

相关推荐
sinat_6020353613 分钟前
模块与包的导入
运维·服务器·开发语言·python
计算机学姐13 分钟前
基于Python的旅游数据分析可视化系统【2026最新】
vue.js·后端·python·数据分析·django·flask·旅游
恋雨QAQ14 分钟前
python函数和面向对象
开发语言·python
天雪浪子32 分钟前
Python入门教程之逻辑运算符
开发语言·python
张子夜 iiii1 小时前
实战项目-----在图片 hua.png 中,用红色画出花的外部轮廓,用绿色画出其简化轮廓(ε=周长×0.005),并在同一窗口显示
人工智能·pytorch·python·opencv·计算机视觉
gongzemin1 小时前
Django入门2--设置数据库 admin
python·django
KimLiu1 小时前
LCODER之Python:使用Django搭建服务端
后端·python·django
胡耀超1 小时前
3.Python高级数据结构与文本处理
服务器·数据结构·人工智能·windows·python·大模型