AI Agent从无到有18:LangChain 开发环境搭建与首条链的运行

LangChain Agent集成MCP与Skills:构建可调用外部工具的AI智能体 在AI应用开发领域,大语言模型(LLM)的推理和规划能力是其核心优势,但要让AI真正解决实际问题,必须使其能够安全、可靠地调用外部工具和系统。这涉及到工具调用(Tool Calling)这一关键技术,它允许AI模型根据用户指令,动态选择并执行预定义的工具函数,从而突破纯文本交互的限制,实现对数据库、文件系统、API等外部资源的操作。其技术价值在于将大模型的通用认知能力与专用工具的执行能力相结合,构建出功能强大的AI智能体(AI Agent)。这种架构在自动化工作流、智能数据分析助手、企业级知识问答与操作等场 阅读详情

纲要

  • 环境要求
    • Python 版本要求与系统兼容性
    • 开发工具选型:VSCode 与 Jupyter 插件
  • 虚拟环境管理
    • venv 的核心作用与最佳实践
    • 虚拟环境的创建、激活与项目隔离
  • 开发工具链
    • Jupyter Notebook 的定位与安装
    • VSCode 中 .ipynb 的交互式开发体验
  • LangChain 安装
    • pip 安装 langchain 及其生态子包
    • 0.3 版本之后的包结构拆分与选型
  • 配置与第一个程序
    • 使用 .env 文件管理敏感配置
    • 调用 ChatOpenAI 构建首个对话链
    • 完整可运行的脚本示例
  • 常见问题与解决方案
    • 依赖冲突、认证错误与网络代理

环境要求

任何 AI Agent 项目的技术落地,均始于标准且可复现的开发环境。LangChain 官方提供 Python 与 TypeScript 双语言支持,本文聚焦 Python 生态,环境基线如下:

  • Python:要求 3.12.1 或更高版本(向下兼容至 3.8,但推荐使用最新稳定版)
  • 操作系统:Windows、macOS、Linux 均可,本文示例已在 macOS 与 Windows 环境下验证
  • 集成开发环境:VSCode,配合官方 Jupyter 插件可提供单元格级交互能力

Python 作为动态类型语言,其解释执行特性与丰富的科学计算生态,使其成为 AI 与数据处理领域的事实标准。安装时请访问 python.org 下载对应系统版本,并务必勾选“Add Python to PATH”以确保命令行全局可用。

虚拟环境管理

在实际开发中,多项目并行时极易因依赖版本冲突导致运行时异常。Python 3.3 之后内置的 venv 模块为项目级隔离提供了官方标准方案。其核心优势在于:

  • 依赖隔离:每个项目拥有独立的 site-packages,避免全局污染
  • 版本锁定:配合 requirements.txt 实现依赖的精确复现
  • 权限安全:无需管理员权限即可安装包

初始化项目并创建虚拟环境:

mkdir langchain-hello && cd langchain-hello
python -m venv .venv

激活虚拟环境(根据操作系统选择):

  • macOS / Linux:
    source .venv/bin/activate
    
  • Windows (Command Prompt):
    .venv\Scripts\activate
    

激活成功后,终端提示符前缀将出现 (.venv),表明当前 pip 操作已重定向至隔离环境。推荐的项目结构如下:

langchain-hello/
├── .venv/               # 虚拟环境目录(不应提交至版本控制)
├── .env                 # 敏感环境变量(禁止提交)
├── hello.py             # 主程序入口
└── requirements.txt     # 依赖清单

开发工具链

LangChain 支持两种开发范式:传统脚本式(.py)与交互式笔记本(.ipynb)。Jupyter Notebook 作为基于浏览器的交互式编程环境,支持代码单元格与 Markdown 文本单元格的混排,特别适合提示词工程与链式调试验证。

安装 Jupyter 核心组件:

pip install jupyter

若使用 VSCode,仅需安装 Jupyter 官方插件,即可直接创建与编辑 .ipynb 文件。Notebook 单元格支持 Shell 命令执行(前缀 !),例如查看已安装包信息:

!pip show langchain

