个人可识别信息(PII) AI 去除 API 数据接口

构建一个保护个人信息的智能聊天机器人:如何使用LangChain保护PII 通过本文,我们学习了如何使用LangChain构建一个保护PII的聊天机器人。接下来,您可以进一步研究LangChain的文档和社区资源,以提升您的应用开发技能。 阅读详情

个人可识别信息(PII) AI 去除 API 数据接口

ai / 隐私保护 基于 AI 模型自动去除个人识别信息(PII) 个人信息保护 / AI 模型 。

gugudata_api_cover

1. 产品功能

  • 基于自有专业模型进行 PII 自动去除
  • 高效处理敏感信息
  • 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3);
  • 全面兼容 Apple ATS;
  • 全国多节点 CDN 部署;
  • 接口极速响应,多台服务器构建 API 接口负载均衡;
  • 接口调用状态与状态监控

2. API 文档

接口详情: https://www.gugudata.com/api/details/pii-removal

接口地址: https://api.gugudata.com/ai/pii-removal

返回格式: application/json; charset=utf-8

请求方式: POST

请求协议: HTTPS

请求示例: https://api.gugudata.com/ai/pii-removal

数据预览: https://www.gugudata.com/preview/pii-removal

接口测试: https://api.gugudata.com/ai/pii-removal/demo

3. 请求参数

参数名参数类型是否必须默认值备注
appkeystring是YOUR_APPKEY付费后获取的 APPKEY
contentstring是需要去除个人信息的文本内容

4. 返回参数

参数名参数类型备注
DataStatus.StatusCodeint接口返回状态码
DataStatus.StatusDescriptionstring接口返回状态说明
DataStatus.ResponseDateTimestring接口数据返回时间
Data.textstring去除个人信息后的文本内容
LLM-Shield-Proxy:24MB轻量级PII代理,实现LLM数据安全零出口 在人工智能应用开发中,数据安全与隐私保护是核心挑战,尤其是涉及个人可识别信息(PII)的处理。其基本原理是在数据流经的边界部署代理网关,通过PII检测引擎(如Microsoft Presidio)自动识别敏感实体,并在数据离开信任边界前进行脱敏替换,仅将处理后的‘干净’文本发送给外部大语言模型(LLM)。这项技术的核心价值在于以工程化、非侵入式的方式,将安全能力下沉为基础设施,有效平衡了数据利用与合规风险,解决了直接调用外部API可能导致的数据泄露和违规问题。它特别适用于需要接入GPT、Claude等云端大 阅读详情

相关推荐

[打造安全的PII保护聊天机器人:预防敏感信息泄露的最佳实践]

通过使用LangChain和PII检测工具,我们可以有效保护用户数据隐私,打造安全的聊天机器人。LangChain官方文档OpenAI API文档数据隐私和保护指南。

dfitghjk的博客 415

语音转文字 API 接口调用教程|PHP/Java 完整接入示例

本文档介绍了一个音频转文字的API接口,主要功能包括将MP3/WAV格式的录音转为文本内容。接口采用HTTP POST异步请求方式,需提交音频URL和密钥参数,通过轮询获取转换结果。文档详细说明了请求参数(如密钥、音频URL)、返回参数(状态码、任务ID等)及示例代码。同时提供了完整的PHP客户端实现,支持GET/POST等HTTP方法,包含超时设置、SSL验证、请求头处理等功能。该接口适用于需要语音转文字功能的开发者,通过简单的API调用即可实现音频内容识别。

2602_96320833的博客 500

LTE信令流程实战:从Attach到Service Request的完整解析(附常见问题排查)

本文深入解析LTE信令流程中的Attach和Service Request关键环节,提供从基础原理到实战排查的完整指南。涵盖鉴权、承载建立等核心步骤,分析常见故障模式及优化方案,并附赠信令跟踪工具使用技巧,助力通信工程师提升网络运维效率。

alpha的博客 319

利用API实现全国失信名单查询

开发应用,API可以说是一个比较方便快捷的东西了,我们先来看看什么是API API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。[1]用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。(此定义来源于百度百科) 换而言之,有了API就好像有了轮子,发动机等零件,造车就方便多了,那么API可以如何使用呢,我们来看...

ls1481的博客 1788

GStreamer —— 2.1、Windows搭建GStreamer环境,Qt加载GStreamer库后运行 - “教程1:Hello world!“(附:完整源码)

GStreamer —— 2、Windows搭建GStreamer环境,Qt加载GStreamer库后运行"教程1:Hello world!"

797

Vue和Vue-Element-Admin(六):集成中的CORS(跨域资源共享)问题

在vue-element-admin登录集成时候碰到跨域资源共享问题,CORS(Cross-origin resource sharing)是浏览器的技术规范,浏览器可以发起跨域请求但Javascript脚本不能,传统的ajax只能获取在同域名下的资源,但Html5允许ajax发起跨域请求,解决方案有:JSONP、Flash、IFrame、CORS。 一、CORS(跨域资源共享)问题 针对vue-element-admin的登录模块的后端接口完成后,前端调用时候出现报错,因为前端的端口是9527而后.

