【每天一个小笔记】03 LangChain的链(Chains)

LangChain入门- 链 (Chains) 完全指南 本文介绍了LangChain中的链(Chains)系统,它用于将多个AI组件组合成端到端工作流。主要内容包括:1) 基础链类如LLMChain、SequentialChain和RouterChain;2) 高级链如RetrievalQA和ConversationalRetrievalChain;3) 链的组合方式,包括传统Chain类和现代LCEL管道;4) 记忆集成方法,如ConversationChain。文章通过流程图展示了不同链类型的数据流和工作原理,并提供了Python代码示例说明如何使用这些链构 阅读详情

LangChain 的链(Chain)

LangChain 的链(Chain)是一种将多个组件(如模型、提示、记忆、工具等)组合在一起的方式,用于实现复杂的任务流程。链可以串联多个步骤,使任务处理更加模块化和可复用。以下是 LangChain 中链的核心概念和常见用法:

常见的Chain类型包括:​

  • LLMChain    —— 最基础的链​
  • SimpleSequentialChain    —— 简单顺序链​
  • SequentialChain    —— 复杂顺序链​
  • TransformChain    —— 纯数据转换链(不调用 LLM)​
  • RouterChain    —— 路由链,根据输入内容自动分发到不同分支​
  • MapReduceChain    —— 映射-归约链,适合处理大规模文本

基础链——LLMChain

LLMChain 是 LangChain 框架中的核心组件,用于将大型语言模型(LLM)与其他模块(如提示模板、记忆系统或输出解析器)串联起来,构建可定制的链式工作流。其核心思想是通过组合不同模块实现复杂任务(如问答、文本生成或数据转换),同时保持灵活性和可扩展性。

核心组件与功能

语言模型(LLM)
支持集成 OpenAI、Anthropic 等第三方模型或本地部署的模型,通过统一接口调用生成文本。

提示模板(PromptTemplate)
定义动态提示的模板,支持变量插值。例如:

from langchain.prompts import PromptTemplate  
prompt = PromptTemplate.from_template("解释{term}的概念:")  

链式执行(Chain Execution)
将模型调用与后续处理步骤(如过滤、格式化)结合。典型用法:

from langchain.chains import LLMChain  
chain = LLMChain(llm=llm, prompt=prompt)  
result = chain.run(term="机器学习")  

典型应用场景

问答系统
结合检索器(Retriever)从文档中获取上下文,再通过 LLMChain 生成答案。

结构化输出生成
使用输出解析器(Output Parser)将模型返回的自然语言转换为 JSON 或字典格式。

多步骤任务
通过 SequentialChain 将多个 LLMChain 连接,例如先生成大纲再撰写文章。

高级配置选项

记忆集成
通过 Memory 模块(如 ConversationBufferMemory)保存对话历史,实现上下文感知。

回调函数
监控链的执行过程,例如记录中间结果或处理错误。

超参数控制
调整 temperature 或 max_tokens 等参数控制生成结果的多样性和长度。

示例代码:完整工作流

输出示例:

通过模块化设计和链式组合,LLMChain 能够灵活适应从简单文本生成到复杂决策流程的各种需求。


输出解析链(带结构化结果)

输出解析链(Output Parsers)是 LangChain 中用于将模型生成的文本转换为结构化数据(如 JSON、Pydantic 模型等)的工具。

使用 Pydantic 模型解析结构化数据

通过 PydanticOutputParser 可以将模型输出解析为预定义的 Pydantic 模型结构:

输出结果:

注意:

调用的LLMChain将被弃用,改成下面的方法

使用 JSON 解析器

通过 StructuredOutputParser 生成并解析 JSON 格式结果:

from langchain.output_parsers import StructuredOutputParser, ResponseSchema

# 定义输出字段
response_schemas = [
    ResponseSchema(name="answer", description="回答内容"),
    ResponseSchema(name="source", description="数据来源")
]

# 创建解析器
parser = StructuredOutputParser.from_response_schemas(response_schemas)

# 在提示中加入格式说明
prompt = PromptTemplate(
    template="回答问题:{query}\n{format_instructions}",
    input_variables=["query"],
    partial_variables={"format_instructions": parser.get_format_instructions()}
)

