当前位置:   article > 正文

Langchain入门到实战-第四弹_langchain messagesplaceholder

langchain messagesplaceholder

Langchain中的提示词

  • 语言模型提示模板是预定义的生成语言模型提示的方法。
  • 模板可能包括指令、少样本示例、特定任务的上下文和问题。
  • LangChain 提供了创建和处理提示模板的工具。
  • LangChain 致力于创建模型不可知的模板,以便轻松地跨不同的语言模型重用现有的模板。
  • 通常,语言模型expects 提示要么是字符串,要么是聊天消息列表。

官网地址

声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准

https://python.langchain.com/
  • 1

Langchain概述

LangChain是一个用于开发由大型语言模型(LLM)驱动的应用程序的框架。

Langchain的提示词用法

  • PromptTemplate: 默认情况下,PromptTemplate 使用 Python 的 str.format 语法进行模板化。

    from langchain_core.prompts import PromptTemplate
    
    prompt_template = PromptTemplate.from_template(
        "Tell me a {adjective} joke about {content}."
    )
    prompt_template.format(adjective="funny", content="chickens")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

在这里插入图片描述

  • ChatPromptTemplate: 聊天模型的提示是一个聊天消息列表。每个聊天消息都与内容关联,并有一个额外的参数称为角色。例如,在OpenAI聊天完成API中,一个聊天消息可以与AI助手、人类或系统角色关联。

    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?")
    messages
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

在这里插入图片描述

  • Message Prompts: 提供了不同类型的MessagePromptTemplate
    • AIMessagePromptTemplate
    • SystemMessagePromptTemplate
    • HumanMessagePromptTemplate
    • 任意指定角色的PromptTemplate
    from langchain_core.prompts import ChatMessagePromptTemplate
    
    prompt = "May the {subject} be with you"
    
    chat_message_prompt = ChatMessagePromptTemplate.from_template(
        role="Jedi", template=prompt
    )
    chat_message_prompt.format(subject="force")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

在这里插入图片描述

  • MessagesPlaceholder: 完全控制格式化期间要呈现的消息

    from langchain_core.prompts import (
        ChatPromptTemplate,
        HumanMessagePromptTemplate,
        MessagesPlaceholder,
    )
    
    human_prompt = "Summarize our conversation so far in {word_count} words."
    human_message_template = HumanMessagePromptTemplate.from_template(human_prompt)
    
    chat_prompt = ChatPromptTemplate.from_messages(
        [MessagesPlaceholder(variable_name="conversation"), human_message_template]
    )
    from langchain_core.messages import AIMessage, HumanMessage
    
    human_message = HumanMessage(content="What is the best way to learn programming?")
    ai_message = AIMessage(
        content="""\
    1. Choose a programming language: Decide on a programming language that you want to learn.
    
    2. Start with the basics: Familiarize yourself with the basic programming concepts such as variables, data types and control structures.
    
    3. Practice, practice, practice: The best way to learn programming is through hands-on experience\
    """
    )
    
    chat_prompt.format_prompt(
        conversation=[human_message, ai_message], word_count="10"
    ).to_messages()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

在这里插入图片描述

  • LCEL
    • PromptTemplate 入参是字典, 返回值是StringPromptValue
    • ChatPromptTemplate 入参是字典, 返回值是ChatPromptValue
    from langchain_core.prompts import PromptTemplate
    prompt_template = PromptTemplate.from_template(
        "Tell me a {adjective} joke about {content}."
    )
    
    prompt_val = prompt_template.invoke({"adjective": "funny", "content": "chickens"})
    prompt_val
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

在这里插入图片描述

from langchain_core.messages import SystemMessage
from langchain_core.prompts import ChatPromptTemplate
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}"),
    ]
)

chat_val = chat_template.invoke({"text": "i dont like eating tasty things."})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

更新计划

欲知后事如何, 请听下回分解

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/991500
推荐阅读
相关标签
  

闽ICP备14008679号