自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

原创 【LangChain开发】LangChain——文本向量

加载 Markdown 文档 loader = UnstructuredMarkdownLoader("./index.md") pages = loader.load() 初始化 OpenAI 文本嵌入模型(默认使用 text-embedding-3-small 模型) embeddings = OpenAIEmbeddings() 提取所有文档的内容文本 texts = [page.page_content for page in pages] 批量生成文本嵌入向量(输入最多 2048 个文档) doc

2026-06-28 21:47:08 308 6

原创 【LangChain开发】LangChain——文档加载器和文本分割器

本文介绍了LangChain中的文档加载器(Document Loaders)及其在RAG(检索增强生成)技术中的应用。主要内容包括: 文档加载器的作用:将不同来源的数据转换为标准Document对象,解决LLM应用中的数据异构性问题。支持多种格式如PDF、CSV、JSON等。 RAG技术原理:通过检索外部知识库获取相关内容,再结合用户问题生成答案。 Document类结构:包含page_content(文本内容)和metadata(元数据)两部分。 具体加载示例: 使用PyPDFLoader加载PDF文档

2026-06-28 21:44:57 186 8

原创 【LangChain 开发】LangChain——输出解析器

🚀 全栈开发者Optimistic _ chen的技术博客 内容方向:专注分享C语言、Java全栈开发、数据结构与算法、Redis等技术干货 专栏特色: ✅ 系统化教程:覆盖基础语法→高阶实战 ✅ 配套代码:每篇提供可运行代码示例 ✅ 持续更新:紧跟技术趋势,含Java EE、SpringBoot等热门专题 适合人群:零基础新手、面试备战者、计算机专业学生 互动承诺:评论区答疑,支持技术交流与互粉 📌 核心标签:#Java #C语言 #算法 #编程学习 #技术博客 ✨ 每日更新,助力开发者高效成长!点击

2026-06-27 22:00:52 311 7

原创 【LangChain 开发】LangChain——提示词优化

摘要: 本文介绍了LangChain框架中的提示词模板应用,包括字符串模板(PromptTemplate)、聊天消息模板(ChatPromptTemplate)及动态插入消息列表的MessagesPlaceholder。通过代码示例演示了如何生成多语言翻译提示、构建对话历史模板,并提到LangChain Hub作为提示词管理平台的作用。这些模板能动态结构化请求,提升大语言模型(LLM)应用的灵活性和效率,适用于开发聊天机器人、翻译工具等场景。 关键词: LangChain、提示词模板、ChatPromptT

2026-06-27 22:00:12 432 4

原创 【LangChain 开发】LangChain核心组件——消息

本文介绍了LangChain框架的核心组件与消息结构设计。主要内容包括: 核心组件架构:围绕模型调用衍生的7大模块化功能(模型/提示词模板、工作流链、记忆组件、检索器、Agents、工具组件、回调系统) 消息结构设计: 统一封装不同LLM的异构消息格式 标准化4种消息角色(system/user/assistant/tool)及对应LangChain消息类 支持流式响应的AIMessageChunk类型 对话实现机制: 通过缓存历史消息实现多轮对话 示例代码展示内存存储历史消息的InMemoryHistor

2026-06-26 21:38:52 269 5

原创 【LangChain 开发】LangChain 聊天模型——流式传输

文章摘要: 本文介绍了LangChain中的流式处理(Streaming)功能,通过.stream()和.astream()方法实现同步/异步逐块输出,提升实时交互体验。演示了聊天模型结合StrOutputParser解析器的链式调用,将AIMessageChunk转为纯文本流。还提到可通过自定义生成器函数扩展解析逻辑,适用于需即时反馈的场景(如聊天应用)。 关键词: #LangChain #流式处理 #实时交互 #Python #AI开发

2026-06-26 21:37:31 293 3

原创 【LangChain 开发】LangChain 聊天模型——结构化输出

