自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

正交分解

技术/教育,Commit Often, Perfect Later, Publish Once

  • 博客(81)
  • 问答 (9)
  • 收藏
  • 关注

原创 Rust实战(5):Rust 如何防御 C++ vector 容器的迭代器边界判断问题

在C++中,未定义行为(Undefined Behavior,简称UB)指的是程序在运行时,所出现的不可预测、不符合语言规范、且未定义其结果的行为。访问未初始化的内存:当我们对未初始化的内存进行读写操作时,其结果是未定义的。例如,以下代码中的指针p未初始化,对其进行解引用操作是未定义行为:int * p;//未定义行为访问越界的内存:C++中,数组越界访问是未定义行为。当我们访问数组或指针指向的内存范围之外时,程序行为是未定义的。

2023-07-20 16:21:08 545 2

原创 Rust实战(4):防御简单C++ vector容器的越界问题例子分析

关于Option的问题,也可以看这篇以前翻译的文章:翻译(3): NULL-计算机科学上最糟糕的失误: https://vector.blog.csdn.net/article/details/119341261?Rust的在错误处理上的支持还有更多,可以慢慢展示,这些只是Rust现代语言设计带来的基本便利,Rust并不是小补丁式的解决问题。在数组越界上,如果采用和C++一样的数组下标直接索引,Rust代码在运行时会明确的Panic。,这个时候,可以使用Rust的。此时数组超出范围,返回的是。

2023-07-17 02:19:36 702

原创 把一件事情说清楚即可,把一件事做完即可

我手里已经没什么可做的了,但是环顾四周,好像其他人都还在,我就在犹豫要去吃饭不,还是再等等。忽然,我想到了:“今天主要的事情做完了即可”,于是我就撤了。那些不能做的事情,如果有缘份,总是会有机会真正跑到你的面前,而你也有了有质量地做好它的准备,那时候再做不迟。于是做PPT的时候,总想着要用多华丽的标题,用多华丽的图片,用多华丽的数据,以及用多华丽的动画什么的。或者,我想演示一个东西,例如AI编程,那么只要把AI编程,从简单到复杂的一组例子挨个展示出来,中间保留直接演示的能力即可。没有代码,也没有图表。

2023-07-04 22:22:43 380 1

原创 CSDN-AI小组2023-半年-研发总结

通过这些分析,我们改进了博客质量分的计算,近期推出了博客质量分V5,V5版本在解决博客质量可计算方面的能力基础上,进一步增加了可解释性,让博主们能在机器自动辅助建议的基础上持续获得写作质量的提升,这也是平台生态长期良性发展的基石。实际做的工作远不止这些,有重大技术突破的时代,是一个最好的时代,希望大家都能走的更远,创造更多好的技术和产品。机器做的更多,人的精力会背更多解放出来。解决问题需要「多人」讨论,包括human1, human2, 中间可以夹杂ai1, ai2,AI的加持,人与人的讨论更能聊的下去。

2023-06-28 17:46:34 3959 18

原创 如何支持研发对CSDN个性化推荐系统重构

一个以内容服务为主的软件,它的推荐系统在数据侧对软件产生着举足轻重的作用。数据的三个方面决定了这个内容软件的档次。通常,我们说的推荐,包含了两类不同的推荐本文介绍的是我们在CSDN的软件主视图的各种推荐等信息流部分的持续改进工作。这部分在各种不同的技术浪潮下,容易发生这些问题。

2023-06-25 11:04:22 1346

原创 结构化GPT用例,在CSDN私密社区中死磕@ada 探索SpringBoot

Spring Boot的自动配置是基于Spring的条件化机制实现的。当在应用中引入某个Starter依赖时,Spring Boot就会根据条件判断是否需要自动配置这个Starter所提供的一系列默认配置。其中,条件是通过使用Spring的@Conditional注解来实现的。在自动配置的过程中,Spring Boot会读取classpath下的META-INF/spring.factories文件,这个文件中定义了需要自动配置的类的全限定名。

2023-06-21 19:31:08 2262 6

原创 让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer

其中,左侧的每个Trm代表,右侧的放大图,也就是原始Transformer的Encoder部分结构。Bert的训练任务包括MLM(Masked Language Model)和NSP(Next Sentence Prediction). Bert的训练是无监督的,因为MLM实际上就是将语料的某些Token遮挡起来,那么输出结果需要知道答案是什么(标注信息)实际上就包含在语料里。GPT是无监督的,因为从机器学习的角度,输出数据需要的「标注信息」(下一个Token)就是语料已经提供的。

2023-06-10 03:36:45 2345 2

原创 使用Google大模型Bard(PaLM)理解时间序列预测模型ARIMA

使用Bard来学习的体验不错,和之前使用GPT学习知识的效果差不多,用来理解数理知识点的原理很实用,推荐多使用。它不能回答中文也未必是坏事,可以强迫在学习中使用英文语境。Google Bard的新模型使用的是PaLM,暂时不支持中文,本次测试使用Bard模型来辅助理解一个时间序列预测模型ARIMA。

2023-06-06 22:23:00 2738 12

原创 使用GPT梳理SSTable,LSM Tree

/定义SSTable的索引块结构体int* keys;//键数组//偏移量数组int size;//索引块的大小//定义SSTable的数据块结构体//值数组int size;//数据块的大小//定义SSTable的结构体//索引块//数据块//SSTable中键值对的数量} SSTable;其中,索引块(IndexBlock)包括键数组和偏移量数组,用于记录键和对应的数据在数据块中的偏移量。数据块(DataBlock)则包括值数组,用于存储键值对的值。

2023-05-23 15:28:21 820 1

原创 怎样使用GPT案例:使用GPT获得OPPO终止ZEKU芯片业务需要的背景知识

例如在移动设备市场中,高通的Adreno GPU和苹果的A系列芯片中的GPU都是行业领先的产品,而Nvidia的Tegra芯片曾经在移动设备市场中获得了一定的市场份额。因此,苹果M1处理器的神经引擎不仅可以优化机器学习任务的计算,还可以在通用计算和其他任务中发挥作用,具有更广泛的应用场景。需要注意的是,尽管Mali GPU在移动设备、IoT和汽车等领域得到了广泛应用,但在高端游戏和工作站等更需要高性能的领域,Mali GPU的地位仍然相对较弱,主要是因为它的性能还无法和专业级的GPU产品竞争。

2023-05-15 01:17:58 1750 9

原创 跟着AI学AI(3):决策树

虽然决策树和逻辑回归是常用的分类算法,但是它们并不是万能的,仍然存在一些问题和局限性。例如,决策树容易受到噪声和异常值的影响,对于取值较多的特征,容易偏向于选择取值较多的特征,对于类别不平衡的数据集,容易偏向于选择样本数较多的类别,对于连续特征,需要进行离散化处理,可能会损失一些信息,决策树的复杂度较高,不适用于大规模数据集。具体来说,后剪枝的过程是从决策树的叶子节点开始,逐个将叶子节点替换为其父节点,然后计算剪枝后的决策树在验证集上的准确率,如果准确率提高了,则保留剪枝后的决策树,否则恢复原来的决策树。

2023-03-30 02:07:16 495 1

原创 Rust实战(3):使用AI对Rust四则运算代码提问

是的,match可以与其他用户自定义的类型一起使用,以处理不同的情况。例如,假设我们有一个枚举类型Directionmatch d {("Going up!") , } }在这个例子中,我们定义了一个枚举类型DirectionUpDownLeft和Right。然后,我们使用match来处理不同的情况。如果d是,我们将打印一条消息表示向上移动。如果d是,我们将打印一条消息表示向下移动。如果d是,我们将打印一条消息表示向左移动。如果d是,我们将打印一条消息表示向右移动。这个例子展示了如何使用match。

2023-03-24 11:52:46 451 3

原创 跟着AI学AI(2): 逻辑回归

回答:离群值是指在数据集中与其他数据点相比具有异常值的数据点。离群值可能是由于测量误差、数据录入错误、数据采集问题或真实的异常情况引起的。离群值可能会对数据分析和建模产生负面影响,因为它们可能会导致模型过拟合或欠拟合,从而降低模型的准确性和可解释性。例如,在一个身高数据集中,如果有一个人的身高明显高于其他人,那么这个人就是一个离群值。在处理离群值时,可以将其删除、替换或保留,具体取决于数据集和分析目的。