# 调用模型
input_prompt = prompt.format_prompt(query="法国的首都是什么?")
output = model(input_prompt.to_string())

# 解析为字典
result_dict = parser.parse(output)
print(result_dict)  # 输出:{'answer': '巴黎', 'source': '常识'}

自定义解析逻辑

通过继承 BaseOutputParser 实现完全自定义解析:

from langchain.schema import BaseOutputParser

class CommaSeparatedListOutputParser(BaseOutputParser):
    def parse(self, text: str):
        return text.strip().split(", ")

parser = CommaSeparatedListOutputParser()
result = parser.parse("苹果, 香蕉, 橙子")
print(result)  # 输出:['苹果', '香蕉', '橙子']

处理解析错误

使用 OutputFixingParser 自动修复格式错误的输出:

from langchain.output_parsers import OutputFixingParser

fix_parser = OutputFixingParser.from_llm(parser=parser, llm=OpenAI())
broken_output = "名字:李四 年龄:40"  # 缺少JSON格式
fixed_result = fix_parser.parse(broken_output)

关键参数说明

  1. format_instructions:自动生成的格式提示文本,需包含在提示模板中
  2. partial_variables:允许在模板中预填充部分变量
  3. temperature=0:建议设置为0以保证输出稳定性
  4. ResponseSchema:需明确定义每个字段的名称和描述

通过组合这些组件,可以构建鲁棒的输出解析流程,将非结构化文本转换为可直接程序处理的结构化数据。

简单顺序链(SimpleSequentialChain)

在实际应用中,许多复杂任务需要分解为多个相互关联的步骤依次执行。例如,要生成一个完整的故事,可能需要先拟定故事大纲,再根据大纲展开具体内容。👉​ SimpleSequentialChain就如同思维上的接力赛:它将多个子任务连接成一个线性工作流,前一个链的输出会自动成为下一个链的输入,实现多步任务的自动化执行。

from langchain.chains import SimpleSequentialChain​