结构化输出技术:LangChain通过with_structured_output方法,让聊天模型按预定义格式(如Pydantic类)返回结构化数据,便于后续程序处理。该方法将用户定义的BaseModel转换为JSON Schema传递给LLM,并自动校验返回结果。示例中强制DeepSeek模型返回包含开头(setup)、笑点(punchline)和评分(rating)的冷笑话对象,解决了传统字符串输出需复杂解析的问题。通过extra_body参数可禁用模型特有功能(如DeepSeek的thinking模式

2026-06-25 22:46:47 486 8

原创 【LangChain开发】LangChain 聊天模型——调用工具

摘要:本文介绍了LangChain中工具调用的实现方法,重点讲解了使用@tool装饰器创建自定义工具的技巧。内容包括三种工具定义方式:1) 基础@tool注解自动生成Schema;2) Pydantic BaseModel实现复杂参数校验;3) Annotated结合Field的轻量化校验方案。文章还展示了StructuredTool类创建工具的方法,帮助开发者扩展大模型能力边界。每种方法均附有代码示例和Schema输出演示,适合需要增强LLM外部交互能力的开发者参考。

2026-06-25 22:46:04 474 1

原创 【AI Agent 全栈开发】LangChain 聊天模型

本文介绍了如何利用LangChain框架接入大模型(以Deepseek为例)进行对话开发。主要内容包括:1)获取API Key并配置环境变量;2)使用ChatOpenAI初始化模型;3)通过SystemMessage和HumanMessage构建对话消息;4)利用StrOutputParser进行输出解析;5)通过LCEL语法链式调用组件。文章展示了完整的代码示例,演示了从模型初始化到对话响应的完整流程,特别强调了LangChain的Runnable协议和管道操作符(|)的链式调用特性,为开发者提供了快速集

2026-06-23 23:28:30 403 5

原创 【LangChain框架】LangChain和LangGroup介绍

摘要: 本文介绍了全栈开发者Optimistic _ chen的CSDN技术博客,涵盖C语言、Java基础与进阶、数据结构与算法、Redis等专栏内容,提供配套代码与持续更新。重点对比了传统框架Spring与AI框架LangChain的设计理念,阐述LangChain如何通过模块化组件解决LLM应用的复杂流程编排问题,并引入LangGraph弥补LangChain在状态管理和动态分支上的不足。通过电商工单案例,展示了LangGraph基于状态、循环和条件分支实现复杂业务工作流的优势,体现AI开发框架的高效性

2026-06-23 23:27:34 284 5

原创 【AI Agent 全栈开发】LLM的接入方式

📌 大模型接入方式全解析:API、本地与SDK对比 本文系统介绍大语言模型(LLM)的三种主流接入方式及其应用场景: API接入 - 通过HTTP请求调用云端模型服务,适合快速集成开发,无需管理硬件资源,但依赖网络且存在数据隐私风险。 本地部署 - 下载开源模型在自有硬件运行,保障数据安全但需高性能设备支持,适合对隐私要求高的场景。 SDK接入 - 官方封装的高层接口(如Python/Java库),简化HTTP调用流程,提升开发效率,但仍基于API或本地服务。 对比总结: 易用性:SDK > API >

2026-06-22 21:51:50 593 5

原创 【AI Agent 全栈开发】Agents

本文介绍了Agent(智能体)的概念,它是一种基于大语言模型的自主性软件实体,能够感知环境、决策并执行任务。文章重点讲解了链式工作流(Chain Workflow)模式,通过将复杂任务拆解为有序子步骤(如意图识别 → 信息提取 → 答案生成)来提升处理准确率,并提供了一个基于Spring AI的三步链式处理代码示例,展示了从用户输入到最终答案的完整流程。最后强调多Agent协作系统(Agents)能更高效处理复杂指令。

2026-06-22 21:50:14 368 1

原创 【AI Agent 全栈开发】RAG(检索增强生成)

本文介绍了RAG(检索增强生成)技术如何提升大语言模型(LLM)的性能。RAG通过检索外部知识库获取最新信息,结合LLM生成更准确的回答,有效解决模型幻觉和知识过时问题。文章详细阐述了RAG的工作流程,包括文档加载、文本分割、向量化处理、存储检索等关键步骤,并介绍了向量数据库在语义检索中的核心作用。最后通过代码示例展示了文本向量化的实现方法,帮助开发者快速上手RAG技术应用。

