Formatting Outputs for ChatPrompt Templates(two)

https://python.langchain.com.cn/docs/modules/model_io/prompts/prompt_templates/format_output

This guide explains how to use the format method of ChatPrompt (in LangChain) to get outputs in three useful formats. All examples use the same core task: creating a prompt for translating English to French. We'll keep code and outputs exactly as in the original source---no changes.

Key Background First

Before diving into formats, remember: A ChatPrompt typically includes a SystemMessage (tells the AI its role) and a HumanMessage (the user's input). For our examples, the ChatPrompt is set up to translate text from an input_language to an output_language (we'll use English → French).

1. Output as a String

The simplest format: a plain text string that combines the system message and human message. There are two equivalent ways to get this.

Method 1: Use chat_prompt.format()

This directly returns the prompt as a string.

Code (From Original Source)
python 复制代码
# Assume `chat_prompt` is already set up for translation (English → French)
output = chat_prompt.format(
    input_language="English", 
    output_language="French", 
    text="I love programming."
)
print(output)
Output (From Original Source)
复制代码
System: You are a helpful assistant that translates English to French.
Human: I love programming.

Method 2: Use chat_prompt.format_prompt().to_string()

This is a two-step way to get the same string. First, format_prompt() creates a ChatPromptValue (see Section 2), then to_string() converts it to text.

Code (From Original Source)
python 复制代码
output_2 = chat_prompt.format_prompt(
    input_language="English", 
    output_language="French", 
    text="I love programming."
).to_string()

# Check if both outputs are identical (they will be!)
assert output == output_2  # No error means they match

What This Means

Both methods give you a readable text string. Use this if you want to quickly check or share the prompt content.

2. Output as a ChatPromptValue

ChatPromptValue is a special LangChain object that stores the full prompt (with messages). It's not just text---it keeps track of the message types (system vs. human).

Code (From Original Source)

python 复制代码
chat_prompt_value = chat_prompt.format_prompt(
    input_language="English", 
    output_language="French", 
    text="I love programming."
)
print(chat_prompt_value)
Output (From Original Source)
复制代码
ChatPromptValue(messages=[
    SystemMessage(content='You are a helpful assistant that translates English to French.', additional_kwargs={}), 
    HumanMessage(content='I love programming.', additional_kwargs={})
])

What This Means

  • ChatPromptValue has a messages attribute that holds a list of message objects (here: SystemMessage and HumanMessage).
  • Use this if you need to work with the prompt as a structured object (not just text) in LangChain workflows.

3. Output as a List of Message Objects

You can convert the ChatPromptValue into a list of SystemMessage and HumanMessage objects. This list is ready to pass directly to Chat models (e.g., ChatOpenAI), since models accept message objects as input.

Code (From Original Source)

python 复制代码
message_list = chat_prompt.format_prompt(
    input_language="English", 
    output_language="French", 
    text="I love programming."
).to_messages()
print(message_list)
Output (From Original Source)
复制代码
[
    SystemMessage(content='You are a helpful assistant that translates English to French.', additional_kwargs={}), 
    HumanMessage(content='I love programming.', additional_kwargs={})
]

What This Means

  • The list contains actual LangChain message objects (not just text).
  • This is the most useful format for running the prompt with a Chat model ---you can pass message_list directly to the model's predict or generate methods.

Quick Summary of All 3 Formats

Format Type How to Get It Use Case
String chat_prompt.format(...) or format_prompt().to_string() Quick checks/sharing prompt text
ChatPromptValue chat_prompt.format_prompt(...) Working with structured prompt objects
List of Message Objects format_prompt().to_messages() Passing input directly to a Chat model

All code, outputs, and logic match the original source---no extra changes or additions.

相关推荐
云飞云共享云桌面6 分钟前
传统工作站 vs 云飞云共享云桌面:制造业设计云桌面选型深度对比
运维·服务器·前端·网络·3d·架构·制造
UXbot14 分钟前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
计算机安禾1 小时前
【数据库系统原理】第19篇:计算机存储层次结构与数据库文件的物理组织
数据库·oracle
llz_1121 小时前
web-第四次课后作业
前端·spring boot·web
JAVA面经实录9171 小时前
操作系统面试题
java·服务器·数据库·计算机网络·面试
摇滚侠1 小时前
mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代
数据库·mysql·mariadb
武清伯MVP2 小时前
前端跨域方案大合集
前端·javascript
小刘|2 小时前
Spring AI Alibaba 集成和风天气 API 实战
java·服务器·前端
DIY源码阁2 小时前
JavaSwing饮品管理系统 - MySQL版
java·数据库·mysql·eclipse
专注搞钱2 小时前
GPT-4o写设备Recipe:从3小时到10分钟
数据库·人工智能·gpt·半导体