langchain快速入门:基本组件介绍和快速搭建服务

LangChain入门1-基本介绍 langchain 基本介绍 阅读详情

langchain快速入门:基本组件介绍和快速搭建服务

1. 模型组件

load_dotenv()
llm = ChatOpenAI(
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url=os.getenv("BASE_URL"),
            model=os.getenv("LLM_MODEL"),
            temperature=0.1,
        )

text ="你是谁?"
messages = [HumanMessage(content = text)]
if __name__ =="__main__":
    # LLM模型组件:输入为字符串
    # print(llm.invoke(text))
    # CHAT MODEL模型组件
    print(llm.invoke(messages))

LangChain 将大语言模型抽象为两种调用方式:

  • LLM 接口:接受纯字符串输入,适合简单文本生成场景。底层调用的是模型的 completion 端点。
  • Chat Model 接口:接受结构化消息列表(SystemMessage / HumanMessage / AIMessage),更适合对话场景。底层调用的是模型的 chat.completion 端点。

💡 选型建议:现代模型(GPT-4、通义千问、Claude 等)普遍基于 Chat API 设计,建议优先使用 ChatOpenAI 而非 legacy 的 LLM 类。


2. 提示词模板组件

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from langchain_core.prompts import PromptTemplate
from langchain_core.prompts import ChatPromptTemplate
load_dotenv()
llm = ChatOpenAI(
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url=os.getenv("BASE_URL"),
            model=os.getenv("LLM_MODEL"),
            temperature=0.1,
        )
#自动将用户的输入转换为完整的格式化提示词
prompt =  PromptTemplate.from_template("猫得了{disease}怎么办?")
prompt_1=prompt.format(disease = "拉肚子")
#细化每条消息的具体消息,比如角色和列表中的位置
template ="你是一个宠物医疗AI助手"
human_template = "我的宠物{pet_type}名为{name},出现{symptoms}"
chat_prompt = ChatPromptTemplate.from_messages([
    ("system",template),
    ("human",human_template),
])
prompt_2 = chat_prompt.format_messages(pet_type = "猫",name="臭臭", symptoms = "牙结石")
if __name__ =="__main__":
    print("*"*50)
    print(llm.invoke(prompt_1))
    print("*" * 50)
    print(llm.invoke(prompt_2))

LangChain 提供了两种提示词模板,分别对应不同的交互模式:

模板类型适用场景特点
PromptTemplate单轮指令/文本生成字符串模板,通过 .format() 注入变量,输出为字符串
ChatPromptTemplate多轮对话/角色扮演消息列表模板,支持 system/human/ai 角色定义,输出为消息对象列表

关键区别:

  • PromptTemplate 解决的是**“如何优雅地拼接字符串”**——避免在代码里硬编码大量提示词文本。
  • ChatPromptTemplate 解决的是**“如何结构化地管理对话上下文”**——通过角色标签让模型明确区分系统指令和用户输入,显著提升指令遵循的稳定性。

3. 输出解析器组件 / 使用 LCEL 进行组合

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import BaseOutputParser
from typing import List
load_dotenv()
llm = ChatOpenAI(
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url=os.getenv("BASE_URL"),
            model=os.getenv("LLM_MODEL"),
            temperature=0.1,
        )
class CommaSeperatedListOutputParser(BaseOutputParser[List[str]]):
    def parse(self, text:str)-> List[str]:
        return text.strip().split(",")

template ="""
你是一个智能ai医疗助手,用户会传入一个宠物的症状,你应该生成该症状下的3种药品(中文名),并以英文逗号分分隔的形式返回.
只返回以逗号分隔的内容,不要返回其他内容。
"""
human_template = "{text}"

chat_prompt = ChatPromptTemplate.from_messages([
    ("system", template),
    ("human",human_template)
])

if __name__ =="__main__":
    chain = chat_prompt | llm | CommaSeperatedListOutputParser()
    print("*"*50)
    print(chain.invoke({"text":"猫咪软便"}))
    print("*" * 50)

LCEL(LangChain Expression Language)是 LangChain 的管道编排语法,用 | 运算符将组件串联成可执行的数据流。

本例的数据流转过程:

用户输入 {"text": "猫咪软便"}
    ↓
chat_prompt 渲染为结构化消息 → [SystemMessage, HumanMessage]
    ↓
llm 调用模型生成文本 → "蒙脱石散,益生菌,克痢肽"
    ↓