交互式执行模型使得每一步的输出均可视化,大幅降低了初学者在环境调试与数据流追踪上的认知负担。典型的 Notebook 工作流如下:

是

否

创建 .ipynb 文件

编写 Markdown 说明单元格

编写代码单元格

执行并观察输出

结果是否符合预期

进入下一模块开发

调整代码或提示词

LangChain 安装

从 0.3 版本开始,LangChain 团队对代码库进行了模块化重构,将原先庞大的单体依赖拆分为若干职责单一的轻量包。这一调整使得开发者可以按需引入,显著降低了生产环境的部署体积与依赖冲突风险。

核心分包策略如下:

包名职责描述
langchain核心抽象:链、提示词模板、输出解析器、记忆模块等
langchain-openaiOpenAI 系列模型的官方集成
langchain-deepseekDeepSeek 系列模型的官方集成
langchain-community社区贡献的第三方模型与工具集成(稳定性略低于官方包)

安装核心包与 OpenAI 集成包(同时安装 python-dotenv 用于环境变量管理):

pip install langchain langchain-openai python-dotenv

验证安装版本:

pip show langchain

若遇网络连接缓慢,可指定国内镜像源(如清华大学镜像)加速下载:

pip install langchain langchain-openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple

配置与第一个程序

调用大语言模型通常需要提供 API Key。推荐通过 .env 文件管理敏感信息,该文件应位于项目根目录且不被提交至版本控制系统(建议添加至 .gitignore)。

创建 .env 文件:

OPENAI_API_KEY=sk-xxxx
OPENAI_BASE_URL=https://api.openai.com/v1

其中 OPENAI_BASE_URL 在 OpenAI 官方访问受限时,可配置为兼容 API 的中转地址或代理服务。若使用 DeepSeek 等国内模型,可将 BASE_URL 指向其官方端点,并相应调整 api_key。

以下为完整的 hello.py 脚本,它构建了一个简单的“自我介绍”链,涉及提示词模板、模型调用与输出解析三个核心环节:

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

# 加载 .env 中的环境变量
load_dotenv()

# 初始化 ChatOpenAI 实例
llm = ChatOpenAI(
    model="gpt-3.5-turbo",            # 可选:gpt-4, gpt-4-turbo, gpt-4o-mini
    temperature=0.7,
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url=os.getenv("OPENAI_BASE_URL"),
)

# 定义消息模板(System 与 User 角色)
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个热情的助手,请用中文介绍自己。"),
])

# 字符串输出解析器
parser = StrOutputParser()

# 使用管道运算符构建 LCEL 链
chain = prompt | llm | parser

if __name__ == "__main__":
    response = chain.invoke({})
    print(response)

版本适配说明:上述代码基于 LangChain >= 0.3.0 与 langchain-openai >= 0.2.0。在 0.3 版本中,ChatOpenAI 的参数已统一为 api_key 与 base_url(废弃了旧版的 openai_api_key 与 openai_api_base)。

运行脚本:

python hello.py

预期输出(内容可能因模型版本而异):

你好!我是由 OpenAI 训练的大型语言模型,我可以回答问题、提供创作灵感、协助翻译,以及陪你聊天。

至此,首个 LangChain 程序已成功运行。后续开发中仅需调整 ChatPromptTemplate 的消息内容,即可快速试验不同场景下的模型响应。

常见问题与解决方案

异常现象可能原因解决方案
ModuleNotFoundError: No module named 'langchain'未安装依赖或虚拟环境未激活检查终端前缀是否包含 (.venv),执行 pip install langchain
AuthenticationError 或 Incorrect API keyAPI Key 无效或 .env 未正确加载检查 .env 中的 OPENAI_API_KEY 值;确认 load_dotenv() 执行成功
请求超时或连接拒绝网络环境无法直连 OpenAI 端点配置 OPENAI_BASE_URL 为有效的代理或中转地址;或切换至国内兼容模型
依赖版本冲突全局安装与虚拟环境中的包版本不一致重新创建纯净虚拟环境,仅安装当前项目所需的特定版本依赖

API 速览