2026-05-18 15:08:44 1523 20

原创 【AI Agent 全栈开发】MCP

本文介绍了MCP(Model Context Protocol)模型上下文协议的概念及其在AI应用中的重要作用。MCP作为Tool Calling的统一管理框架,解决了工具接口格式不统一、模型需硬编码工具定义等问题。文章详细阐述了MCP Java SDK的架构设计,包括Client/Server交互模型、Session管理和三种传输协议(Stdio、HttpClient SSE、WebFlux SSE)。同时提供了MCP Server社区资源和客户端调用示例,展示了如何通过Spring AI代码接入MCP服

2026-05-18 15:02:41 1551 7

原创 【AI Agent 全栈开发】Tool Calling(工具调用)

这篇文章介绍了Tool Calling的概念及其在大模型中的应用。Tool Calling是一种AI交互模式,允许语言模型智能调用外部工具实现功能扩展。文章通过Java代码示例展示了如何使用@Tool注解定义工具(如获取当前时间的工具),并注册到ChatClient中供模型调用。作者解释了Tool Calling的工作原理:模型根据工具描述决定调用时机,应用程序负责执行工具并返回结果。这种机制使大模型不仅能处理文本,还能与外部系统交互,完成实际任务,显著提升了AI助手的实用性。文章还提供了相关技术标签和Gi

2026-04-28 18:34:58 547 2

原创 【AI Agent 全栈开发】提示词技巧(prompt)

摘要: 本文探讨AI工程中的提示词设计方法,重点介绍如何通过结构化要素(目标、背景、受众等)构建高质量提示词。提出CO-STAR框架系统化组织提示词要素,并分享三大实用技巧:1)少样本提示——通过示例教会AI预期格式;2)思维链提示——要求AI展示推理过程;3)自我一致性——多路径推理选取共识答案。文章强调提示词已非简单输入,而是"高度敏感的代码",需通过工程化方法将不确定的AI输出转化为确定价值。适用于开发者优化大模型交互,提升任务准确率。 (字数:149)

2026-04-28 18:31:49 694 3

原创 【Vue3入门】Pinia 状态管理 和 ElementPlus组件库

Pinia状态管理简介 本文介绍了Vue专属状态管理工具Pinia的使用方法,重点讲解如何通过Pinia实现组件间数据共享与同步。 主要内容: Pinia概念:作为Vue的状态管理库,Pinia可跨组件共享状态,确保数据同步和修改可追踪 基本使用: 安装配置Pinia 定义Store仓库(包含状态和操作方法) 在组件中使用Store共享数据 实战演示: 创建库存管理示例 实现三个组件间的数据同步操作 Pinia适用于管理多个组件需要共享的数据,而组件私有数据仍应存储在组件内部。通过本文示例,读者可以掌握Pi

2026-03-22 20:25:51 978 33

原创 【Vue3入门】vue-router 路由管理

【摘要】本文介绍了Vue Router的核心概念与使用方式。主要内容包括:1. 路由定义与单页应用特点对比;2. vue-router的安装配置四步流程(安装、导入、创建实例、注册);3. 路由表配置规范,支持静态/动态路由和懒加载;4. 项目文件分类标准(views/page组件区分)。重点讲解了如何通过createRouter创建路由实例,使用createWebHashHistory配置哈希路由,以及通过routes数组建立路径与组件的映射关系。文章还对比了SPA和MPA的特性差异,为Vue项目路由配置

2026-03-20 23:19:11 758 16

原创 【Vue3入门】自定义指令与插槽详解

【摘要】本文介绍了Vue.js中自定义指令和插槽的核心用法。自定义指令通过封装DOM操作实现复用,支持全局注册和动态参数绑定,适合处理底层DOM交互需求。插槽机制则提供了组件结构的灵活定制能力,包括默认插槽实现内容替换、具名插槽实现多区域布局以及作用域插槽实现子向父的数据传递。文章通过礼物盒子的生动案例,展示了如何利用插槽技术构建可复用的UI组件,使父组件能够自由定制子组件的内部结构。这些高级特性能够显著提升Vue应用的开发效率和灵活性。(150字)

