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.

相关推荐
拾忆,想起2 小时前
TCP粘包拆包全解析:数据流中的“藕断丝连”与“一刀两断”
java·网络·数据库·网络协议·tcp/ip·哈希算法
小皮虾3 小时前
魔法降临!让小程序调用云函数如丝般顺滑,调用接口仿佛就是调用存在于本地的函数
前端·微信小程序·小程序·云开发
StarkCoder3 小时前
Flutter微任务解析:如何解决原生线程回调导致的UI状态异常
前端
yunyi3 小时前
Husky v9+ 在 Monorepo/全栈项目中的升级与配置
前端
养乐多同学943543 小时前
关于vuex的缓存持久实践
前端·vuex
不要额外加糖3 小时前
tql,寥寥几行,实现无队列无感刷新
前端·javascript·设计模式
Qinana3 小时前
🚙微信小程序实战解析:打造高质感汽车展示页
前端·css·程序员
Yeats_Liao3 小时前
Go Web 编程快速入门 18 - 附录B:查询与扫描
开发语言·前端·后端·golang
@大迁世界3 小时前
第06章:Dynamic Components(动态组件)
前端·javascript·vue.js·前端框架·ecmascript