本节梳理本文涉及的核心 API,便于开发者快速查阅与引用。

langchain_openai.ChatOpenAI

  • 所属库:langchain-openai
  • 方法签名:
    class ChatOpenAI(BaseChatModel):
        def __init__(
            self,
            model: str = "gpt-3.5-turbo",
            temperature: float = 0.7,
            api_key: Optional[str] = None,
            base_url: Optional[str] = None,
            max_retries: int = 2,
            timeout: Optional[float] = 120,
            **kwargs
        ):
            ...
    
  • 关键参数:
    • model:模型名称,如 gpt-3.5-turbo、gpt-4-turbo
    • temperature:采样温度,介于 0~2 之间,值越高输出越具随机性
    • api_key:OpenAI 格式的认证密钥
    • base_url:API 请求的基础 URL,可用于指向代理或兼容网关
  • 返回值:ChatOpenAI 实例,实现了 BaseChatModel 抽象接口

langchain_core.prompts.ChatPromptTemplate

  • 所属库:langchain-core
  • 类方法:
    @classmethod
    def from_messages(cls, messages: List[Tuple[str, str]]) -> ChatPromptTemplate:
        ...
    
  • 参数:messages 为元组列表,每个元组包含角色(system、human、ai)与内容模板字符串
  • 返回值:ChatPromptTemplate 实例,支持管道操作与格式化

langchain_core.output_parsers.StrOutputParser

  • 所属库:langchain-core
  • 作用:将模型输出的 AIMessage 对象转换为纯字符串,简化下游处理
  • 使用方式:作为 LCEL 链的末端节点,与 Runnable 协议兼容

Demo 示例

以下提供一个完整的、可独立运行的 HTML 文件(基于 Gradio 构建),用于演示一个具备交互界面的最简 LangChain 应用。该示例并非直接运行于浏览器前端,而是启动一个本地 WebUI 服务,适合作为 Agent 原型验证工具。

运行说明:

  1. 安装依赖:pip install gradio langchain langchain-openai python-dotenv
  2. 在项目根目录配置 .env 文件(含 OPENAI_API_KEY)
  3. 运行脚本:python app.py
  4. 浏览器访问 http://127.0.0.1:7860
import gradio as gr
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

load_dotenv()

llm = ChatOpenAI(
    model="gpt-3.5-turbo",
    temperature=0.7,
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url=os.getenv("OPENAI_BASE_URL"),
)

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个有用的 AI 助手,请用中文回答用户的问题。"),
    ("human", "{user_input}"),
])

chain = prompt | llm | StrOutputParser()

def respond(message, history):
    return chain.invoke({"user_input": message})

gr.ChatInterface(
    fn=respond,
    title="LangChain Hello Demo",
    description="基于 LangChain 0.3 与 OpenAI 的简单对话演示"
).launch()

技术点总结:

  • 演示了 LangChain 与 Gradio 的集成,实现 Chat 交互界面
  • 使用了 LCEL 链式调用,包含提示词模板、模型与输出解析器
  • 展示了 ChatPromptTemplate 中 human 变量插值的用法
  • 覆盖了环境变量加载与 API 客户端初始化的完整流程

参考文档

总结

本文围绕 LangChain 从零开始的开发环境搭建,系统梳理了从 Python 版本选型、venv 虚拟环境隔离、Jupyter 交互式工具链,到 0.3 版本分包安装策略的完整路径。通过一个完整的“自我介绍”链示例,展示了 ChatPromptTemplate、ChatOpenAI 与 StrOutputParser 的核心协作模式。

常见问题章节则针对依赖冲突、认证失效与网络代理提供了可操作的诊断思路。掌握这些基础基建,是后续构建复杂 AI Agent 工作流的必要前提。

基于LangChain与TypeScript构建AI Agent:从核心概念到工程实践 在人工智能应用开发领域,大语言模型(LLM)的兴起催生了新一代智能体(AI Agent)的构建需求。AI Agent的核心原理在于将大语言模型的推理能力与外部工具的执行功能相结合,通过规划、决策与执行的循环机制完成复杂任务。这一技术架构的价值在于突破了传统对话系统的局限,使AI能够主动调用API、查询数据并执行具体操作,从而在智能客服、自动化工作流、数据分析等场景中实现更高阶的自动化。LangChain作为当前主流的AI应用编排框架,通过其链(Chains)、代理(Agents)与工具(Tools)的核心抽 阅读详情