2026-03-20 23:18:15 943 2

原创 【Vue入门】scoped与组件通信

文章摘要 本文介绍了Vue组件开发中的两个核心概念:scoped样式和组件通信。首先讲解了scoped属性的作用原理,通过添加唯一data属性实现样式隔离,防止全局污染。随后重点探讨了父子组件通信机制,包括Props声明方式,在组合式API中使用defineProps()和在选项式API中使用props选项进行属性传递。文章通过代码示例展示了scoped样式的实际效果和父子组件数据传递的实现方法,为Vue开发者提供了组件化开发的实用技巧。 关键词:Vue组件、scoped样式、组件通信、Props声明、父子

2026-03-18 23:22:19 649 15

原创 Vue 入门:v-model、ref 属性、nextTick 的一些实用技巧

v-model本质与组件通信 v-model本质上是:value和@input事件的语法糖组合。在基础表单元素上,它实现了数据双向绑定;在自定义组件上,它转变为组件通信的高级语法,默认传递modelValue属性和监听update:modelValue事件。Vue 3.4引入的defineModel()进一步简化了这一过程,开发者无需手动处理props和emit,直接操作返回的ref即可实现父子组件数据同步,大大提升了开发效率。 关键词:v-model原理、组件通信、双向绑定、defineModel、Vue

2026-03-18 23:22:00 820 22

原创 【Vue入门】组件及组件化

摘要:本文介绍了Vue组件的核心概念与使用流程。组件作为独立可复用的UI单元,由template、script、style三部分组成,采用组件化开发思想实现代码解耦与复用。重点讲解了组件使用的四个步骤:创建.vue文件、导入组件、全局/局部注册、以自定义标签形式使用。同时阐述了App.vue作为根组件的作用,以及组件生命周期的四个阶段(创建、挂载、更新、卸载)。通过组件化开发可提升代码复用性,实现模块化开发。

2026-03-15 22:19:34 1059 26

原创 【Vue入门】别再写冗余代码了!用修饰符、样式绑定、计算属性让开发效率翻倍

摘要:本文介绍了Vue.js中的指令修饰符、样式绑定和计算属性。指令修饰符包括事件修饰符(如.stop阻止冒泡、.prevent阻止默认行为)和按键修饰符(如.enter、.esc等),以及v-model修饰符(.trim、.number、.lazy)。样式绑定部分讲解了如何动态绑定class(通过三元表达式或对象)和style(内联样式或样式对象)。最后介绍了计算属性的作用,它能基于现有数据自动计算并响应数据变化。这些特性增强了Vue的模板功能,使开发者能更灵活地处理交互和样式。

2026-03-14 13:24:31 647 12

原创 【Vue入门】Vue指令超全总结:从入门到实战,看这一篇就够了

本文介绍了Vue.js中常用的指令及其功能,包括内容渲染指令(v-text、v-html)、属性绑定指令(v-bind)、事件绑定指令(v-on)和条件渲染指令(v-show)。内容渲染指令用于动态控制DOM内容显示,v-text和v-html的区别在于是否解析HTML标签;属性绑定指令用于动态绑定元素属性;事件绑定指令为元素添加交互功能;条件渲染指令v-show通过控制CSS的display属性实现元素的显示/隐藏切换。文章通过代码示例和效果图直观展示了各指令的用法,适合Vue初学者快速掌握核心指令的使用

2026-03-14 13:18:29 854 26

原创 【Vue入门】创建Vue工程环境和响应式函数

🚀 Vue3工程化开发入门指南 本文介绍了Vue3的工程化开发模式与传统HTML开发的区别,详细讲解了环境搭建与项目创建流程: 1️⃣ 环境准备:安装Node.js和VSCode插件(Vue-Official、Vue 3 Snippets等) 2️⃣ 项目创建:通过npm create vue@latest命令初始化项目,使用npm i安装依赖 3️⃣ 启动项目:运行npm run dev开启开发服务器 📁 核心文件解析: index.html:单页面容器 main.js:Vue应用入口 App.vue

2026-03-12 22:59:06 699 38