2023-03-24 03:52:30 2087 23

原创 跟着AI学AI(1): 线性回归模型

在线性回归中,我们的目标是找到一条直线,使得所有数据点到该直线的距离之和最小。因此,我们的目标是最小化平方误差。具体来说,我们计算损失函数对w和b的偏导数,然后将其乘以学习率并从当前w和b的值中减去。在线性回归模型中,我们使用梯度下降来找到最小化平方误差的最佳拟合直线。具体来说,我们计算损失函数对每个参数的偏导数,然后将其乘以学习率并从当前参数值中减去。我们可以使用这些公式来实现梯度下降算法,找到最小化平方误差的最佳拟合直线。我们可以使用链式求导法来推导线性回归模型损失函数的偏导数计算过程。

2023-03-22 20:47:09 1440 18

原创 AI小组2022总结

时间如流水,2022年即将过去,也到了一年一度年终终结的时候。CSDN-AI小组在2022年在AI+之路上又有哪些积累呢?

2022-12-29 17:57:33 1671 6

原创 远程小组软件开发过程(3):人

本节内容可能不会很长,但是还是希望尽可能把这个环节重要的骨架勾勒出来。有一个经典的问题是:“如果你是一个投资人,要投资一个项目,核心是看什么?项目还是团队?”。与之对应的一个问题是:“如果你是一位创业者,创业的基石是一个独特的项目还是一个优秀的团队?”当然这种二选一的问题往往都只强调了某一个方面,并没有标准答案,有的人会选项目,有的人会选人(团队)。本节要讨论的是在一个企业里面“如何构建一个有效的能做产品的团队所需要的不同角色的人”,这个问题。

2022-09-05 01:47:30 5202 19

原创 远程小组软件开发过程(2):工具

工欲善其事,必先利其器,我们以CSDN技能树的分层构架和工具链构建为例子,展示投资工具链在软件开发中的好处。流畅的工具链,是软件开发团队效能的关键之一。

2022-07-28 21:25:59 3071

原创 远程小组软件开发过程(1):流程

现代软件开发,人与人在空间上的距离已经越来越明显地发生了范式转移,在可预见的未来和更久远的时候,远程办公都会是一件经常发生或者常态的协同方式。远程软件开发的最小组织单位是远程小组软件开发,把远程小组软件开发的效能做好,软件公司将在空间上解放了一种新的能力可以在更大区域间完成软件开发的组织和协同工作,提供一种新的效率。CSDN本身就在北京/长沙之间有两个大的研发团队,即使不考虑少数的个体远程办公,北京和长沙之间的团队协作也是一种远程软件开发过程。.........

2022-07-27 22:26:24 3349 4

原创 NLP 实战(12): AI小组2022半年小结

AI小组半年研发分析,思考,回顾。标签体系是数据分类的基础之一。我们持续在统一标签上进行改进需求:Web发展到今天,一个特征是内容爆炸,已经出现”worse is better“的逆淘汰现象,也就是劣币驱逐良币。对于用户来说就是内容很多,但是找到的内容质量整体在下降。解决:我们从衡量博文质量的角度出发,设计并实现了一套有效的博文质量评分机制。基本原理是很简洁的,两个部分的公式就可以概括:难的地方在于实现细节和工程细节,包含:这是一个良币趋势劣币的过程:很多人忙于制造各种低质量的数据,我们在重视内容数据的质量

2022-06-14 22:17:13 2005 37

原创 NLP 实战(11): CSDN Daily,兼谈技术写作的问题

CSDN 极客日报社区 实验并推荐了一组以内容结构和质量为主的榜单,包含了这些不同的频道:频道相关链接铁粉增长CSDN铁粉介绍以及说明每天值得看CSDN每天值得看–2022-05-20每天分享能手CSDN 活动: 奖励每天的分享小能手每天最佳新人CSDN 活动: 奖励每天最佳新人一周精选如何在 CSDN 获得直接奖励 - 你也可以!月度精选CSDN 创作者之夜一周学习榜月答题挑战2022/05/02CSDN 社区功能更新:C