CommaSeperatedListOutputParser 解析 → ["蒙脱石散", "益生菌", "克痢肽"]

为什么要自定义输出解析器?

模型本质上输出的是非结构化文本。输出解析器的作用是将文本转换为结构化数据(如列表、字典、Pydantic 对象),方便下游程序直接消费。这是构建可靠 AI 应用的关键环节——"提示词要求模型按格式输出"只是软性约束,解析器则提供了硬性的数据校验和转换。


4. 使用 LangSmith 观测

LangSmith 观测界面

LangSmith 是 LangChain 官方提供的 LLM 应用可观测性平台,核心价值在于解决大模型应用的"黑盒"问题:

  • Trace 追踪:可视化展示 Chain 中每一步的输入输出、Token 消耗、延迟耗时
  • 调试排错:当输出不符合预期时,可逐层检查是提示词渲染错误、模型理解偏差还是解析器逻辑问题
  • 数据沉淀:自动收集生产环境的调用记录,为后续迭代提供高质量的标注数据

配置方式:在环境变量中设置 LANGCHAIN_API_KEY 和 LANGCHAIN_PROJECT,无需修改代码即可自动接入。


5. 使用 LangServe 提供服务

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import BaseOutputParser
from typing import List
from langserve import add_routes
from fastapi import FastAPI
load_dotenv()
llm = ChatOpenAI(
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url=os.getenv("BASE_URL"),
            model=os.getenv("LLM_MODEL"),
            temperature=0.1,
        )
class CommaSeperatedListOutputParser(BaseOutputParser[List[str]]):
    def parse(self, text:str)-> List[str]:
        return text.strip().split(",")

template ="""
你是一个智能ai医疗助手,用户会传入一个宠物的症状,你应该生成该症状下的3种药品(中文名),并以英文逗号分分隔的形式返回.
只返回以逗号分隔的内容,不要返回其他内容。
"""
human_template = "{text}"

chat_prompt = ChatPromptTemplate.from_messages([
    ("system", template),
    ("human",human_template)
])

app = FastAPI(
    title = "宠物医疗助手v1",
    version = "0.0.1",
    description = "Langchain应用接口"
)
first_chain = chat_prompt | llm | CommaSeperatedListOutputParser()
add_routes(app,first_chain,path = "/first_app")
if __name__ =="__main__":
    import uvicorn
    uvicorn.run(app,host="localhost",port=8000)

LangServe 是 LangChain 的部署工具,核心能力是将 LCEL Chain 一键转换为 FastAPI 服务。

它自动完成以下工作:

能力说明
路由注册将 Chain.invoke 映射为 HTTP POST 接口
输入校验基于 Chain 的输入 Schema 自动生成 Pydantic 校验
文档生成自动生成 OpenAPI 文档和交互式 Playground
流式支持原生支持 stream / astream 等异步流式接口

访问路径:

  • API 端点:POST http://localhost:8000/first_app/invoke
  • 调试界面:http://localhost:8000/first_app/playground/

Playground 调试界面

⚠️ 注意:add_routes 会自动暴露 invoke、batch、stream 等多个端点,生产环境建议通过 enable_feedback_endpoint 等配置进行访问控制。


好了,以下就是今天介绍的所有内容,本文仅仅简单介绍了基本组件介绍和快速搭建服务

极客LangChain实战课之 LangChain系统安装和快速入门 大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模式。你可以将大语言模型想象成一个巨大的预测机器,其训练过程主要基于“猜词”:给定一段文本的开头,它的任务就是预测下一个词是什么。模型会根据大量的训练数据(例如在互联网上爬取的文本),试图理解词语和词组在语言中的用法和含义,以及它们如何组合形成意义。它会通过不断地学习和调整参数,使得自己的预测越来越准确。 阅读详情

相关推荐

[快速搭建LangChain API服务:使用LangServe和FastAPI]

LangServe帮助开发者将LangChain的可运行对象和链部署为REST API。这一库整合了FastAPI,并使用Pydantic进行数据验证。此外,它还提供了一个客户端,方便调用部署在服务器上的可运行对象。本文介绍了如何使用LangServe快速搭建一个LangChain API服务,并讨论了常见问题及其解决方案。FastAPI文档LangChain文档Pydantic文档。

bhawfgrcbtwny的博客 1703

LangChain系列使用指南:LangChain快速入门

