02 Model I/O 与模型调用
tags:/n - langchain模型调用PromptLLM面试aliases:/n - Model IO模型输入输出02 Model I/O 与模型调用Model I/O 是与语言模型交互的核心组件输入提示Prompt→ 调用模型Model→ 输出解析Parser。一、调用在线模型1.1 LangChain 统一调用 LangChain 调用在线模型 运行方式python 02_LangChain调用模型.py fromdotenvimportload_dotenvimportosfromlangchain_openaiimportChatOpenAI load_dotenv()# 创建 LLM 实例llmChatOpenAI(modelqwen-turbo,base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,api_keyos.getenv(DASHSCOPE_API_KEY),)# 调用模型respllm.invoke(你好)print(type(resp))# class langchain_core.messages.ai.AIMessageprint(resp.content)1.2 消息类型类型说明示例SystemMessage系统指令设置角色、行为规范HumanMessage用户消息用户的输入AIMessageAI 回复模型的输出ToolMessage工具结果工具调用的返回值fromlangchain_core.messagesimportHumanMessage,SystemMessage,AIMessage# 方式1消息对象列表respllm.invoke([SystemMessage(content你是一个专业的数学助手),HumanMessage(content你好你是谁),])# 方式2元组列表简洁写法respllm.invoke([(system,你是一个专业的数学助手),(user,你好)])# 方式3字典列表respllm.invoke([{role:system,content:你是一个专业的数学助手},{role:user,content:你好}])1.3 调用方式方式方法说明同步调用llm.invoke()阻塞等待结果异步调用await llm.ainvoke()非阻塞适合高并发流式调用llm.stream()打字机效果逐 token 输出批次调用llm.batch()并行多个请求 流式调用演示 运行方式python 02_流式调用.py # 流式调用responsellm.stream(input[(user,什么是LangChain)])forchunkinresponse:print(chunk.content,end,flushTrue)print()# 批次调用responsellm.batch([[(user,什么是LangChain)],(user,LangChain的核心价值是什么),])forrespinresponse:print(resp.content)print(-*50)二、调用本地模型Ollama LangChain 调用本地 Ollama 模型 运行方式python 02_Ollama调用.py 前提已安装 Ollama 并下载了 qwen3:8b fromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelqwen3:8b,base_urlhttp://localhost:11434/v1,api_keyollama,)respllm.invoke(你好)print(resp.content)三、模型调用结果解析3.1 JSON 输出 JsonOutputParser 演示 运行方式python 02_JSON解析.py fromlangchain_openaiimportChatOpenAIfromlangchain_core.output_parsersimportJsonOutputParserfrompydanticimportBaseModel,Field llmChatOpenAI(modelqwen-plus,base_url...,api_key...)classPrime(BaseModel):prime:list[int]Field(description素数列表)count:list[int]Field(description小于该素数的素数个数)json_parserJsonOutputParser(pydantic_objectPrime)resllm.invoke([(system,json_parser.get_format_instructions()),(user,任意生成2个1-10之间的素数),])parsed_resjson_parser.invoke(res)print(type(parsed_res))# class dictprint(parsed_res)3.2 结构化输出推荐 LangChain 结构化输出 运行方式python 02_结构化输出.py fromlangchain_openaiimportChatOpenAIfrompydanticimportBaseModel llmChatOpenAI(modelqwen-turbo,base_url...,api_key...)classCalendarEvent(BaseModel):name:strdate:strparticipants:list[str]# 开启结构化输出new_llmllm.with_structured_output(schemaCalendarEvent)resnew_llm.invoke(Alice and Bob are going to a science fair on Friday.)print(res)print(type(res))# class __main__.CalendarEventprint(f事件:{res.name}, 日期:{res.date})3.3 常用 Output ParserParser说明输出类型StrOutputParser字符串输出strJsonOutputParserJSON 输出dictPydanticOutputParserPydantic 对象BaseModelCommaSeparatedListOutputParser逗号分隔列表list相关笔记[[01-LangChain概述]] · [[03-提示词模板与Chains]] · [[04-RAG检索增强]] · [[05-Agents智能体]]