# 第一个节点:生成大纲​
outline_prompt = PromptTemplate(​
    input_variables=["theme"],​
    template="请为以下主题写一个故事大纲:{theme}"​
)​
outline_chain = LLMChain(llm=llm, prompt=outline_prompt)​
​
# 第二个节点:写故事​
story_prompt = PromptTemplate(​
    input_variables=["outline"],​
    template="根据以下大纲写一个故事:{outline}"​
​
story_chain = LLMChain(llm=llm, prompt=story_prompt)​
​
# 顺序链​
sequential_chain = SimpleSequentialChain(​
    chains=[outline_chain, story_chain], # 先大纲然后写故事​
    verbose=True​
)​
​
result = sequential_chain.run("人工智能与人类的友谊")​
print(result)

核心机制讲解​

  • 链式执行   :第一个链(outline_chain)接收初始输入(如主题)并生成故事大纲;第二个链(story_chain)自动将该大纲作为输入,生成完整故事。​
  • 自动化传递   :SimpleSequentialChain 自动管理中间结果的传递,无需手动截取、解析和传递上一个步骤的输出。​
  • 透明化流程   :设置 verbose=True可在控制台查看每个步骤的输入和输出,方便调试与优化。​

👉 SimpleSequentialChain 非常适用于多阶段生成式任务   ,例如:​

  • 内容创作   :先生成提纲,再撰写文章或报告​
  • 代码开发   :先设计模块或接口,再实现具体代码​
  • 数据分析   :先进行数据筛选,再执行分析或可视化​

通过将复杂任务分解为有序步骤,SimpleSequentialChain 既能提升输出质量,又能增强生成过程的可控性和可解释性。

复杂顺序链(SequentialChain)

当任务逻辑更为复杂,涉及多个输入与输出,且步骤间需要灵活传递不同变量时,​SequentialChain 便成为理想的选择。*** 👉我们可以将其比作一个高度协调的“智能流水线”:它能够接收多种原材料(输入),经由多个专业工位(子链)分步处理,最终产出多种成品(输出)。

from langchain.chains import SequentialChain​

# 链1:市场分析​
analysis_chain = LLMChain(​
    llm=llm,​
    prompt=PromptTemplate(​
        input_variables=["product_idea"],​
        template="分析以下产品的市场需求:{product_idea}"​
    ),​
    output_key="analysis"​
)​
​
# 链2:开发计划​
plan_chain = LLMChain(​
    llm=llm,​
    prompt=PromptTemplate(​
        input_variables=["product_idea", "analysis"],​
        template="基于 {product_idea} 和 {analysis} 制定开发计划"​
    ),​
    output_key="plan"​
)​
​
# 链3:成本估算​
cost_chain = LLMChain(​
    llm=llm,​
    prompt=PromptTemplate(​
        input_variables=["plan"],​
        template="根据 {plan} 估算成本"​
    ),​
    output_key="cost"​
)​
​
# SequentialChain​
sequential_chain = SequentialChain(​
    chains=[analysis_chain, plan_chain, cost_chain],​
    input_variables=["product_idea"],​
    output_variables=["analysis", "plan", "cost"],​
    verbose=True​
)​
​
result = sequential_chain.invoke({"product_idea": "AI 健康管理应用"})​
print(result)

核心机制讲解​

  • 多输入多输出   :与 SimpleSequentialChain不同,SequentialChain允许指定多个 input_variables和 output_variables,每个子链都可以通过 output_key命名其输出,供后续链使用。​
  • 灵活的变量传递   :后续链可以自由选择使用前面任何一个链的输出(或初始输入)作为其输入变量,只需在 prompt 的 input_variables中声明即可。​
  • 结构化结果   :最终返回的是一个字典(dictionary),可以通过 result["market_analysis"]、result["dev_plan"]等方式直接获取每个步骤的结构化输出,极大方便了后续的程序化处理。​

👉 SequentialChain就像一位高级项目协调员   ,它能够:​

  • 分解复杂任务   :将诸如产品规划、市场调研、文章撰写等复杂任务拆解为多个逻辑步骤。​
  • 协调信息流转   :自动管理中间信息,确保每个步骤都能获取所需的上游结果。​
  • 提供全面产出   :最终输出每个关键步骤的结果,形成一个完整的报告或方案,非常适合需要多角度分析或内容生成的自动化场景。

转换链(TransformChain)

LangChain的工作流并不总是需要调用大语言模型。在某些场景中,我们可能只需要对文本进行预处理、清洗或格式化,例如去除多余空格、提取关键信息、正则匹配替换等。这时,TransformChain便提供了轻量且高效的解决方案。​
👉你可以将TransformChain看作一个灵活的“文本加工站”:它接收原始文本(输入),通过自定义的处理函数进行转换,并将加工后的结果(输出)传递给下游任务或其他链使用。

from langchain.chains import TransformChain​
import re​
from typing import Dict​
​


def clean_text(inputs: Dict[str, str]) -> Dict[str, str]:​
    text = inputs["text"]​
    cleaned = re.sub(r'\s+', ' ', text.strip())  # 去掉多余空格​
    return {"cleaned_text": cleaned}​
​
transform_chain = TransformChain(​
    input_variables=["text"],​
    output_variables=["cleaned_text"],​
    transform=clean_text​
)​
​
result = transform_chain.invoke({"text": "这是   一个   测试   文本"})​
print(result["cleaned_text"])

核心机制讲解​

  • 纯函数处理   :TransformChain 的核心是一个自定义的 transform函数,它接收一个包含输入变量的字典,返回一个包含输出变量的字典。整个过程不调用LLM   ,完全在本地执行。​
  • 声明式输入输出   :通过 input_variables和 output_variables明确指定链需要哪些输入以及会产生哪些输出,便于集成到更大的链式工作流中。​
  • 灵活的处理逻辑   :你可以在 transform函数中实现任何文本处理逻辑,例如:​
    • 正则表达式匹配与替换​
    • 文本标准化与格式化​
    • 关键词提取或过滤​
    • 简单的编码转换或长度裁剪​

常见应用场景   ​
TransformChain 非常适合在调用 LLM 前进行数据预处理,或在拿到 LLM 输出后进行结果后处理,例如:​

  • 数据清洗   :去除用户输入或日志文本中的多余空格、特殊字符、敏感信息等。​
  • 格式标准化   :将不同格式的日期、数字或代码片段统一为指定格式。​
  • 信息提取   :使用正则表达式从原始文本中快速提取结构化字段(如电话号码、邮箱),再交由LLM进一步处理。​
  • 结果后处理   :对 LLM 生成的文本进行格式化、截断或添加前后缀。​

👉 它的最大优势在于轻量与可控   ,能够高效、可靠地完成那些不需要AI参与的确定性文本操作任务,是构建健壮、高效AI流水线的重要工具。

路由链

在实际应用中,用户的提问往往涉及多个领域:可能是数学计算、编程问题,也可能是一般知识问答。如果所有问题都使用同一个Prompt进行处理,不仅效果难以保障,也浪费计算资源。​
RouterChain的作用就是根据输入内容自动判断问题类型,并将其路由(分配)到最合适的专家链(ExpertChain)上进行处理** 。你可以将其想象为一个“智能调度中心”或“多路分配器”:先识别问题意图,再定向到对应的专业处理流程。 

from langchain.prompts import PromptTemplate​
from langchain.chains import LLMChain​
from langchain.chains.router import MultiPromptChain​
from langchain.chains.router.llm_router import LLMRouterChain, RouterOutputParser​
from langchain.chains.router.multi_prompt_prompt import MULTI_PROMPT_ROUTER_TEMPLATE​
​
# 定义不同的专门链​
math_template = """你是一个数学专家。请解决以下数学问题:​
{input}​
请提供详细的解题步骤。"""​
​
programming_template = """你是一个编程专家。请帮助解决以下编程问题:​
{input}​
请提供代码示例和详细解释。"""​
​
general_template = """请回答以下问题:​
{input}​
请提供准确和有用的信息。"""​
​# 定义路由的候选 Prompt​


prompt_infos = [​
    {​
        "name": "math",​
        "description": "适合回答数学相关的问题,例如算术、代数、几何",​
        "prompt_template": math_template,​
    },​
    {​
        "name": "programming",​
        "description": "适合回答编程相关的问题,包括Python、算法、调试",​
        "prompt_template": programming_template,​
    },​
    {​
        "name": "general",​
        "description": "适合回答一般常识性问题",​
        "prompt_template": general_template,​
    },​
]​
​
# 创建目标链(destination chains)​
destination_chains = {}​
for p_info in prompt_infos:​
    name = p_info["name"]​
    prompt = PromptTemplate(template=p_info["prompt_template"], input_variables=["input"])​
    destination_chains[name] = LLMChain(llm=llm, prompt=prompt)​
​
# 默认链(如果没有匹配到任何类别)​
default_prompt = PromptTemplate(template=general_template, input_variables=["input"])​
default_chain = LLMChain(llm=llm, prompt=default_prompt)​
​
# 创建路由提示​
destinations = [f"{p['name']}: {p['description']}" for p in prompt_infos]​
router_template = MULTI_PROMPT_ROUTER_TEMPLATE.format(destinations="\n".join(destinations))​
router_prompt = PromptTemplate(​
    template=router_template,​
    input_variables=["input"],​
    output_parser=RouterOutputParser()​
)

# 创建路由链​
router_chain = LLMRouterChain.from_llm(llm, router_prompt)​
​
# 将 RouterChain 与目标链组合成 MultiPromptChain​
chain = MultiPromptChain(​
    router_chain=router_chain,​
    destination_chains=destination_chains,​
    default_chain=default_chain,​
    verbose=True​
)​
​
# 测试不同问题​

test_questions = [​
    "计算 2x + 3 = 7 中 x 的值",​
    "如何在 Python 中实现快速排序算法?",​
    "中国的首都是哪里?"​
]​
​

for question in test_questions:​
    print(f"\n❓ 用户问题: {question}")​
    result = chain.run(question)​
    print(f"🤖 回答: {result}")

运行效果与机制​

  • 数学问题 (如"计算2x+3=7中x的值")会被自动路由到math链,获得详细的数学推导和解题步骤。
  • 编程问题 (如"如何在Python中实现快速排序算法?")会被路由到programming链,得到包含代码示例和解释的专业回答。​
  • 一般性问题 (如"中国的首都是哪里?")会被路由到general链,获得简洁准确的通用回答。​
  • 无法识别的问题 会自动fallback到默认链处理,确保系统鲁棒性。​

🚀 核心优势与应用价值​
RouterChain 通过智能路由机制实现了专业化与自动化的统一:​

  • 精准化处理   :根据不同问题类型自动选择最合适的专家 Prompt,显著提升回答质量和准确性​
  • 极强的可扩展性   :可以轻松添加新的处理分支(如添加"法律问题 → 法律专家"、"医疗咨询 → 医疗专家"等)​
  • 资源优化   :避免为简单问题调用复杂模型,提高响应效率并降低计算成本​
  • 架构清晰   :通过路由机制实现关注点分离,使系统更易于维护和迭代​

典型应用场景  ​

智能客服系统、多领域问答机器人、内容分类与处理管道、自动化工作流分配等。​
通过 RouterChain,您可以构建真正理解用户意图的智能分发系统,让每个问题都能找到最合适的解答者。

WPF用户控件间属性传递的艺术 本文详细介绍了WPF中父控件向子控件传递属性的方法。针对常见的绑定失效问题,重点讲解了使用RelativeSource绑定技术,通过指定AncestorType确保正确访问父控件属性。文章通过实例演示了从ParentModel传递属性到ChildUserControl依赖属性的完整实现过程,包括模型定义、XAML结构设计和代码实现。这种方法有效解决了数据上下文混淆问题,为WPF开发中的控件交互提供了可靠解决方案,有助于提升应用的灵活性和可维护性。 阅读详情

相关推荐

STM32F103RC学习(一)

STM32F103RC学习(一)

Cat_South_North的博客 6058

LangChain最详细教程之Chains

本文系统介绍了LangChain框架中Chains(链)的基本概念和使用方法。主要内容包括:1) Chains的基本概念,即通过组合不同模块化单元构建AI工作流;2) LCEL表达式语言及其基本构成(Prompt+Model+OutputParser);3) Runnable协议的统一调用机制;4) 传统Chain的使用(LLMChain、顺序链等);5) 基于LCEL构建的新型Chains(如create_sql_query_chain和create_stuff_documents_chain)。文章通过