我们仅涉及了提示、模型和输出解析器的基础知识 - 要深入了解这里提到的所有内容,请参阅文档的此部分。我们只是简单介绍了检索的基础知识 - 想要深入了解这里提到的所有内容,请参阅文档的这一部分。我们只是简单介绍了代理的基础知识 - 想要深入了解这里提到的所有内容,请参阅文档的这一部分。我们将展示如何使用通过 API 提供的模型,如 OpenAI,以及本地开源模型,使用像 Ollama 这样的集成。这个链将接收一个问题,查找相关文档,然后将这些文档连同原始问题传递给一个 LLM,并要求它回答原始问题。

数智笔记 7423

初识LangChain的快速入门指南

LangServe可以帮助开发人员将LangChain应用程序部署为REST API。使用LangChain时不是必定使用LangServe。安装langservepython复制代码pip install "langserve[all]"

2401_84495725的博客 1278

LangChain的快速入门指南

LangChain是一个用于构建语言模型应用程序的框架,提供了模块化和灵活的工具集。它可以帮助开发者将语言模型嵌入到应用程序中,实现从简单的对话机器人到复杂的知识管理系统等多种应用。

penggerhe的博客 1586

[精选LangChain教程视频推荐:快速入门到项目实战]

随着生成式AI技术的快速发展,LangChain已成为开发者探索大语言模型(LLM)实际应用的热门工具。如果你正在寻找优质的LangChain教程来快速上手或者深入学习,以下是基于YouTube精选的高质量教程列表。这些视频内容丰富、覆盖面广,并且都拥有超过40K的观看量,适合从零基础到进阶用户。

fgayif的博客 1732

LangChain入门:快速搭建AI Agent应用

LangChain入门:快速搭建AI Agent应用

layneyao的博客 1549

Langchain 快速入门

【摘要】LangChain是哈佛大学Harrison Chase于2022年推出的开源框架,旨在简化基于大语言模型的AI应用开发。本文系统介绍了其核心架构和实战应用: 框架解析 六大核心组件:模型I/O、数据连接、记忆系统、架构封装(Chain/Agent)、回调机制 特色功能:模型集成、工具连接、记忆存储、模块化设计 配套工具:LangServe(API部署)、LangSmith(调试监控) 关键技术 文档处理:支持PDF等格式加载,提供文本分割/嵌入/检索全流程工具 智能代理:支持7种Agent类型,实

AI全栈 和 IT 编程相关分享 2250

Langchain快速入门与底层原理

大模型应用开发框架langchain入门及底层原理

wyw0000的博客 1103

通过类比,十分钟掌握LangChain的快速入门,从入门到精通,只看这一篇!!!

在这种情况下,提示不仅包含有关内容的信息,还包含每个消息(其角色、其在列表中的位置等) 在这里,最常见的是ChatPromptTemplate是ChatMessageTemplate的列表。该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。通常,它们会将用户输入添加到一个更大的文本片段中,称为提示模板,该模板提供了有关特定任务的附加上下文。

python122_的博客 1665

使用Runhouse和LangChain快速搭建自托管LLM服务

近年来,大型语言模型(LLM)如GPT系列模型的应用场景越来越广泛。然而,许多开发者希望能够自托管这些模型,以更好地控制成本、安全性和性能。Runhouse提供了一套工具,让用户可以轻松地连接本地或云端GPU资源,并与LangChain集成,快速搭建自托管的LLM服务。使用LangChain的PromptTemplate构建一个简单的提示模板,并加载Hugging Face模型。# 定义Prompt模板# 加载Hugging Face模型 (如 GPT-2)

Shell726的博客 1076

Win10 + Linux 双系统删除(Linux)

删除Linux所使用的磁盘分区 进入此电脑->计算机->管理->磁盘管理

weixin_52247624的博客 944

LangChain 介绍及相关组件使用总结

`LangChain` 是一个由语言模型`LLMs`驱动的应用程序框架,它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 `OpenAI` 的 `ChatGPT` 模型以及 `Hugging Face` 集成。通过 `langChain` 可快速构建聊天机器人、生成式问答(`GQA`)、本文摘要等应用场景。

小毕超博客 1万+

告别Selenium!纯Python+Requests搞定微信视频号登录Cookie(附完整代码与避坑指南)

本文详细介绍了如何利用纯Python和Requests库实现微信视频号的自动化登录,替代传统的Selenium方案。通过解析HTTP请求交互流程,提供完整的代码实现和避坑指南,显著提升爬虫效率和隐蔽性,适用于轻量化爬虫开发。