相关推荐

LangChain AI Agent环境搭建:三层隔离与版本锁定实战

AI Agent是具备感知-决策-行动闭环能力的软件实体,其运行依赖稳定、可复现的执行环境。理解LangChain框架的模块化架构(如langchain-core、langchain-openai)是基础,而环境搭建的本质在于解决Python解释器兼容性、包依赖冲突与API协议一致性三大核心问题。通过物理层(pyenv)、逻辑层(venv)和协议层(环境变量+显式base_url)的正交隔离,配合精确版本锁定(如langchain-core==0.1.50),可规避90%以上的‘能装不能跑’故障。该方案广泛

chupu2979的博客 412

【五.LangChain技术与应用】【18.LangChain Chain链基础:AI任务链的构建与应用】

今天咱们要唠的这个LangChain任务链,简直就像给AI装上了流水线——把零散的任务模块组装成能自动运转的智能系统。不整那些虚头巴脑的概念,直接上能跑通的代码和真实业务场景,看完你就能自己搭个智能问答机器人!

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 4012

50行代码搭建可运行AI Agent:LangChain+ReAct实战手记

AI Agent 是一种能自主规划、调用工具并迭代执行的智能体,其核心在于 ReAct(推理+行动)范式,而非单纯的大语言模型生成能力。它通过将用户目标拆解为‘思考-决策-行动-观察’循环,实现从问答到做事的跨越。技术上依赖轻量级工具链(如 LangChain)、结构化提示工程与鲁棒的工具集成,显著提升任务完成率与工程可控性。典型应用场景包括智能日程安排、实时信息查询与多步计算等。本文以 gpt-3.5-turbo 和 LangChain v0.1.16 为基础,详解如何用不到50行核心代码构建首个稳定运行

weixin_30443731的博客 399

Ai大模型agent LangChain入门环境搭建2025最新