m0_74977182的博客 1853

保姆级教程:在通达信V7.611上配置欧奈尔RPS曲线(附完整公式与每日更新流程)

本文提供通达信V7.611配置欧奈尔RPS曲线的保姆级教程,涵盖从环境准备、基础设置到核心公式配置的全流程。详细讲解如何创建股票池、编写EXTRS基础公式及RPS显示公式,并附每日更新流程与实战应用技巧,帮助投资者精准捕捉强势股。

weixin_30000735的博客 464

LangChain-07链(Chains)机制

LangChain链机制摘要 LangChain的链(Chains)机制如同智能工厂流水线,通过标准化流程串联多个处理步骤,实现复杂任务的自动化处理。核心优势包括:流程标准化、模块化设计、可复用性和可扩展性。 主要链类型: LLMChain:基础链,处理单个LLM调用 SimpleSequentialChain:简单顺序链,仅保留最终输出 SequentialChain:完整顺序链,保留所有中间结果 高级功能如RouterChain可实现多领域路由,根据问题类型自动选择专家模板。链机制解决了传统处理方式的重

d3y1`5 81_09 1086

电源设计之路-Buck电源环路设计(Type IIIA&Type IIIB)

在对Buck 环路补偿Type II拓扑进行仿真测试后,对瞬态波形以及伯德图已经有感官上的认知;然后再进一步对Type IIIA & IIIB进一步的学习;进一步了解Cout电容量和ESR对环路补偿的影响;认识到一个电源,不是参考Datasheet上的参数进行选值就行;更需要根据实际情况,功率电感值、输出电容值以及不同电容会有不一样的ESR,这些都会对环路参数产生一定的影响

2503_92839756的博客 755

硕士论文排版救星:用Mathtype一键搞定所有公式格式(附样式预设文件)

本文详细介绍了如何使用Mathtype的样式预设和批量格式化功能,快速统一硕士论文中的公式格式。通过创建标准样式预设文件和一键批量处理,解决公式字体、大小、间距不统一的问题,确保符合学术规范要求,大幅提升论文排版效率。

weixin_30772105的博客 939

LangChain框架深度解析:对Chains组件的全方位探索与实战案例

Langchain框架的Chains组件,是构建智能对话与任务式应用的关键。本文聚焦Chains,从基础概念到高级应用全面解析。您将了解LLMChain、SequentialChain等类型,它们如何协同工作以处理复杂任务。通过具体案例,展示Chains在文本处理、流程管理、数据变换中的强大能力。同时,探讨RouterChain的智能路由决策与TransformChain的数据处理能力,以及文档处理链在信息处理中的独特价值。此外,介绍如何自定义链,满足个性化需求。LLMChain。

啊猪是的读来过倒的博客 3455

[HBM] RAM Cell Self Repair | 内存单元自我修复

对抗错误的大都是冗余,内存颗粒在设计的时候也考虑增加冗余。具体的说:添加冗余或备用的存储单元行和列,及时将测试中的故障进行修复和替换,存储器修复包括行修复,列修复或两者的组合。

串起点滴 785

LangChain 基础系列之 Chains 链的核心逻辑与实战应用

Chains 不仅是流程编排工具,更是构建智能应用的方法论。掌握Chain的核心在于理解:如何将业务逻辑拆解为可组合的单元如何设计健壮的状态传递机制如何利用社区成熟链实现(如。

哆啦A梦的百宝袋的博客 4168

Cadence OrCAD Capture软件启动过程卡死且无法恢复的解决方法

如下图所示Cadence OrCAD Capture软件在启动后出现卡死的现象,且等待后无法自动恢复,需要强行关闭,再次启动依然卡死。

fydar的博客 4044

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2527

【LangChain专栏】LangChain模块中Chains 链的使用

在基于大语言模型开发复杂AI应用时,单一的模型调用、提示词模板往往无法满足实际业务需求,而LangChain中的Chains(链) 正是为解决这一问题而生的核心能力。Chains通过将提示模板、LLM模型、输出解析器、记忆、工具等模块化组件串联/组合,形成可复用的AI工作流,让开发者能够轻松实现比单一组件更强大的功能。

发现问题,面对问题,分析问题,解决问题,总结问题 916

【前端圭臬】二:你知道的和不知道的 HTML

关于 HTML,说几个你可能不太关注的问题。

Evan 的博客 4758

LangChain-链 (Chains)

在LangChain中,链提供了将各个组件组合成端到端应用的方法。顺序执行多个组件:按特定顺序处理数据组合不同功能:整合模型调用、数据检索、输出处理等创建复杂工作流:实现条件逻辑、循环和分支复用常见模式:使用预定义链快速实现常见功能LangChain表达式语言(LCEL):新的声明式API(推荐)传统链类:基于类的旧APILangChain提供了多种预定义链用于常见任务。链是LangChain的核心概念,提供了组合各种组件构建复杂应用的能力。

1.大规模企业集群服务开发和服务架构设计,性能优化等经验。 2.企业级数据仓库0-1落地经验。 1311

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LangChain手记 Chains

传入两个构建好的LLM Chain即可构建一个顺序链,第一个LLM Chain的输出是第二个LLM Chain的输入,同样也可以指定。的形式指定来实现的,写python的朋友估计已经习以为常了,其他语言的小伙伴可能需要点时间思考。顺序链是另外一种类型的链,它的基本思想是以一个链的输出是下一个链的输入这种方式组合的多个链。视频可能看不太清楚,整条链的输入输出的依赖关系是依靠每一个子链都设置一个。直译链,表达的意思更像是对话链,对话链的背后是思维链。,即可得到一个LLMChain对象,该对象的。

Steve Wang's blog 1945

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LangChain实战快速入门笔记(三)--LangChain使用之Chains

记得关注么么哒。

weixin_43665177的博客 1001

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大模型开发--文搞懂LangChain(五):Chains

本文将从Chains的本质、Chains的原理、Chains的应用三个方面,带您一文搞懂 LangChain(五):Chains。

qingkahui24689的博客 2200

LangChain之Chains(链)

摘要: Chain是LangChain框架的核心组件,通过组合LLM、记忆系统等模块实现复杂任务处理。主要特性包括可组合性(支持嵌套调用)、状态保持(通过Memory维护对话上下文)和工具集成(调用外部API)。其局限性在于线性/分支结构(DAG模型)和状态独立性,适用于无状态顺序化流程。基础链如LLMChain结合Prompt模板与LLM,支持多种调用方式(invoke、predict、apply等),示例展示了带记忆的问答系统实现。对于动态路径或循环场景,建议使用langGraph扩展功能。 (字数:1

thinking-fish的博客 1287

【LangChain第3章】LangChain使用之Chains

本文系统介绍了LangChain中Chain的基本概念和使用方法。主要内容包括: Chain的基本概念:通过组合提示模板、LLM模型、记忆等组件构建可复用的AI工作流,完成复杂任务。 LCEL(LangChain表达式语言):使用Python管道操作符(|)连接组件的声明式方法,简化AI应用开发。基本构成包括提示(Prompt)+模型(Model)+输出解析器(OutputParser)。 Runnable协议:统一LCEL组件的调用方式(invoke/batch/stream),解决传统方法调用不一致的问

春天的波菜 1183

LangChain 1.3 完全教程:从入门到精通 - Part 6: Chains(链)做好软件测试你要学习这些

链(Chain)是将多个组件按顺序组合在一起的处理管道。在 LangChain 1.x 中,链主要通过 LCEL 的管道操作符。:本教程涵盖了 LangChain 的核心基础(Part 1-6)。Chains 链的类型。

lw的博客 776

LangChain-05-Chains(链)

LangChain的链(Chains)是构建复杂应用程序的核心组件,它们允许我们将多个处理步骤组合成一个连贯的工作流。从简单的LLMChain到复杂的SequentialChain,再到现代的LCEL表达式语言,LangChain提供了多种方式来构建和组合链。 最佳实践 优先使用LCEL:对于新项目,推荐使用LCEL风格的链,它们更加灵活和强大 合理选择链类型:根据任务需求选择合适的链类型,不要过度设计 利用预置链:充分利用LangChain提供的预置链,减少重复工作 注意性能:对于大规模应用,考虑使用异步

d3y1`5 81_09 582

