惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
N
Netflix TechBlog - Medium
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
IT之家
IT之家
博客园 - Franky
雷峰网
雷峰网
博客园 - 聂微东
腾讯CDC
M
MIT News - Artificial intelligence
B
Blog RSS Feed
博客园_首页
罗磊的独立博客
S
SegmentFault 最新的问题
I
InfoQ
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
D
Docker
宝玉的分享
宝玉的分享
B
Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 喵喵2023

学习Langchain笔记二——多模板提示词 学习LangChain笔记一 论云原生架构在高并发系统中的设计与实践 数据血缘图在数据错误追溯中的应用指南 观察者设计模式:原理、应用与对比分析 区块链技术:原理、应用与案例分析 docker 安装nginx 和 nginx proxy manager 微服务设计10个需要考虑的要素 MySQL 8.0 参考手册——8.2优化 SQL 语句(二) MySQL 8.0 参考手册——8.2优化 SQL 语句(一) MySQL 8.0 参考手册——8.1优化概述 docker 推送本地镜像到docker Hub仓库 微服务架构设计模式 系统分析与设计 SpringBoot 与 nacos 最新版本整合 CentOS 添加定时任务 安装docker-compose docker nginx镜像 获取并挂载目录 供应链管理(五) 供应链管理(四) 供应链管理(三) 供应链管理(二)
学习Langchain笔记三——输出格式化
喵喵2023 · 2026-07-31 · via 博客园 - 喵喵2023
import re
from langchain.output_parsers import StructuredOutputParser, ResponseSchema
from langchain_core.prompts import PromptTemplate
from langchain_ollama import ChatOllama  # 1. 导入 ChatOllama

# 2. 实例化模型对象 chat
chat = ChatOllama(model="deepseek-r1:1.5b")

response_schema = [
    ResponseSchema(name="name", description="人的姓名", type="string"),
    ResponseSchema(name="age", description="人的年龄", type="integer")
]

output_parsers = StructuredOutputParser.from_response_schemas(response_schema)

template = "你是一个信息提取助手,请从以下文本中提取姓名和年龄:\n文本:{input_text}\n{format_instructions}"

prompt = PromptTemplate(
    template=template,
    input_variables=["input_text"],
    partial_variables={"format_instructions": output_parsers.get_format_instructions()}
)

input_text = "张三今年18岁,来自北京"
filled_prompt = prompt.format(input_text=input_text)

# 3. 获取模型的原始回答
raw_response = chat.invoke(filled_prompt).content

# 4. 关键点:用正则过滤掉 DeepSeek-R1 的 <think> 标签,只留 JSON
clean_response = re.sub(r'<think>.*?</think>', '', raw_response, flags=re.DOTALL).strip()

# 5. 解析过滤后的纯 JSON 字符串
parsed_output = output_parsers.parse(clean_response)
print(parsed_output)
{'name': '张三', 'age': 18}