ITPub博客

首页 > 人工智能 > 人工智能 > LangChain框架的输入输出

LangChain框架的输入输出

原创 人工智能 作者:brucexia 时间:2025-12-22 07:56:18 0 删除 编辑

LangChain 框架的输入输出(I/O )流程是一个标准化的数据处理管道,主要由提示、语言模型和输出解析器三个核心组件构成,它们协同工作实现与语言模型的交互。

提示

提示(Prompt )是向语言模型提供的输入文本,用于引导模型生成特定类型的回答。LangChain 提供了多种提示模板,让你可以动态地构建提示。提示的关键特性包括模板化和多类型支持。

(1 )模板化:使用PromptTemplate 将用户输入(如变量)动态嵌入预定义的文本模板(如“解释{term} 的概念”)。

(2 )多类型支持:包括少量示例提示(FewShotPromptTemplate )和对话提示(ChatPromptTemplate )等。

【示例 8.1 】 提示。

from langchain.prompts import PromptTemplate

# 创建一个提示模板

prompt = PromptTemplate(

    input _ variables=["topic"],

    template=" 请简要解释一下 {topic} 的基本概念。 "

)

# 格式化提示

formatted _ prompt = prompt.format(topic=" 量子计算 ")

print(formatted _ prompt)  # 输出 : " 请简要解释一下量子计算的基本概念。 "

输出:

请简要解释一下量子计算的基本概念。

语言模型

LangChain 支持多种语言模型(Language Model ),包括OpenAI 、Hugging Face 等。你可以直接调用这些模型来处理提示并生成回答。语言模型接收提示并生成文本输出,主要分为大语言模型(LLM )和聊天模型(Chat Model )。

(1 )大语言模型:如OpenAI 的text-davinci-003 ,生成非结构化文本。

(2 )聊天模型:如GPT-3.5-Turbo ,专为多轮对话设计,输入/ 输出为结构化消息(HumanMessage 、AIMessage )。

【示例 8.2 】 语言模型Qwen+LangChain 。

from modelscope import AutoModelForCausalLM, AutoTokenizer

from langchain.prompts import PromptTemplate

import os

 

# 设置镜像和缓存路径

#os.environ['MODELSCOPE _ CACHE'] = './model _ cache' # 直接使用示例 2.1 下载的模型 Qwen3-1.7B

os.environ['MODELSCOPE _ MIRROR'] = 'https://www.modelscope.cn'

 

# 创建提示模板

prompt = PromptTemplate(

    input _ variables=["topic"],

    template=" 请简要解释一下 {topic} 的基本概念。 "

)

 

formatted _ prompt = prompt.format(topic=" 量子计算 ")

print(formatted _ prompt)

 

try:

    # 尝试初始化模型

    model _ id = "qwen/Qwen3-1.7B"

    tokenizer = AutoTokenizer.from _ pretrained(model _ id, trust _ remote _ code=True)

    model = AutoModelForCausalLM.from _ pretrained(model _ id, device _ map="auto", trust _ remote _ code=True)

 

    # 生成回答

    inputs = tokenizer(formatted _ prompt, return _ tensors="pt").to("cuda")

    outputs = model.generate(**inputs, max _ new _ tokens=200)

    response = tokenizer.decode(outputs[0], skip _ special _ tokens=True)

 

    print(response)

 

except Exception as e:

    print(f" 加载模型时出错 : {e}")

    print(" 请检查网络连接或尝试使用离线模式 ")

输出:

请简要解释一下量子计算的基本概念。

量子计算是一种基于量子力学原理进行信息处理的计算方式。与传统计算机使用二进制位( 0 和 1 )不同,量子计算使用量子比特( qubit ),它可以处于 0 、 1 的叠加态,并且多个量子比特之间可以形成纠缠关系。这使得量子计算机在解决某些特定问题(如大数分解、数据库搜索、量子模拟等)时,能够展现出远超传统计算机的计算能力,有望在密码学、材料科学、人工智能等领域带来革命性突破。


输出解析器

输出解析器(Output Parser )用于处理语言模型的输出,将其转换为结构化的数据(如JSON 、列表等)。因此,它在需要特定格式回答的场景中特别有用。输出解析器的常用类型包括:

(1 )结构化解析器:强制输出为指定格式(如PydanticOutputParser )。

(2 )列表解析器:拆分逗号分隔的字符串为列表(CommaSeparatedListOutputParser )。

(3 )重试解析器:自动修复格式错误的输出。

【示例 8.3 】 输出解析器。

from langchain.output _ parsers import CommaSeparatedListOutputParser

 

# 初始化输出解析器

output _ parser = CommaSeparatedListOutputParser()

 

# 假设模型输出是一个逗号分隔的列表

model _ output = " 人工智能 , 机器学习 , 深度学习 "

 

# 解析输出

parsed _ output = output _ parser.parse(model _ output)

print(parsed _ output)  # 输出 : [' 人工智能 ', ' 机器学习 ', ' 深度学习 ']

输出:

[' 人工智能 ', ' 机器学习 ', ' 深度学习 ']


本文节选自《AI Agent智能体开发实践》,获出版社和作者授权发布。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841117/viewspace-3105821/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: LangChain框架简介
下一篇: LangChain框架的链
请登录后发表评论 登录
全部评论

注册时间:2022-02-14

  • 博文量
    219
  • 访问量
    196279