原创 【Vue3 入门】掌握这些才能优雅上手

本文介绍了JavaScript和Vue3开发中的几个核心概念:变量与常量的区别、模板字符串的优势以及对象的操作方式。重点讲解了const声明引用类型时的特性,模板字符串的插值和换行功能,以及对象取值的两种方法(点操作符和中括号)。还特别说明了当属性名与变量名相同时的对象简写语法。这些基础知识是学习Vue3框架的重要前提,掌握它们能帮助开发者更轻松地理解Vue3文档和解决实际编码问题。

2026-03-12 22:57:22 1028 22

原创 【Docker入门】Docker Image(Docker 镜像)

本文介绍了Docker镜像的基本概念与核心操作命令。Docker镜像是一个只读文件模板,包含运行应用所需的文件系统、依赖等资源,采用分层存储机制实现高效共享。文章重点讲解了常用镜像命令:docker images查看本地镜像列表,docker image inspect查看详细镜像信息,docker tag标记镜像版本,以及docker rmi删除镜像。这些命令配合不同参数可实现镜像的全面管理,帮助开发者有效构建和部署容器化应用。

2026-01-25 20:50:19 2049 14

原创 【Redis系列】分布式锁

【摘要】本文介绍了分布式锁的概念及其在Redis中的实现方式。分布式锁用于解决多节点访问共享资源时的互斥控制问题。基础实现通过Redis的setnx命令设置键值对标识锁状态,并引入过期时间防止死锁。进一步优化包括:1)使用校验ID确保只有加锁服务器能解锁;2)通过看门狗机制动态延长锁持有时间;3)采用Redlock算法应对集群故障场景,通过多组主从节点确保锁可靠性。文章还提供了配套代码示例,帮助开发者理解分布式锁的实际应用。

2026-01-25 20:50:11 1390 2

原创 【Docker入门】Docker Registry(镜像仓库)

摘要: 本文介绍了Docker Registry(镜像仓库)的基本概念与工作机制,包括仓库的分类(公共/私有)、命名规则及镜像版本管理。详细讲解了常用Docker命令如docker login/logout(登录/登出仓库)、docker pull(拉取镜像)、docker push(上传镜像)和docker search(搜索镜像,需特殊网络条件)。通过类比超市货架解释仓库结构,并说明镜像从制作到分发的完整流程,强调本地缓存机制和Registry的核心作用。适合开发者快速掌握Docker镜像管理的关键操作

2026-01-22 20:36:25 2163 18

原创 【Redis系列】Redis缓存

本文介绍了缓存的概念及其在计算机系统中的重要性,重点讲解了Redis作为数据库缓存的优势和使用场景。文章首先分析了硬件访问速度的层级关系,指出缓存是提升系统性能的关键手段。随后详细阐述了Redis作为MySQL数据库缓存的必要性,通过内存存储和简单数据结构显著降低数据库压力。作者提供了两种热点数据筛选方法(定期生成和实时生成)以及多种数据淘汰策略(随机淘汰、TTL优先等),帮助开发者根据实际需求优化缓存管理。文章最后强调缓存主要用于加速读操作,写操作仍需直接操作数据库。

2026-01-22 20:35:23 1073 29

原创 【Docker入门】Docker原理和安装

【摘要】本文介绍了Docker技术的发展历程和核心架构。Docker最初基于LXC容器技术,后自主研发libcontainer组件,最终演变为符合OCI标准的runC实现。文章详细解析了Docker的C/S架构,包括镜像、容器、仓库等核心组件及其交互关系。同时提供了在Ubuntu 22.04系统上安装Docker的实践指南,包括卸载旧版本、配置下载源等具体操作步骤。通过本文,读者可以全面了解Docker的技术本质及其在容器化领域的重要地位。

2026-01-20 21:09:30 1260 4

原创 【Redis系列】哨兵模式

