# tutorial_space **Repository Path**: wangzz_felix/tutorial_space ## Basic Information - **Project Name**: tutorial_space - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 模型调用方法 ##### 对话模型 1. HumanMessage: 2. AIMessage: 3. SystemMessage: 4. ToolMessage/FunctionMessage 5. ChatMessage ## PromptTemplate提示词模板 1. PromptTemplate: 文本生成模型提示词模板 2. ChatPromptTemplate: 聊天模型提示词模板 3. HumanMessagePromptTemplate: 人类消息提示词模板 4. SystemMessagePromptTemplate: 系统消息提示词模板 5. FewShotPromptTemplate: few-shot提示词模板 6. PipelinePrompt: 管道提示词模板,用于将几个提示词组合 #### 提示词方法 * invoke: 格式化提示词模板为PromptValue * invoke()是LangChain Expression Language(LCEL统一执行入口,用于执行任意可运行对象(Runnable),返回PromptValue对象可用.to_string()或.to_message()查看内容) * format: 格式化提示词模板为字符串 * partial: 格式化提示词模板为一个新的提示词模板,可继续格式化 #### 对话提示词模板(ChatPromptTemplate) > ChatPromptTemplate是专为聊天模型(gpt-3.5-turbo等)设计的提示词模板 > 支持构造多轮对话的消息结构,每条消息可指定角色(system/user/ai) > 参数: role & content ##### 调用from_messages(★) ```js chat_prompt = ChatPromptTemplate.from_messages([ ("system", "你是一个{role},请回答我提出的问题"), ("human", "请回答: {query}") ]) ``` #### 提示词方法 除了format、partial、invoke方法外,ChatPromptTemplate还支持以下方法: * format_messages * format_prompt ##### format_messages 作用:将模板变量替换之后,直接生成消息列表(List[BaseMessage]) 包含:SystemMessage、HumanMessage、AIMessage 手动查看\调试Prompt的最终消息结构 #### format_prompt 作用:生成一个PromptValue对象,抽象层次更高的封装 * PromptTemplate(单纯文本), 返回StringPromptTemplate * ChatPromptTemplate(多轮对话),返回ChatPromptValue PromptValue 有两个常用方法: .to_string() → 转成文本 .to_messages() → 转成消息列表(同上) #### BaseMessagePromptTemplate类型 LangChain提供不同类型的MessagePromptTemplate * SystemMessagePromptTemplate - 系统消息 * HumanMessagePromptTemplate - 用户消息 * 预定义 role="human" 无需手动指定角色 * AIMessagePromptTemplate - AI消息 ChatMessagePromptTemplate 用于构建聊天消息的模板,创建可重用消息模板, 可动态插入变量值来生成最终聊天 * system、human、ai * 模板化:变量占位符,填充具体值 * 格式化:将模板和输入变量结合生成最终的聊天消息 #### 消息占位符提示词模板 > 不确定消息何时生成、不确定要插入几条消息 > 在提示词中添加聊天历史记忆 > ChatPromptTemplate添加MessagePlaceholder占位符 > 调用invoke时,占位符传入数据 ##### 隐式使用MessagesPlaceholder > "placeholder"是("placeholder", "memory") = MessagesPlaceholder("memory") ## Parser输出解析器 将LLM的原始输出内容解析为 JSON、XML、YAML等结构化数据 输出解析器在LLM和最终数据输出只见那,作为数据处理的中间层 指定格式输出:将模型的文本输出转换指定格式 数据校验:确保输出内容符合预期的格式和类型 错误处理:当解析失败时,进行错误修复和重试 输出格式提示词:生成对应格式要求的提示词,如要生成JSON的具体描述,可以通过提示词传递给大模型,达到返回特定格式数据的目的 StrOutputParser 简单文本输出 字符串 JsonOutputParser JSON格式数据 字典/列表 PydanticOutputParser 复杂结构化数据 Pydantic模型对象 ListOutputParser 列表数据 Python列表 DatetimeOutputParser 时间日期数据 datetime对象 BooleanOutputParser 布尔值输出 True/False ##### parser方法 1. parser: 将大模型输出的内容,格式化成指定的格式返回。 2. format_instructions: 返回一段清晰的格式说明字符串,告诉 model 希望输出成什么格式(比如 JSON,或者特定格式