大模型面试准备(六):一文搞懂 LangChain 的链 Chains 模块

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。本文将从Chains的本质、Chains的原理、Chains的应用三个方面,带您一文搞懂 LangChain 的链 Chains。

2401_84033492的博客 1752

【LangChain|Day03】LangChain 链式调用 Chains 笔记

本博客是 LangChain 的 | 管道 Chain笔记,核心是掌握两条条件:组件必须是 Runnable 子类,且上游输出类型必须与下游输入匹配。本文从 Prompt 出发,逐一剖析 StringPromptValue 和 ChatPromptValue 的区别,详解 Model 的输入多态与 AIMessage 的内部结构。进而引出 StrOutputParser 和 JsonOutputParser 如何把模型输出转换为下游所需格式,最后介绍 RunnableLambda 如何让自定义函数灵活入链。

m0_73999950的博客 743

学习路程九 langchain核心组件 Chains

大模型链,序列链,路由链的简单了解使用。

分享各种测试中的用到的内容,一起学习 1037

【LangChain】Chapter3 - Chains

本节介绍了三种常见的 Chain。通过 Chain 的使用,我们可以使用 prompt 跟 LLM 产生更丰富的功能,以使 LLM 能更加精确的回答我们的问题。

AustinCyy的博客 1303

「LangChain 学习笔记」LangChain大模型应用开发:模型链(Chains)

本文介绍了LangChain中的链(Chains)概念及其应用。链通过将大语言模型(LLM)与提示(Prompt)结合,实现对文本或数据的系列操作。内容包括:1)大语言模型链(LLMChain)的基础用法,虽已弃用但可通过管道符"|"替代;2)简单顺序链的实现,通过串联多个链逐步处理输入;3)多输入/输出顺序链使用RunnableSequence构建复杂流程;4)路由链(RouterChain)可根据输入类型动态选择处理链。文章提供了各类链的代码示例,包括品牌命名、餐厅推荐和学科问题解答

m0_59167353的博客 829
上一篇: 告别数据可视化难题!Dify图表插件6版迭代终成神器!
下一篇: 【每天一个小笔记】04 LangChain的LCEL
凸凹恼
博客等级 码龄5年 5粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值