叶子叶来 9615

107_api_intro_ai_pii-removal

个人可识别信息(PII) AI 去除 API 数据接口 ai / 隐私保护 基于 AI 模型自动去除个人识别信息(PII) 个人信息保护 / AI 模型 。 1. 产品功能 基于自有专业模型进行 PII 自动去除 高效处理敏感信息 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3); 全面兼容 Apple ATS; 全国多节点 CDN 部署; 接口极速响应,...

DevOpenClub 专栏 410

【WRF运行报错】总结WRF运行时报错及解决方案(持续更新)

总结WRF运行时报错及解决方案(持续更新)

WW、forever的博客 1633

AI技术中的PII(个人身份信息)屏蔽方法详解

在现代数据处理和AI应用中,个人身份信息(PII)的保护显得尤为重要。本文将介绍三种常见的PII屏蔽方法:NER(命名实体识别)模型、LLM(大规模语言模型)以及Presidio工具。我们将通过框架进行演示,展示如何使用这些技术来屏蔽敏感信息。

qq_29929123的博客 794

uniapp [全端兼容] - 详细实现下拉筛选菜单功能组件,下拉式筛选菜单效果,类似电商美团点击筛选项底部弹出列表点击选择后自动收起(详细示例代码,全端兼容小程序、安卓苹果app、h5网页、nvue

uni-app,vue2,vue3,向下弹出菜单包含筛选功能,日期筛选,下拉框选择器,下拉多条件筛选,下拉式筛选菜单,uniApp如何实现条件下拉筛选,Uniapp官方条件筛选组件,下拉框式条件筛选插件组件,最好用的插件组件,多端兼容,下拉菜单筛选,过滤筛选列表,下拉筛选栏,多列联动的条件筛选,下拉菜单地区和筛选,微信小程序,支付宝小程序,h5网页,移动端网站,安卓app,苹果app,nvue,uniapp所有平台兼容,下拉菜单筛选,下拉式条件筛选,下拉列表,点击排序,级联筛选,uniapp实现下拉筛选

🏆 前端领域优质创作者 1万+

【Flink】Flink提交任务到Yarn报错Unable to close file because the last blockBP enough number of replicas

当使用 HDFS 存储文件时,每个数据块会有多个副本分布在不同的节点上,以确保数据的可靠性和容错性。然而,由于某种原因,最后一个数据块 blk_1101776325_28036289 的副本数量不足,导致无法成功关闭文件。如果确定副本数量正确,并且问题仍然存在,可以尝试手动修复副本不足的情况。异常消息表明在关闭文件时出现问题,我的原因是hadoop上有个节点有问题,导致提交到那个节点的时候,无法传递包到相关的机器上。检查 HDFS 集群的状态,确保所有节点都正常工作,没有节点宕机或网络故障等问题。

九师兄 935

PII与LLM隐私保护实战指南

🔒 LLM应用中的PII保护实战指南 在大语言模型深度应用的今天,个人可识别信息(PII)泄露风险急剧增加。本文分析了LLM场景下的PII风险全景,包括训练数据记忆、Prompt泄露、RAG知识库污染等典型问题,并提供了可落地的保护方案: 1️⃣ 常用脱敏方法对比:掩码、替换、哈希、加密等技术的适用场景与注意事项 2️⃣ 核心防护策略:数据最小化、分级脱敏、PII检测过滤、上下文隔离等 3️⃣ 企业实践建议:系统设计规范、流程管控措施及工具推荐 150字内完整呈现LLM应用中PII保护的关键要点与实施路径

everfight的菜鸟成长之路 541

《低功耗方法学》翻译——第一章:介绍

第一章:介绍

记录所学,分享知识,结识挚友 2069

langchain4j数据安全:PII自动识别与脱敏全攻略

在AI驱动的应用开发中,大型语言模型(LLM)与用户数据的交互日益频繁,个人可识别信息(Personally Identifiable Information, PII)的保护成为关键挑战。根据OWASP Top 10 AI安全风险,数据泄露和不当处理占比高达37%,其中PII泄露事件年增长率达215%。langchain4j作为Java生态中领先的LLM集成框架,提供了多层次的数据安全防护机制,...

gitblog_00328的博客 830

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

如何使用大语言模型进行PII信息屏蔽

PII信息指的是能够用于识别个人身份的任何信息,如姓名、地址、社会保障号码、信用卡号等。在处理涉及PII信息的数据时,确保其安全性是至关重要的。

qq_29929123的博客 490

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

350M参数挑战GPT-5性能:日本PII提取模型改写隐私保护规则

- 支持框架:Transformers、llama.cpp、ONNX Runtime - 适用场景:文档脱敏、数据标注、隐私审计 建议企业优先在医疗、金融等高合规需求场景试点,通过本地化部署降低数据泄露风险,同时提升业务处理效率。随着边缘AI技术的成熟,这款轻量级PII提取工具或将成为日文处理生态中隐私保护的基础设施。

gitblog_00976的博客 851

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

邮箱、手机号、银行卡都在档案里?用 ChatArchiveGuard 做 PII 个人信息审计实战指南

在分享或迁移聊天导出之前,你的档案里可能藏着邮箱、手机号甚至银行卡号。**ChatArchiveGuard**(聊天归档守护)是一个在本地完成 **PII 个人信息审计**的免费工具:它只读不传、只报告不泄露,帮你在文件离开自己电脑之前,先揪出疑似密钥、凭证和个人信息形态,并顺带检查 JSON/JSONL 损坏与 SQLite 完整性问题。 > 💡 一句话定位:它不是聊天阅读器,而是一道"交付

gitblog_00355的博客 106

API级隐私防护:bert-small-pii-detection对接AI Gateway的数据防泄漏完整案例

bert-small-pii-detection 是 Gravitee 团队开源的轻量级 PII(个人身份信息)检测模型,基于 BERT 微调,可在 AI Gateway(API 网关)层自动识别 25 类敏感信息,帮助你实现 API 级隐私防护与数据防泄漏(DLP)。本文完整讲解它的文件结构、标签体系、性能指标与落地方法。 ## 一、为什么需要在 AI Gateway 层做 PII 检测 当

gitblog_01058的博客 63

端侧PII检测工具PII-Tracer:本地部署与敏感信息识别实战

在隐私合规与数据安全需求日益严格的今天,个人身份信息(PII)的保护已成为企业数据处理链路中的关键环节。PII指可直接或间接定位到自然人的数据,如姓名、手机号、邮箱、证件号等,传统云端检测虽便利,却存在明文外传风险。端侧AI技术将推理过程放在本地或内网执行,结合命名实体识别(NER)原理,能高效完成敏感信息识别与分类。其核心技术价值在于“数据不出域”,在保证算法能力的同时满足合规要求,适用于日志清洗、客服会话质检、大模型应用数据预处理、数据库脱敏等真实业务场景。Perplexity推出的PII-Tracer

weixin_29325955的博客 279

5 分钟装好第一个安卓 APK:APK Installer 上手指南

在 Windows 上跑安卓应用,旧做法是装一台完整模拟器。APK Installer 省去这一步:把 APK 拖进窗口,确认权限,应用就装进 Windows 子系统 for Android(WSA)。本文带你从干净环境走到第一个 APK 安装成功。 ## 📋 开始前核对 4 项条件 这节列出硬性前提,缺一项后面都走不通。 - Windows 10 Build 17763 及以上([Pac

gitblog_00982的博客 813

PII、越狱和真正的护栏

我们正在构建越来越多的 AI 智能体来处理真实的公司数据。这些数据通常包含 PII(个人身份信息)——电子邮件地址、电话号码、出生日期和客户案例描述。即使拥有企业 LLM 许可证,一个令人不安的问题仍然存在:我们在法律上和技术上是否允许将那些数据发送到外部 LLM 提供商?许多团队假设"企业许可证 = 安全"。但合规性、日志记录、痕迹存储和数据驻留权讲述了一个更复杂的故事。一周前,我观看了的发布会演示——这是一个承诺提供安全 AI 工作空间的产品。

新缸中之脑 558

构建PII保护型聊天机器人:保护用户隐私的实用指南

识别用户输入中的个人身份信息(PII)阻止这些敏感信息被传递给底层的语言模型在保护用户隐私的同时,继续提供有价值的对话服务这种设计对于需要处理敏感信息的应用场景(如客户服务、医疗咨询等)尤其重要。构建PII保护型聊天机器人是保护用户隐私的有效方法。通过使用LangChain和OpenAI的强大功能,我们可以创建既智能又安全的对话系统。随着隐私保护越来越受重视,这种技术将在各个领域发挥重要作用。

qq_29929123的博客 1253

端侧PII检测技术解析:本地识别敏感信息的隐私保护实践

在数字化应用中,PII(个人可识别信息)的保护已成为数据合规与隐私工程的核心议题。手机号、邮箱、身份证号等敏感字段一旦被发送到云端API进行分析,数据外发风险、网络依赖和按量计费等问题便随之而来。端侧PII检测技术的出现,将识别能力从中心化服务迁移到本地设备或内网环境,通过正则规则与本地NER模型的混合策略,既保证了格式化字段的高召回率,又能理解上下文以识别人名、地址等非结构化信息。该方案具备低延迟、离线可用、数据不出域等优势,特别适用于RAG管道、日志脱敏、桌面应用等场景。本文介绍的通用技术路径涵盖环境搭

weixin_34413802的博客 349

打造PII保护AI聊天助手:从理论到实现

本文介绍了如何构建一个保护PII的AI聊天助手,确保用户隐私安全。希望通过本文,您对PII保护有了更深入的了解。

cgsayuclv的博客 368
上一篇: 多语言 AI 翻译 API 数据接口
下一篇: A 股业绩报表数据 API 数据接口
DevOpenClub
博客等级 码龄18年 970粉丝 521原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

DevOpenClub

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

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

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

打赏作者

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

抵扣说明:

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

余额充值