Ai大模型agent LangChain入门环境搭建2025最新真的从0到1,跑出代码!(可能格式问题,电脑浏览器更佳!因为自己淋过雨,所以想给你打把伞~LangChain入门此处为语雀内容卡片,点击链接查看:https://www.yuque.com/qiaokate/su87gb/iawv1isi0qu6fktx环境配置:Ubuntu 18或20都可以。

Python单行客的博客 1382

MCP+LangChain实战:从零搭建AI Agent工具调用架构

AI应用开发正从“模型+提示词”迈向“模型+工具总线”的新范式,而MCP(Model Context Protocol)正是这一转变的关键桥梁。作为开放协议标准,MCP基于JSON-RPC 2.0,将数据源、API、文件系统等外部能力统一封装为工具,让大模型能够稳定调用和组合各类服务,有效解决传统集成方式中接口碎片化、重复适配的难题。LangChain作为主流Agent编排框架,已通过官方适配层无缝对接MCP Server,开发者只需定义好工具Schema,即可让Agent自主完成工具选择、参数生成与结果解

451

从零构建AI智能体:基于LangChain的Agent实战开发指南

Agent智能体作为人工智能领域的关键技术,是一种能够感知环境、自主决策并执行任务以达成目标的程序化实体。其核心原理在于将大语言模型的推理规划能力与具体业务逻辑、工具调用相结合,通过感知-决策-执行的闭环实现目标导向的自动化。这一技术的核心价值在于构建能够解决实际问题的智能自动化流程,显著提升复杂任务的处理效率与智能化水平。在应用场景上,Agent广泛应用于数据分析与报告生成、技术知识库问答、多智能体协作系统等领域,为开发者提供了将AI能力工程化落地的实践路径。本文以LangChain框架和天气查询Agen

weixin_30797199的博客 925

LangChain核心入门:搞懂Model、Chain与Agent,从零搭建AI助手

大模型应用开发正从单纯的模型调用走向工程化编排。LangChain作为主流的大模型应用开发框架,将模型调用、提示词管理、工具接入与流程控制抽象为可复用组件。理解其核心设计,需要从Model、Chain、Agent三个层次入手:Model负责认知,Chain负责固定流程,Agent则赋予模型自主决策与工具调用的能力。通过Function Calling机制,Agent能根据用户意图实时调用外部API,实现查询天气、安全计算等真实功能。本文从零讲解LangChain环境配置与代码实现,带领读者完成一个多工具AI

chuannaoxuan4674的博客 374

从零构建AI Agent:基于LangChain与ReAct框架的实践指南

1. 从“会聊天”到“会干活”:AI Agent 的核心是什么 别再被“AI Agent”这个词唬住了。它听起来高大上,但核心逻辑很简单: 让大语言模型(LLM)从一个只会“说”的聊天机器人,变成一个能“做”事的智能助手。 一个只会聊天的模型,你问它“今天北京天气怎么样?”,它会根据训练数据生成一段描述。而一个真正的 Agent,会先“思考”:“我需要调用一个查询天气的工具”,然后“行动”:执行这个工具函数,获取真实的天气数据,最后“观察”结果并“回答”给你。这个“思考-行动-观察”的循环,就是 ReAct

weixin_34268579的博客 599

【AI应用】学习和实践基于 LangChain/LangGraph 的链(Chain)构建、Agent 工具调用以及多轮对话流程的实现

本文介绍了如何基于LangChain/LangGraph构建链(Chain)、实现Agent工具调用及多轮对话功能。主要内容包括:1) 配置环境并初始化LLM;2) 定义天气查询工具并封装为LangChain Tool;3) 构建对话状态管理;4) 实现Agent核心节点和工具执行节点;5) 使用LangGraph创建工作流;6) 编写交互式多轮对话函数。该方案通过维护对话状态、条件分支和循环边,实现了"思考-工具调用-生成回答"的完整流程,支持基于历史上下文的连续对话。文章提供了可运行

weixin_51306394的博客 1272

LangChain 1.0与AI Agent开发实战:MCP协议对接与技能链构建

大语言模型(LLM)与外部系统集成是当前AI工程化的关键技术挑战。LangChain框架通过模块化设计解决了这一问题,其核心原理是将记忆管理、工具调用、任务分解等能力封装为标准化组件。在金融、电商等企业级场景中,这种架构显著提升了AI Agent的开发效率,特别是与MCP(Modular Control Protocol)等二进制协议对接时,需要特别注意协议适配与数据转换优化。本文以真实项目为例,详解如何通过`MessagePack`提升40%传输性能,并构建包含17个技能的DAG工作流,最终实现200ms

weixin_33672109的博客 391

AI Agent实战入门:基于LangChain快速搭建自主工具调用智能体

Agentic AI 不是一个具体的软件包或模型,而是一个技术概念和架构范式。它指的是由具备自主性、目标驱动和适应能力的 AI 智能体(AI Agent)组成的系统。这些智能体能够模仿人类决策,在有限监督下完成特定目标,并通过调用外部工具、API 或数据库来执行复杂任务。如果说生成式 AI(如 ChatGPT)是“能说会道”的助手,那么 Agentic AI 就是“能说会做”的实干家,它可以将语言模型的思考能力转化为实际行动。 对于开发者而言,最关心的不是概念本身,而是如何快速上手、搭建并验证一个可运行的

weixin_33985507的博客 405

AI Agent实战:12个项目掌握LangChain与RAG系统开发

AI Agent作为人工智能领域的重要分支,通过大语言模型(LLM)赋予机器理解、推理和行动的能力。其核心原理基于思维链(Chain of Thought)设计,使Agent能够分解复杂任务、调用工具并执行多步推理。在技术价值层面,AI Agent实现了从被动响应到主动执行的跨越,显著提升自动化水平和工作效率。应用场景广泛覆盖智能客服、知识管理、流程自动化等领域。本文聚焦LangChain框架实战,通过12个可运行项目系统讲解Agent开发全流程,涵盖RAG系统搭建、多工具调度等关键技术,帮助开发者快速掌握