相关新闻

01 LangChain 概述

01 LangChain 概述

学习路径导航 ← [[09-NLP/01-NLP导论.md|NLP]] | [[README.md|知识库首页]] | [[11-LangGraph/01-LangGraph概述与快速入门.md|LangGraph]] → tags:/n - langchain 大模型开发LLM应用面试 aliases:/n - LangChain入门01 LangChain 概述 一、什么是 LangChain LangChain 是一…

2026/6/28 5:58:24阅读更多 →
2026易学入门 App 推荐

2026易学入门 App 推荐

很多人搜索“易学入门 App 推荐”“易学排盘软件推荐”时,通常不是单纯想找一个应用名称,而是想解决一个更基础的问题:刚开始接触易学排盘、八字排盘和命盘结构学习时,应该怎样判断一款工具是否适合自己。对新手来说,一…

2026/6/28 5:58:24阅读更多 →
订票Agent评测12步:从意图识别到词槽追问,打造爆款智能体验!

订票Agent评测12步:从意图识别到词槽追问,打造爆款智能体验!

本文深入探讨了订票场景下智能Agent的评测关键,涵盖意图识别、多意图拆分、隐含意图、意图拒识、澄清判断、输入鲁棒性、实体识别、实体归一、词槽填充、词槽缺失、词槽冲突和词槽追问12个维度。文章强调评测集需细化到可执行层,区分主意图与子意图&…

2026/6/28 5:58:24阅读更多 →
Python CTP封装:让量化交易开发变得简单高效的3个关键步骤

Python CTP封装:让量化交易开发变得简单高效的3个关键步骤

Python CTP封装:让量化交易开发变得简单高效的3个关键步骤 【免费下载链接】pyctp ctp wrapper for python 项目地址: https://gitcode.com/gh_mirrors/pyc/pyctp 你是否曾为复杂的CTP API接口而头疼?想要用Python进行期货、期权交易开发&#xf…

2026/6/28 7:38:32阅读更多 →
深度优化策略:高级配置指南实现精准控制

深度优化策略:高级配置指南实现精准控制

深度优化策略:高级配置指南实现精准控制 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump DeepBump是一款基于机器学习的单图法线图、高度图和曲率图生成工具&am…

2026/6/28 7:38:32阅读更多 →
Windhawk终极魔法:3步打造完全属于你的Windows系统

Windhawk终极魔法:3步打造完全属于你的Windows系统

Windhawk终极魔法:3步打造完全属于你的Windows系统 【免费下载链接】windhawk The customization marketplace for Windows programs: https://windhawk.net/ 项目地址: https://gitcode.com/gh_mirrors/wi/windhawk 你是否厌倦了Windows千篇一律的界面&…

2026/6/28 7:38:32阅读更多 →
Windhawk:3个维度深度解析Windows系统定制平台的技术实现与应用价值

Windhawk:3个维度深度解析Windows系统定制平台的技术实现与应用价值

Windhawk:3个维度深度解析Windows系统定制平台的技术实现与应用价值 【免费下载链接】windhawk The customization marketplace for Windows programs: https://windhawk.net/ 项目地址: https://gitcode.com/gh_mirrors/wi/windhawk 你是一个文章写手&#…

2026/6/28 7:38:32阅读更多 →
前言:后端开发的“前端痛”

前言:后端开发的“前端痛”

在传统开发中,全栈往往意味着你要精通 C# 还要精通 JavaScript、HTML、CSS,甚至还要学 React 或 Vue 的一大堆生命周期和状态管理库。这对很多专注于业务逻辑的后端同学来说,简直是噩梦。微软也意识到了这个痛点,于是 Blazor 诞生…

2026/6/28 7:38:32阅读更多 →
深入解析MAA跨平台架构:三大系统的完整部署指南

深入解析MAA跨平台架构:三大系统的完整部署指南

深入解析MAA跨平台架构:三大系统的完整部署指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.c…

2026/6/28 7:33:32阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →