GPT实战系列-LangChain的Prompt提示模版构建
LangChain
GPT实战系列-LangChain如何构建基通义千问的多工具链
GPT实战系列-通过Basetool构建自定义LangChain工具方法
GPT实战系列-一种构建LangChain自定义Tool工具的简单方法
GPT实战系列-简单聊聊LangChain搭建本地知识库准备
GPT实战系列-LangChain + ChatGLM3构建天气查询助手
GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手
Prompt模版是用于生成语言模型提示的预定义模版。
模板可能包括说明、小样本示例,和特定的上下文和问题(适合于特定的任务)。
LangChain提供创建和使用提示模板的工具,其实也没有做太多的工作,就是字符串格式化操作差不多。模版与模型无关,使其适应在不同的语言模型中重复使用。
通常,语言模型的输入,通常是字符串或聊天消息列表。
Prompt模版
用于为字符串提示创建模板。PromptTemplate
默认情况下,PromptTemplate使用 Python 的 用于模板的 str.format 语法,一种字符替换的格式。
            
            
              python
              
              
            
          
          from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template(
    "Tell me a {adjective} joke about {content}."
)
prompt_template.format(adjective="funny", content="chickens")
            
            
              text
              
              
            
          
          'Tell me a funny joke about chickens.'该模板支持任意数量的变量,包括无变量:
            
            
              python
              
              
            
          
          from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template("Tell me a joke")
prompt_template.format()
            
            
              text
              
              
            
          
          'Tell me a joke'因此,您可以创建任意的自定义提示模板,以任何方式设置提示的格式。
聊天对话模版ChatPromptTemplate
通常,大语言模型(LLM)的应用模型是聊天模型,它的提示是聊天消息列表。
每条聊天消息都与内容相关联,并且其他 参数调用 。例如,在 OpenAI 聊天完成中 API,聊天 消息可以与 AI 助手、人类或系统相关联 角色。
创建一个聊天提示模板,如下所示:
            
            
              python
              
              
            
          
          from langchain_core.prompts import ChatPromptTemplate
chat_template = ChatPromptTemplate.from_messages(
    [
        ("system", "You are a helpful AI bot. Your name is {name}."),
        ("human", "Hello, how are you doing?"),
        ("ai", "I'm doing well, thanks!"),
        ("human", "{user_input}"),
    ]
)
messages = chat_template.format_messages(name="Bob", user_input="What is your name?")ChatPromptTemplate.from_messages 就是接受各种消息输入。
例如,除了使用 (type, content),则可以传入 or 的实例。MessagePromptTemplate``BaseMessage
            
            
              python
              
              
            
          
          from langchain.prompts import HumanMessagePromptTemplate
from langchain_core.messages import SystemMessage
from langchain_openai import ChatOpenAI
chat_template = ChatPromptTemplate.from_messages(
    [
        SystemMessage(
            content=(
                "You are a helpful assistant that re-writes the user's text to "
                "sound more upbeat."
            )
        ),
        HumanMessagePromptTemplate.from_template("{text}"),
    ]
)
messages = chat_template.format_messages(text="I don't like eating tasty things")
print(messages)
            
            
              text
              
              
            
          
          [SystemMessage(content="You are a helpful assistant that re-writes the user's text to sound more upbeat."), HumanMessage(content="I don't like eating tasty things")]其实就是做了简单的封装,提供一些灵活性,来构建您的 聊天提示。
LangChain是一个Python框架,可以使用LLMs构建应用程序。它与各种模块连接,使与LLM和提示管理,一切变得简单。
觉得有用 收藏 收藏 收藏
点个赞 点个赞 点个赞
End
GPT专栏文章:
GPT实战系列-实战Qwen通义千问在Cuda 12+24G部署方案_通义千问 ptuning-CSDN博客
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
GPT实战系列-让CodeGeeX2帮你写代码和注释_codegeex 中文-CSDN博客
GPT实战系列-ChatGLM3管理工具的API接口_chatglm3 api文档-CSDN博客
GPT实战系列-LangChain + ChatGLM3构建天气查询助手
GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案