Langchain-core 基础数据模型(message、outputs,output_parsers)

用户输入消息 (BaseMessage) → LLM 执行 → 产出LLMResult二维容器(内部包含ChatGeneration/ChatGenerationChunk、内部携带BaseMessage/AIMessageChunk) → 取出 generations 交给BaseOutputParser做解析,输出业务数据
示例:
点击查看代码
from langchain_core.messages import HumanMessage, AIMessageChunk
from langchain_core.outputs import LLMResult, ChatGenerationChunk
from langchain_core.output_parsers import StringOutputParser
# ========== 1. messages模块:用户输入消息(蓝色区域) ==========
user_input = HumanMessage(content="请简单介绍Python")
# ========== 2. outputs模块:模拟大模型流式返回,组装LLMResult(绿色区域) ==========
# 模拟流式分片,AIMessageChunk实现BaseMessageChunk协议,支持 __add__ 拼接
chunk_1 = AIMessageChunk(content="Python是")
chunk_2 = AIMessageChunk(content="一门解释型编程语言。")
# ChatGenerationChunk:包裹消息分片,实现GenerationChunk协议
gen_chunk_1 = ChatGenerationChunk(message=chunk_1)
gen_chunk_2 = ChatGenerationChunk(message=chunk_2)
# LLMResult 二维generations:外层batch,内层候选输出;可以直接存放Chunk对象
llm_result = LLMResult(
generations=[
[gen_chunk_1, gen_chunk_2]
],
llm_output={"model_name":"mock‑llm"}
)
# ========== 3. output_parsers模块:解析器消费LLMResult的数据(浅黄色区域) ==========
parser = StringOutputParser()
# 从LLMResult取出内层List[Generation|ChatGenerationChunk],传给parse_result
generation_list = llm_result.generations[0]
# partial=True:流式增量解析
final_text = parser.parse_result(generation_list, partial=True)
print(final_text)
# 输出:Python是一门解释型编程语言。
浙公网安备 33010602011771号