欢迎来到Optimistic_chen的CSDN博客!这里是一位全栈开发者分享技术干货的平台,涵盖C语言、Java基础、Java EE进阶、数据结构与算法、Redis等多个技术领域。博主提供系统化的学习专栏,每篇技术文章都配有完整可运行代码示例,并承诺持续更新内容。特别介绍了Redis哨兵模式的高可用解决方案,通过自动化故障转移机制避免人工干预,详细讲解了哨兵节点监控、故障转移和通知功能的工作原理,并分享了基于Docker的部署实践。关注博主可获取更多技术干货,助力编程学习与技术成长! #技术博客 #编程学

2026-01-20 21:08:33 2217 14

原创 【Docker入门】cgroups 资源控制

本文介绍了Linux系统中的cgroups资源控制机制和两个实用命令:pidstat和stress。cgroups是Linux内核提供的资源管理框架,可以对CPU、内存等资源进行精细化管控。文章详细讲解了pidstat命令的使用方法,包括监控CPU、内存、IO等系统资源的参数选项。同时介绍了stress压力测试工具的功能及常用参数,演示了如何通过stress模拟CPU负载并使用pidstat进行监控。这些工具对于系统资源管理和性能测试具有重要价值。

2026-01-19 18:46:09 1111 18

原创 【Docker入门】namespace 空间隔离

本文介绍了Linux系统中的三个基础命令:dd、mkfs和df。dd命令用于数据转换与复制,支持指定输入/输出文件、块大小等参数;mkfs用于创建文件系统(格式化),可指定文件系统类型和设备参数;df用于显示磁盘空间使用情况,支持人性化格式、文件系统类型筛选等功能。这些命令是Linux系统管理和磁盘操作的重要工具,适用于文件处理、磁盘格式化及存储监控等场景。文章还提供了各命令的常用参数说明和示例截图。

2026-01-19 18:45:00 1121 20

原创 【Docker入门】容器技术

✨✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例✅ 持续更新:专栏内容定期更新,紧跟技术趋势✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)

2026-01-11 22:00:10 2261 31

原创 【Redis系列】主从复制

✨✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例✅ 持续更新:专栏内容定期更新,紧跟技术趋势✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)

2026-01-11 21:32:58 1414 64

原创 【Redis系列】事务特性

Redis事务机制解析 Redis事务通过MULTI开启事务队列,EXEC执行队列命令,DISCARD放弃事务。与MySQL不同,Redis事务不具备原子回滚能力,仅保证命令批量执行。通过WATCH命令监控key变更,实现乐观锁机制防止数据竞争。Redis单线程特性天然保证隔离性,但需注意其无回滚设计的特点。事务适用于高性能场景下的简单原子操作,开发者需要明确其与数据库事务的本质区别。 【核心要点】 命令队列:MULTI开启,EXEC执行 无回滚机制:失败命令不影响其他操作 WATCH实现乐观锁 单线程保证

2026-01-09 18:23:43 1236 18

原创 【Redis 系列】持久化特性

本文介绍了Redis的两种持久化策略:RDB和AOF。RDB通过生成数据快照实现持久化,支持手动触发(save/bgsave)和自动触发(配置/save/shutdown),适合备份和全量复制场景,但无法实时持久化。AOF通过记录写命令实现持久化,解决了实时性问题,是当前主流方案,需配置appendonly开启。文章详细说明了RDB的bgsave执行流程和AOF的基本原理,帮助读者理解Redis如何保证数据安全性和恢复机制。

2026-01-09 18:04:02 1495 67

原创 【Redis系列】Java操作Redis客户端

Java操作Redis服务器 本文介绍了如何使用Java程序连接和操作Redis服务器。主要内容包括: Jedis客户端:Java通过Jedis库实现与Redis服务器的通信,该库封装了RESP协议。 连接方式: 通过SSH端口转发将云服务器Redis端口映射到本地 需修改Redis配置允许远程访问 操作流程: 创建Maven项目并引入Jedis依赖 配置SSH隧道实现本地8888端口转发到远程6379端口 编写Java代码连接Redis服务器 系列文章:提供了Redis五种常用数据结构的操作指南链接 作者

2026-01-07 23:30:37 1310 21

原创 【Redis 系列】常用数据结构---ZSET类型

✨✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例✅ 持续更新:专栏内容定期更新,紧跟技术趋势✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)

2026-01-04 20:41:22 1210 36

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除