weixin_30642561的博客 312

06.LangChain的介绍和入门

LangChain是由Harrison Chase于2022年10月创建的LLM应用开发框架,旨在简化大语言模型的应用开发。它提供了统一的接口连接各类大模型(如GPT、文心一言等),并包含六大核心组件:模型集成、提示管理、记忆功能、索引处理、链式调用和智能代理。框架支持Python和Node.js实现,能实现文档问答、聊天机器人等多种应用场景。通过组件组合,开发者可以快速构建复杂AI应用,如基于文档的问答系统和个人助手等,显著降低了LLM应用开发门槛。

A5522000的博客 1276

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6618

Python自动化车载测试:5分钟搞定CANoe COM接口调用(附完整代码)

本文详细介绍了如何使用Python快速实现CANoe COM接口调用,完成车载测试自动化。通过实战案例展示ECU信号测试框架搭建,包括环境配置、核心架构解析、信号读写封装及多线程安全方案,帮助开发者5分钟内掌握高效测试技巧。

vv45678的博客 1133

LangChain - 01 - 快速开始

parso: Parso 是一个用于解析 Python 代码的库,提供了对 Python 代码进行语法分析和语义分析的功能,常用于代码编辑器和 IDE 中的代码分析和自动补全。pure-eval: Pure-Eval 是一个用于在 Python 中执行代码的库,可以安全地执行用户提供的代码,并提供了一些安全措施来防止恶意代码的执行。python-dateutil: Python-Dateutil 是一个用于处理日期和时间的库,提供了一些方便的函数和方法来解析、格式化和操作日期时间对象。

浪漫韫秋 4504

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

【InternLM】基于InternLM和LangChain从0开始搭建你的知识库【完全攻略】【LangChain和向量数据库的详细介绍】

这一篇文章的主要内容是LangChain介绍、向量数据库介绍以及基于InternLM和LangChain从0开始搭建你的知识库实践!

艰难困苦,玉汝于成。 3886

YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析

(0, 1), (0, 2), (1, 3), (2, 4), # 脖子和头部(3, 5), (5, 6), (5, 7), (7, 9), (5,11),# 左臂(4,6), (6, 12), (6,8) ,(8,10),# 右臂(11, 12), (11, 13), (13, 15), #左腿(12, 14), (14, 16) #右腿keypoints是检测到的人体关键点数据,frame是图像帧,boxes是检测到的边界框信息。定义了人体关键点之间的连接关系,用于绘制人体骨架。

yolo模型训练找我,AI游戏合作找我 2313

ATE Pin Electronics电路学习总结

PinElectronics(PE)是ATE测试机的核心模拟前端电路,负责ATE与芯片间的信号转换与交互。主要包含四大功能模块:Driver实现逻辑信号到模拟电平的转换(VIH/VIL可编程);Receiver对DUT输出进行采样比较(VOH/VOL判定);ActiveLoad施加可编程电流负载;PPMU进行精密电压/电流测量。PE的性能直接影响功能测试和直流参数测试的精度,需定期校准维护。关键参数包括:Driver电压精度(±5mV)、Receiver比较精度(±10-50mV)、PPMU测量精度(±1-

歌颂苦难的行为是无耻的; 467

LangChain快速入门,收藏这一篇就够了!

这是一个相当多的内容要涵盖!让我们开始吧。

z551646的博客 1456

一次把 PRIV mode 讲透:从 ABAP 内存分配链路到定位与治理

ABAP系统进入PRIV模式的本质是Extended Memory耗尽时转向Heap内存的应急机制。该现象会导致工作进程被独占,系统吞吐量下降。触发条件包括系统EM资源池耗尽或单个用户超过配额阈值。关键参数em/address_space_MB和ztta/roll_extension需协同调整。典型症状包括SM50显示PRIV状态、响应延迟和内存dump。治理需双管齐下:系统侧合理配置内存参数,代码侧优化内存使用模式,如分页处理、减少大内表操作和下推聚合逻辑。PRIV模式应作为异常信号而非常态目标,健康系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 203
上一篇: Learn-Claude-Code学习s02:TOOLs使用介绍
下一篇: Claude Code SKILLS编写最佳实践:从零打造高可用 AI 助手
BrianLBR
博客等级 码龄6年 33粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值