当前位置: 首页 > article >正文

大模型:LangChain技术讲解

一、什么是LangChain

1、介绍

LangChain是一个用于开发由大型语言模型提供支持的Python框架。它提供了一系列工具和组件,帮助我们将语言模型集成到自己的应用程序中。
有了它之后,我们可以更轻松地实现对话系统、文本生成、文本分类、问答系统等功能。

2、LangChain官网文档

官网:https://python.langchain.com/docs/introduction/

3、LangChain的核心组件

  • 语言模型(Model):如OpenAI的GPT-3。
  • 提示管理(Prompt):Prompt管理。
  • 链(chain):允许将多个组件(如语言模型、提示模板、记忆等)串联起来,形成一个工作流。
  • 记忆(Memory):记忆模块用于保存对话历史或上下文信息,以便在后续对话中使用。
  • 代理(Agent):代理是一种智能组件,可以根据用户的输入自动选择和执行不同的操作。
  • 工具(Tool):工具是一些内置的功能模块,如文本处理工具、数据查询工具等。

二、语言模型

1、介绍

把不同的模型,统一封装成一个接口,方便更换模型而不用重构代码。以下是使用语言模型从输入到输出的基本流程:
在这里插入图片描述
一下是对每一块的总结:

  • Format(格式化):将原始数据格式化成模型可以处理的形式,插入到一个模版问题中,然后送入模型进行处理。
  • Predict(预测):接受被送进来的问题,然后基于这个问题进行预测或生成回答。
  • parse(生成):预测输出被进一步格式化成一个结构化的JSON对象。

2、单轮对话

3、多轮对话

# 1、创建模型
from langchain_core.messages import SystemMessage, HumanMessage, AIMessage
from langchain_ollama import ChatOllama

ollama = ChatOllama(base_url='http://localhost:11434', model="qwen2")

messages = [
    SystemMessage(content="你是langchain的课程助理。"),
    HumanMessage(content="我是学员,我叫 Tom"),
    AIMessage(content="欢迎"), # 提前模拟场景,为后续交互做准备
    HumanMessage("我是谁,你是谁")
]

print(ollama.invoke(messages).content)

通过这种方式,我们可以:

  • 测试AI模型在特定上下文下的表现。
  • 确保AI模型能够正确理解并响应用户的输入。
  • 调整和优化对话流程,以便在实际应用中提供更好的用户体验。

三、格式化输出

1、OutputParser

CSV parser当您想要返回以逗号分隔的项目列表时,可以使用此输出解析器。

from langchain_core.output_parsers import CommaSeparatedListOutputParser

output_parser = CommaSeparatedListOutputParser()
# 返回一些指令或模版,这些指令告诉系统如何解析或格式化输出数据
print(output_parser.get_format_instructions())

# 输入的字符串按照特定的规则进行解析和转换
reply = 'foo,bar,baz'
print(output_parser.parse(reply))

在这里插入图片描述

2、Datetime parser

3、Pydantic OutputParser


http://www.kler.cn/a/514981.html

相关文章:

  • stm32单片机个人学习笔记14(USART串口数据包)
  • C# 网络协议第三方库Protobuf的使用
  • 【系统环境丢失恢复】如何恢复和重建 Ubuntu 中的 .bashrc 文件
  • C++priority_queue模拟实现
  • 第14章:Python TDD应对货币类开发变化(一)
  • 电梯系统的UML文档07
  • Linux 离线安装php+nginx+ftp
  • ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)
  • 【Elasticsearch】index.mapping.source.mode
  • 语义分割文献阅读-SegNet:一种用于图像分割的深度卷积编码器-解码器架构(1.13-1.19)
  • 计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫
  • 蓝桥杯真题 - 翻转 - 题解
  • 如何用Python和Dash打造一个智能股票筛选与可视化系统
  • 关于六通道串口服务器详细讲解
  • 手写SOCKET进行HTTP通信
  • 【云网】云网络基础概念(华为云)
  • 大模型 | AI驱动的数据分析:利用自然语言实现数据查询到可视化呈现
  • 基于STM32的智能空气质量监测与净化系统设计
  • 如何将办公室固定电话设置呼叫转接(或呼叫转移)到手机 -远程高效办公
  • DeepSeek R1发布综述:开源大语言模型的推理能力新标杆
  • Docker核心命令与Yocto项目的高效应用
  • Sklearn机器学习第十五天|机器学习算法原理
  • rocketmq-product-DefaultMQProducer启动流程
  • Dify:低代码 AI 应用开发平台详解与实战指南
  • 【氮化镓】集成ESD提高GaN HEMT稳定性
  • 在elasticsearch中,document数据的写入流程如何?