迷彩风情 417

从零构建AI Agent:基于LangChain与Claude Code的实践指南

大语言模型(LLM)作为当前人工智能的核心技术,通过其强大的自然语言理解和生成能力,正在深刻改变软件开发的范式。其核心原理在于基于海量数据训练的Transformer架构,能够理解和生成类人文本。这一技术的工程价值在于,它使得开发者能够构建出能够理解复杂指令、进行多轮推理的智能应用。然而,单纯的LLM API调用难以处理需要工具调用、长期记忆和复杂规划的任务。这正是AI Agent架构要解决的核心问题——将LLM升级为能够自主规划、执行和反思的“智能体”。通过定义清晰的技能(Skills)和工作流(Work

weixin_30267785的博客 400

AI大模型agent LangChain入门环境搭建2025最新

Ubuntu 18或20都可以。

python1234567_的博客 1375

LangChain环境搭建三步通关:依赖隔离、协议校验与Agent验证

LangChain并非传统Python库,而是一个基于OpenAI API协议的动态运行时框架。其核心原理在于三层解耦架构:抽象运行时(langchain-core)、按需加载的适配器(如langchain-openai)、以及严格遵循/v1/chat/completions规范的外部服务契约。这种设计带来显著技术价值——支持多模型路由、工具热插拔与协议级可替换性,广泛应用于AI Agent开发、LLM应用编排和企业级大模型网关集成。但同时也导致环境问题高发:依赖冲突、响应格式不兼容、API密钥或端点配置失

weixin_34008805的博客 552

AI应用开发核心技术栈解析:从RAG、Agent到LangChain与LangGraph实战

如果你正在准备AI大模型相关的面试,或者想从传统开发转向AI应用开发,那么你很可能正被这几个问题困扰: Agent、RAG、LangChain、LangGraph 这些概念听起来很酷,但面试官一问“它们之间到底什么关系?在项目中怎么用?”,脑子里就一片混乱,只能背几个名词。 网上教程要么是零散的“Hello World”,要么是过于学术的论文解读, 缺少一个能串联所有技术栈、直击面试核心的实战路线图 。 知道这些技术重要,但不知道如何向面试官证明自己“不仅懂概念,更有落地能力”,缺少能拿得出手的、有深度的项

csdn785029689的博客 587

前端开发者转型AI Agent开发:基于TypeScript与LangChain构建智能助手

在当今技术领域,AI Agent(智能体)已成为连接大语言模型(LLM)与实际应用的关键架构。其核心原理在于模拟感知、规划、行动与记忆的自主系统,通过自然语言理解与工具调用实现复杂任务自动化。这一技术为开发者提供了将AI能力工程化落地的有效路径,广泛应用于智能客服、数据分析、自动化工作流等场景。本文聚焦于前端技术栈(TypeScript/Node.js)与LangChain框架的结合,通过构建一个具备实时天气查询能力的AI Agent原型,具体展示了如何利用类型安全、异步处理等前端工程经验,快速实现Agen

weixin_34379433的博客 426

AI Agent架构解析与实战:从核心原理到LangChain开发指南

AI Agent(智能体)是构建在大型语言模型(LLM)之上的自主系统,其核心原理在于通过感知、规划、记忆、行动和评估五大模块的协同工作,模拟人类的“感知-思考-行动”循环。与单纯进行对话的LLM不同,AI Agent具备任务分解、策略制定和工具调用的能力,能够主动规划并执行复杂任务序列,从而在自动化编程、数据分析、个人助理等场景中创造实际技术价值。开发实践中,以LangChain为代表的框架通过提供链(Chain)、工具(Tool)、记忆(Memory)等标准化组件,大幅降低了构建智能体的门槛。例如,开发

csxc65837的博客 438
上一篇: AI Agent从无到有17:LangChain 框架入门与核心概念解析
下一篇: AI Agent从无到有19:LangChain 核心模块与首个链式应用实战
Wang's Blog
博客等级 码龄12年 7438粉丝 2422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值