Langchain入门到实战-第四弹

Langchain入门到实战

Langchain中的提示词

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

官网地址

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

bash 复制代码
https://python.langchain.com/

Langchain概述

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

Langchain的提示词用法

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

    bash 复制代码
    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")
  • ChatPromptTemplate: 聊天模型的提示是一个聊天消息列表。每个聊天消息都与内容关联,并有一个额外的参数称为角色。例如,在OpenAI聊天完成API中,一个聊天消息可以与AI助手、人类或系统角色关联。

    bash 复制代码
    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
  • Message Prompts : 提供了不同类型的MessagePromptTemplate

    • AIMessagePromptTemplate
    • SystemMessagePromptTemplate
    • HumanMessagePromptTemplate
    • 任意指定角色的PromptTemplate
    bash 复制代码
    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")
  • MessagesPlaceholder: 完全控制格式化期间要呈现的消息

    bash 复制代码
    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()
  • LCEL

    • PromptTemplate 入参是字典, 返回值是StringPromptValue
    • ChatPromptTemplate 入参是字典, 返回值是ChatPromptValue
    bash 复制代码
    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
bash 复制代码
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 天前
5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力
前端·人工智能·langchain
是一碗螺丝粉1 天前
LangChain 核心组件深度解析:模型与提示词模板
前端·langchain·aigc
大模型真好玩2 天前
大模型训练全流程实战指南工具篇(七)——EasyDataset文档处理流程
人工智能·langchain·deepseek
勇气要爆发3 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
勇气要爆发3 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
SunnyRivers3 天前
LangChain中间件详解
中间件·langchain
fish_study_csdn3 天前
LangChain学习二:LangChain使用之Model I/O
langchain·大模型·ai agent
ZaneAI3 天前
🚀 Claude Agent SDK 使用指南:文件检查点与回退 (File Checkpointing)
langchain·agent·claude
chaors3 天前
Langchain入门到精通0x00:hello Langchain
人工智能·langchain·aigc