2022-05-20 23:27:32 4300 9

原创 云原生选题

云原生选题推荐,持续更新…云原生技能树直接选题云原生技能树直接需要的选题,希望完整,有体系,优质文章会直接采纳作为云原生技能树相关选题的参考资料云原生环境下,从容器、k8s、k8s下的包管理(helm)、服务网格(istio)到云原生上的微服务开发的分层体系讲解云原生下有很多工具链,哪些是核心工具链,核心工具链的命令大全Terraform命令介绍k8s持续集成介绍什么是ServiceMesh,它解决了什么问题深入istio可观察性使用heml部署k8s上的应用,以Python为例kub

2022-05-09 00:31:22 732 2

原创 Mac 系统快速迁移记录(M1 Max)

系统迁移定义:A=新Mac电脑B=旧Mac电脑迁移(https://support.apple.com/zh-cn/HT204350):A,B系统本身都升级到最新,保持一致,升级后重启B电脑打开【实用工具】->【迁移助理】,启动后选项选择【至另一台Mac】,点击【继续】A电脑打开【实用工具】->【迁移助理】,启动后选项选择【从Mac、时间机器备份或启动磁盘】,点击【继续】B、A电脑会显示安全码,确认都一致后,在B、A上都点击【继续】A电脑上显示【选择要传输到信息】,一定要

2022-04-03 23:55:58 5300 5

原创 云原生是趋势吗?学习k8s和docker的意义在哪里?

本文是在知乎上对同名问题做的回答:直接答案: 是!细细说下为什么。从前,写代码只要在单机上写即可,但是编程会演化。例如,写单机程序。写一个单机命令行程序; 写一个单机GUI程序,此时需要关心数据,模型,界面; 写一个单机网页程序。程序利用到了单机的资源: 内存,CPU,磁盘存储。为了利用内存,做了各种压榨内存的内存分配器,为了便利地使用内存,有了引用计数和垃圾回收。为了利用CPU,操作系统提供了进程和线程抽象,用户态程序提供了携程调度。为了在多线程间共享状态,有了同步/互斥/信号量。为了多进程间共享

2022-03-26 08:56:22 8144 42

原创 NLP 实战(10): CSDN 领域榜标签分组更新

CSDN 全站数据在2021年完成了标签体系的统一。在这个基础上:用户可以在UC中心选择感兴趣的标签博客/问答使用统一标签标记数据并筛选博客首页有基于统一标签的导航(blog.csdn.net/nav)动态(blink)和社区(community)数据也在逐步完成数据的机器标签化信息流(领域榜/推荐流)使用统一标签推荐数据下载内容也逐渐融入统一标签2022开年,我们持续在改进数据质量,领域榜的数据质量改进是其中之一。针对用户反馈的标题党和软文问题,现在领域榜也和综合热榜一样对标题党和软

2022-03-01 11:58:23 1030 4

原创 NLP 实战 (9) | CSDN topN指数月排行榜竞赛动画

开源一个 topn 词竞赛动画项目 topn_race:GitCode 仓库:https://gitcode.net/csdn/topn_race核心功能:输入:按月统计的topN词频数据输出:topN词频竞赛动画(可带音效)源码结构本项目基于开源项目:https://github.com/dexplo/bar_chart_race 定制,src/bar_chart_race 从 bar_chart_race 项目的源代码修改以适配需求。依赖库:progress==1.5matpl

2021-12-30 15:42:25 11022 28

原创 NLP 实战 (8) | CSDN 在改进,2021我们做了什么?

CSDN 在改进,2021 CSDN AI 小组做了什么?AI 组通过提供智能数据服务,与多个团队合作,支撑产品功能改进和创新产品设计。我们结合NABCD(Need、Approach、Benefit、Competitors、Delivery)的方式来做一个复审,每个环节未必包含全部环节分析,主要从“需求”,“改进”,2个方面做一个客观描述。统一标签需求: 对技术数据的正确的统一分类,能打通底层数据之间的关联关系,解决数据的精确匹配等需求。历史上不同的板块有不同的标签体系,体系分类也不尽相同。统一标签并且

2021-12-02 17:08:01 3627 7

原创 开源小项目:pyouter 0.0.1 发布

发布一个业余开源小项目 pyouter 。python Github 仓库:https://github.com/fanfeilong/task_routerpip 包安装:https://pypi.org/project/pyouter/0.0.1contributors: @幻灰龙 @ccat传统的命令行参数一般会设计 -x, --xxx这样的命令解析。一个痛点是命令多了之后就难以记忆和使用。同时不易于通过命令行定向控制任务执行。受 HTTP Rest API path和路由器的影响。最开

2021-11-22 21:45:31 1067

原创 NLP 实战 (7) | 热榜算法更新

热榜问题分析CSDN 的榜单有很多个,包含这些:周排名历史贡献排名总排名新晋博主企业博客排名领域排名热榜排名其中热榜总是存在一些问题,典型的现象有:存在博文霸榜时间过长的问题。收藏/点赞/评论刷量数据对榜单的影响过大的问题。博文过于追求博文长度的问题。标题党的风气问题太多同质化的入门文章。领域过于集中在少数几个语言上的问题。…我们再分析下这些问题反映的问题是什么:博文应该能上榜,但是应该有半衰期。博文的评论区应该有正常的交流和讨论,为了上榜而做的水评实际上降低

2021-10-19 20:11:45 13520 89

原创 NLP 实战 (6) | 团队开发,一些本质的问题

目标和实践经过连续的高质量迭代和团队协作,我们逐渐清晰了方向和目标:把海量内容用人工智能的手段内容分类, 质量分级。 促使各种内容 覆盖 IT 行业的各个领域。 充分挖掘 IT 领域知识点之间,内容,用户,社区的关系。利用这些关系清除低质量内容,鼓励高质量内容的生成,并把高质量内容在适当的时间呈现给用户,帮助用户学习,成长,成功。在这个方向上,我们持续迭代,提供智能数据和服务,支持了两款创新应用,希望能解决技术人在一条线和一个面上学习领域知识的痛点问题:每日一练:dailycode.csdn.ne

2021-09-17 13:54:29 624

原创 NLP 实战 (5) | 标签、技能树和知识图谱

我们都知道数据有两类:“结构化数据”和“非结构化数据”。如果有“结构化数据”,我们只要对结构化数据做增删查改就可以,进一步需要解决伸缩性的问题。但是更多的数据是非结构化数据,所谓非结构化数据并不是说数据内部毫无结构,而是数据的结构并没有被使用者定义、抽取、索引和查询。从这个角度来说,如果数据是结构化的,数据库能解决的,就不必要再使用其他更复杂的做法。但是如果数据没有被很好的结构化,数据的有价值的信息并不能很好的地被索引和查询,用来支撑产品的进一步改进、创新进而创造商业价值。那么,我们就应该对数据的结构进行

2021-08-08 01:09:46 2628

原创 NLP 实战 (4) | 我发现的飞桨(paddlepaddle)大坑

文章目录分离阶段:以交付为目标尽早集成:暴露内存和性能问题重构代码:做好模块化耗时分析:找到性能瓶颈深入分析:二分排查解决问题:通常就几行代码小结在上一篇 我们介绍了数据集和模型的上传/下载管理。解决数据集和模型的管理问题,在我们的新成员加入时就体现了优势,新成员克隆仓库代码、根据文档执行命令下载相关数据集、下载相关模型、启动服务、执行测试,以最快的时间跑通全流程,进而获取新任务,达成 first commit 的目标。本节我们分析一个实战问题诊断的过程。分离阶段:以交付为目标我们反复强调,从数据集入

2021-06-23 00:39:06 1252 3

原创 NLP 实战 (3) | 整体设计之数据集/模型管理

文章目录项目的可拆性数据集/模型管理需求数据集/模型同步的方式数据集/模型管理命令数据集/模型管理的权限和配置管理数据集/模型的版本化在上一篇 里,我们分析了代码的基础构架。我们从服务拆分和代理、命令行管道、模块依赖局部化、以及本地数据路径管理几个方面分别切入。本节继续分析一些设计上的思路,以及讨论数据管理部分。项目的可拆性事实上,我们解决的是软件开发中“组合”与“解耦”的问题。一个项目在面对需求增量的压力、数据增量的压力、功能增量压力的情况下,还能保持一致的设计,一致的可测试性,对项目保持健康度非常

2021-06-19 01:07:51 630

原创 NLP 实战 (2) | 整体设计之代码篇

在 上一篇 里,我们对基于 NLP 技术构建的服务做了整体性的构建。我们看到 NLP 的实战决不仅仅是单纯的算法或模型问题,立足于算法/模型,但整体性的工程构建工作也需要持续更新,同时模型和算法相关的实际开发也不仅仅是某个单一模型或者某个超大预训练模型就能解决问题,更多地,我们总是需要系统的解决方案。微服务上一篇我们讨论了项目的统一命令行设计和项目目录结构的整体设计。实际上这是两个自底向上的基建工作。本次我们直接自顶向下看下最后的构架是怎样的。模型和算法最终都要转成一个个服务,设计上会是一个微服务到s

2021-06-12 02:38:08 490 3

原创 NLP 实战 (1) | AI 编程也遵循软件工程的基本原理

记录结构化NLP服务之路,本文长期更新管道(pipeline)从不同数据源(source)获取数据清洗数据构建数据集(dataset)数据集管理拆分训练集/验证集/测试集选择机器学习框架/算法(framework/algorithm)模型训练(train)/预训练/微调训练构建分类器(classifier)基于分类器提供 Rest 服务(server)输出结构化数据结构化数据提供给目标(dest)应用服务服务于应用层(application)Python 环境使

2021-05-11 21:30:08 5561 8

原创 Rust 实战 (2)|创建一个完整的项目

Rust 设计并创建一个完整的项目工作空间和项目两层结构设计一个实际的项目完成创建并编译Hello world小结上一节,我们对 Rust 的开发环境的关键概念做了介绍,本节我们来创建一个完整的项目,理解 Rust 的项目结构,并建立一个 Rust 实战用的 git 仓库。工作空间和项目两层结构使用过 Visual C++/Visual Studio/… 等 C/C++ IDE 的开发者应该都有解决方案/子项目 的工程概念。例如 Visual Studio 创建的 C++ 工程,都会有一个 *.sln

2021-03-15 21:30:58 2885 14

原创 Rust 实战 (1)|开发环境介绍

Rust 开发环境介绍安装 rustup使用在线执行环境 | playground安装 VSCode 插件认识 Rust 的工具链小结安装 rustupWindows 本地安装下载Windows安装包:https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe如果开发跨平台程序,而不仅仅在Windows上跑。那么 Windows 环境也建议在 WSL 环境下安装下 rustupMac/Lin

2021-02-18 22:02:47 817

原创 mRNA(阅读链接)

Five things you need to know about: mRNA vaccine safetyFive things you need to know about: mRNA vaccinesUnderstanding mRNA COVID-19 VaccinesWhy are mRNA vaccines so exciting?While the concept s...

2021-01-05 11:04:00 204

原创 技术的极限(13): 对过程和细节的可视化

上一篇:技术的极限(12): 探索编译器目录:** 0x01 Mozilla的Areweyet** 0x02 做小的决策** 0x03 细胞地图** 0x04 rga: 多文件类型行搜索** 0x05 Kaitai|又一个多语言二进制编解码器生成器** 0x06 命令行程序开发指南** 0x07 圣诞树经济学** 0x08 区块链文学创作平台** 0x09 Excel Lam...

2020-12-14 09:35:00 145

原创 现代编程语言(5):TypeScript

0x01 安装自行Google在线执行测试|playgroundhttps://www.typescriptlang.org/play00x2 语言内核字符串常量类型接口(interface)类型别名(Type)泛型(Generic)泛型约束泛型构造器方法继承与覆盖UnionType+IntersectionTypeTypeScript高级类型(类型构造器......

2020-11-25 11:16:00 523

原创 现代编程语言(4):JavaScript

语言核心ECMAScript® 2019 Language Specification阮一峰:ES6 入门教程The Modern JavaScript Tutorial中文版:The Modern JavaScript TutorialDeep JavaScripttypescriptlangTypeScript Tutorial10 Insights from...

2020-11-05 15:55:00 157

空空如也

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

TA关注的人

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