用.NET开发MSN聊天机器人(转载)

一、为什么要做MSN聊天机器人

1 我能想到的原因

最重要的是因为很好玩。你的MSN机器人说的话,一定体现你的性格(如果你希望这样的话)。当然,这是我的理由,作这个机器人的初衷仅仅是突然有一天自己想做。也许你也希望你的机器人可以帮助你做一些事情,类似一个专家系统或是客服系统等等。

2 现在的MSN聊天机器人

现在MSN机器人有很多,如果你加过MSN机器人,我想你列表上最多的是一个叫做“小布”或者是他兄弟姐妹一大堆的家伙们(http://www.9zi.com),可能基于负载的考虑,每次上线你都可能被他们一家子的一堆加入好友的请求包围。还有一些所谓的“免费短信”机器人,我一直就是做SP的,我直接说,为了不耽误你们赚钱,我不对这种机器人加以什么评论。可以提一下MsgerAI(msgerai@hotmail.com)这个机器人,开发它的这位老兄非常希望做一个可以像人一样具有智能的东西,虽然可能在他有生之年都无法完成,不过我还是祝他成功。毕竟有梦想就是好的,而且这个机器人现在也可以为他完成些工作(http://www.funnyok.net/nlp)。还有一些其他的MSN机器人,比如专门提供信息查询服务的,帮你搜索google的等等。MSN进行时里面有列表(http://www.msning.com),自己去看看就好了。

二、为什么用.NET

其实理由很简单。C#和Java很像,但是Java我实在找不出一个非常好用的,符合自己使用习惯的IDE来。而C#就不同,Vs.NET(http://msdn.microsoft.com/vstudio/) 当然最好用,C# Builder(http://www.borland.com/csharpbuilder/)也不错,连SharpDevelop(http://www.icsharpcode.net/OpenSource/SD/)用起来都相当舒服。所以选择.NET比较好。

另外,.NET在开发上非常方便,只要你有一点点开发基础,用.NET写程序就不是很难。我是站在一个使用者而非开发者的角度,不用去钻研太多技术层面,或是优化的东西,我没那能力也不想进微软研究院。

建议你使用最新版Visual Studio.NET,可以省去很多麻烦的事儿。

同时,.NET开发可以找到的资源也有很多,我们接下来会提。

三、你要一个什么样的聊天机器人

1 开发前的设想

我这里讨论的就是“聊天机器人”这个概念,意思是,他能做的就是陪你聊天。你要有一个程序去“教”他说话,同时要让他明白话语中包含的大概意义,还能够做基本上不怎么离谱的回答。

2 还可以让他做什么

你还可以让他做很多其他的事情,比如查询ip,手机号码,注册号,航班号,或者直接让他去查google,帮你搜索。这些也都不是什么麻烦的事情,只要你想。

四、先让机器人开口说话

不管你的机器人聪不聪明,让他能在MSN上象摸象样地回答是最重要的。所以,你需要有一个MSN帐号,连接到MSN服务器,取得各种服务器的消息,同时发送消息回服务器。

当然,你可以分析MSN的协议(www.hypothetic.org/docs/msn/index.php),自己写通讯部分。不过我提过,我是个喜欢投机取巧的人,所以,找个能用的接口用就好了。所以,我找了些MSN的开发接口。

MSNHelper:
http://sourceforge.net/projects/msnphelper/

dotMSN:
http://members.home.nl/b.geertsema/dotMSN/

这两个都是为.NET开发的,我用dotMSN,它使用MSNP8协议。注意dotMSN不要用sourceforge上的版本,要用上面给出的地址。
接下来,下载这个例子:
http://members.home.nl/b.geertsema/dotMSN/example/Example.zip

用vs.net打开,编译,执行。

看懂了吧。登录之后随便双击列表上的某个人,会发送给这个人一句"Hello world!"。你已经可以不通过MSN原来的程序,而直接和人说话了。

这部分的代码是这样的:

private void ContactJoined(Conversation sender, ContactEventArgs e)
{
// someone joined our conversation! remember that this also occurs when you are
// only talking to 1 other person. Log this event.
Log.Text += e.Contact.Name + " joined the conversation.\r\n";

// now say something back. You can send messages using the Conversation object.
sender.SendMessage("Hello world!");
}

意思是当对方加入聊天后,你就给他发一个"Hello world!"的消息过去。这时候如果你列表上的人双击你的名字,也同样会收到一个Hello World!。

五、让机器人懂中文

1 数据库

因为我们要做中文聊天机器人,语料库的大小直接关系到你的机器人是不是聪明。由于自己的习惯,我用了mysql作为存放语料库和中文分词库的数据库。而且mysql速度极快。当然,你要用Access或者Sql Server,完全可以,而且更容易些。.NET调用Mysql的库可以在这里找到MySQL Driver CS
http://sourceforge.net/projects/mysqldrivercs/

2 整句匹配
整句匹配这个概念很简单。聊天嘛,不认识的人一般都会要上来就说“你好”,或者“hi~~”之类的。这种话通常很简单,而且没有什么太多的变化,直接让机器人回答就行了。比如对方说“你好”,机器人看到这个“你好”,就直接回答“你好”,就可以了。或者对方说"88",你可以让机器人说“再见”,或者88什么的。。这就叫整句匹配。就是机器人拿到整个的句子,在库里面一查,啊,库里有这句话怎么回答,挑出一句回答过去,对方不会觉得这个机器人笨。

甚至如果对方说“你好笨”,你让机器人回答“我才不笨呢”,对方一定会觉得,这个机器人还行,还知道别人说他笨。

3 中文分词

一个聊天机器人当然要懂些中文。中文处理的基础就是中文分词。分词是什么?“分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。”这个定义是我抄的。请查阅这篇文章:http://www.hylanda.com/center/knowledge.htm 他们做中文分词应该有一定成绩。国内的分词系统,ICTCLAS做得也比较好。有VC的源代码,可以下来看看。
http://www.nlp.org.cn/project/project.php?proj_id=6

有人会说,这个东西我不懂,我也没研究过。其实我也不懂。只不过,如果不做中文分词,聊天机器人就只能停留在证据匹配的地步。我们可以使用最大匹配法,对聊天机器人接收到的话做简单的分词。关于算法,请参阅詹卫东先生的这个讲义,估计你一看就明白了。

课程名称:中文信息处理基础

http://ccl.pku.edu.cn/doubtfire/Course/Chinese%20Information%20Processing/2002_2003_1.htm

下载这个PPT讲义:http://ccl.pku.edu.cn/doubtfire/Course/Chinese%20Information%20Processing/contents/Chapter_07_1.ppt

分词算法不需要太复杂,简单点就好。

另外分词算法需要一个中文分词库。我提供了一个mysql的,这里可以下载。导入到你的mysql里面就可以。其他数据库其实把sql语句简单改改也可以用。
中文分词库下载:http://www.guanqun.com/down/wordlist.rar

4 词语的匹配

仅仅会分词还不够,如果真的要让机器人了解人说的话,肯定需要一些人工智能的算法。我们就是做个机器人玩玩,没必要研究的那么深。人工智能走到现在,太聪明的聊天机器人也少之又少。而且,让专业的研究人员去研究就好了,我们仅仅就是玩玩。所以呢……我们就用一个最简单的办法。我们的方法是,让机器人找这一句话的关键词,这句话大概的词性搭配,再去语料库里面找到符合这样规则的回答的话。

举个简单的例子:
比如对方说:

“你真好玩”

我们先用分词算法,把这句话分成

“你 真 好玩”,

然后找出关键词“好玩”。同时把这句话的词性搭配也记录下来。 这样,当找到关键词“好玩”在语料库中的时候,我们再来找是否有类似这这句话词性搭配的回答,如果有,随机回答出一句:“哈哈。。。我就喜欢你这么说。”,这样,可以给聊天者比较好的感觉。

那么问题来了,如何找出关键词呢? 我的方法是……(比较烂,但是通常有效),找出这句话中长度最长的词作为关键词。没有为什么,因为这样速度会快些。如果一句话中所有的词都被扫描成为关键词,再去查库,会出现些匹配上的问题。(不科学,但是通常有效)。

五、让机器人再“聪明”些

1 整句匹配语料库的设计

第一步当然是做你的整句匹配语料库。语料库都要自己写的,不要偷懒。找出别人最常说的话,比如你好谢谢对不起什么的,多放些回答在里面,免得每次回答都是一样的,然后要回答的时候,先写一句sql来查询,如

select * from reply where `key` = '"+sentense+"' order by rand() limit 1

把找到的话直接回复过去就可以了。如果找不到整句匹配,再做分词处理。

2 分词匹配语料库的设计

因为我们分词算法也没有经过什么优化,同时,我们找出关键字的办法也不是那么的好,所以,你给出的回答一定要不那么清晰。说白了就是,回答的话要有些“含糊不清”才可以。目标就是,让人觉得机器人对他说的话已经理解了,回答出来的还算比较“对路”。不要求100%对路,只要有40%以上对路,聊天的人基本就可能会接受。同时,回答的语料库,最好可以引导对方再次回答的时候,可以说出你语料库里面有的,最好是可以整句匹配的句子。

举个好玩的例子:

问题:你是男的还是女的?/你是男的还是女的/你是男的还是女的? (是否有标点符号没关系,我们要记录句子的词性搭配,同时,要对标点符号做些处理)

像这样一句话,我们可以通过分词,找出关键词:“还是”,而且通过判断词性,可以知道,这是一句问句。而且问的是在两种情况之间选择。(当然,我们通过简单的算法,没法知道这句话其实是问性别)

对于这样的问题,你的机器人怎么回答?其实很简单,首先,回答要“对路”,尽量不让人觉得答非所问,至少让人觉得,你的机器人是知道对方在问什么的。所以,我的机器人这样回答:

机器人回答:都是。。。哈哈

因为回答的是聊天用语,而且带点开玩笑的意味,所以会使聊天者觉得,这个机器人还不是那么笨。

这只是一个简单的例子。很多具体的句子还得你自己去分析。当然,语料库越多,机器人懂的就越多,也就越聪明了。

3 匹配不到关键字怎么办

语料库不是很多的情况下,很可能我们的分词算法匹配不到合适的回答来应付。所以我们还要另外做一个语料库,用来在实在匹配不到关键词的时候,进行回答。这样的回答比较需要类似“算卦”的人的回答技巧,因为对方可能说任何话,而我们的机器人不明白。所以,要想办法“蒙混过关”,同时,尽量引导对方向你机器人可能回答的方面说。你可以试着跟“小布”聊聊天,会发现它回答不出来的时候,就会随便挑一句“佛经”来说。

其实最重要的一个技巧就是,学习一下算卦的人说的话,都是云里雾里的,让人摸不到头脑,还觉得可能是对的。我们就要让机器人学习这种技巧,来达到看上去“聪明”的目的。

最后的话:
其实写这样的一个机器人程序很快的,如果熟悉些的话,估计一天应该就可以写出来。我大概用了一天半,还加上准备些语料库的时间。如果你真想做个稍稍“聪明些”的机器人来玩,这篇文章应该可以为你剩下至少3-5个小时的找资料的时间。如果你懒得自己研究,也有别的公司做的只能整句匹配的程序可以下载,自己下一个玩玩也就算了。

OpenNlp:C#中的开源NLP工具(句子拆分器,令牌器,分块器,coref,NER,解析树等) OpenNlp OpenNlp是自然语言处理(NLP)的开源库。 它在C#中提供了许多NLP工具: 句子分割器 标记器 词性标记器 分块器 共指 名称实体识别 解析树 该项目从Java OpenNLP工具的C#端口开始(在检索了初始代码)。 它已移至Github,以改进代码(添加新功能并修复检测到的错误)并创建nuget程序包。 您可以通过nuget安装此库: 安装包OpenNlp 要与.net Core应用程序一起使用,还需要System.Runtime.Caching nuget包才能使用完整功能: 安装包System.Runtime.Caching 快速开始 要轻松测试各种NLP工具,请运行ToolsExample winform项目。 您将在下面找到有关这些工具的更详细说明,以及如何在代码段中直接使用它们的代码段。 所有基于maxent算法的NLP工具都需要运行模型文件 立即下载

相关推荐

OpenNLP.NET:适用于.NET的OpenNLP

OpenNLP.NET:适用于.NET的OpenNLP

常用的dotnet的nlp开发库

NLTK提供了许多用于文本处理和NLP任务的工具和算法,如分词、标注、情感分析、语义角色标注等。Stanford.NLP:Stanford.NLP是一个开源的DotNet库,提供了各种NLP工具和算法,例如词性标注、命名实体识别、分词、语法分析等。这些是一些常见且经过验证的DotNet的NLP开发库,你可以根据自己的需求和偏好选择最合适的库来处理NLP任务。SharpNLP:SharpNLP是一个开源DotNet库,提供了一些常见的NLP算法和工具,如词性标注、句法分析、命名实体识别等。

刘联其的个人分享 1034

c#(asp.net)机器人项目生成器

CodeRobot 项目机器人,是一款智能C#.net(b/s)代码、项目生成工具,生成的代码不一定就能满足您的全部需要,但可以快速为您搭建一个开发框架和项目台阶,可为你省去很多重复、乏味、机械、多余的工作,提高了你的项目开发进度和工作效率! 主要功能: 1.生成带有Model,BLL,Dal,UI,Common层的MVC项目。 2.生成UI层的HTML页面及后台代码,带有增、删、改、查、分页、详细等功能。 3.生成增、删、改、查、分页、详细的存储过程等SQL脚本。 4.暂支持SQL2000和SQL2005数据库。 5.实现类似SQL的查询分析器的功能,可进行SQL语句执行。 6.生成外键关联自动绑定。 7.字段的中文注释都自动生成Html页面上的输入提示。 8.html输入带有js验证、日期控件等。 9.可生成VS2005,VS2008,VS2010项目。

机器学习与ML.NET–NLP与BERT

到目前为止,在我们的ML.NET之旅中,我们专注于计算机视觉问题,如图像分类和对象检测。在本文中,我们稍微改变一个方向,探索NLP(自然语言处理)以及我们可以通过机器学习解决的一系列问题。

寒冰屋的专栏 1114

智能织梦:基于Rokid AR眼镜的家庭情感记忆增强系统设计与实践

本文介绍了基于Rokid AR眼镜的'智能织梦'系统,通过增强现实技术捕捉和重现家庭情感记忆。系统利用多模态传感器和轻量级情感识别模型,自动记录家庭互动中的情感峰值时刻,并生成沉浸式记忆片段。测试数据显示,该系统显著提升了家庭情感互动的频率和质量,特别适用于多代同堂家庭和记忆唤醒场景。

sre5engineer的博客 536

STDP实战:用PyTorch从零搭建脉冲神经网络(附完整代码)

本文提供了基于PyTorch从零搭建脉冲神经网络的实战教程,重点讲解了STDP学习规则的原理与工程实现。通过构建LIF神经元模型和向量化STDP层,并结合泊松编码,详细演示了如何构建一个能够进行无监督特征学习的混合网络架构,为探索神经形态计算和低功耗实时学习方案提供了完整代码与实践指南。

weixin_29056145的博客 266

用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘(ZT)

用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘。 写在前面:我不是开发人员,不是高手,就是自己比较爱玩。在技术上,没有什么喜欢摸索的精神,而是喜欢投机取巧。在这篇文章里,你也不能"少劳而获"地通过我的机器人修改出一个自己的机器人,因为自己觉得程序写的比较臭,所以不会open source。但是,如果你对.net或者C#有点了解的话,相信从这篇文章里,你可以找到一切所需的资源,来开发一

曾登高 6740

从零搭建ECG心电图仪:模拟前端电路设计与噪声对抗实战

在电子工程和生物医学信号处理领域,微弱信号的采集与放大是核心挑战。其基本原理在于利用高精度模拟电路,从强大的环境噪声中提取出有用的差分信号。这项技术的核心价值在于将理论上的传感器信号转化为稳定、可靠的可用数据,是连接物理世界与数字系统的关键桥梁。在医疗监护、工业传感和科学测量等场景中,高性能的模拟前端设计直接决定了整个系统的精度与可靠性。本文聚焦于生物电信号采集这一具体应用,深入探讨如何运用差分放大器、低通滤波器和陷波滤波器等经典模块,构建一个能够有效对抗工频干扰和接触噪声的实用电路,最终实现从人体体表清晰

weixin_30616969的博客 460

转载文章:用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘

本文章转载自:http://www.radiohead.cn/blog/post/84.html向阳乔木的Blog 用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘 写在前面: (省略部分)这不是一篇新手入门的文章,如果你不知道什么是.NET,不了解数据库方面的哪怕是一丁点东西,建议你先看看。同时,也希望真正的高手不要笑话打击我,毕竟一个普通的,非开发人员的...

weixin_30493321的博客 170

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

手把手教你配置微信商户平台IP白名单:企业付款到零钱必备步骤

本文详细解析了微信商户平台IP白名单的配置原理与实操步骤,这是实现企业付款到零钱功能的关键安全环节。文章从理解IP白名单的安全逻辑出发,指导开发者精准定位服务器公网IP,并提供了在商户平台后台的详细配置流程与常见问题排查指南,帮助开发者高效完成配置,确保企业付款API的顺利调用。

weixin_29326909的博客 737

用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘。[转载收藏]

写在前面:我不是开发人员,不是高手,就是自己比较爱玩。在技术上,没有什么喜欢摸索的精神,而是喜欢投机取巧。在这篇文章里,你也不能"少劳而获"地通过我的机器人修改出一个自己的机器人,因为自己觉得程序写的比较臭,所以不会open source。但是,如果你对.net或者C#有点了解的话,相信从这篇文章里,你可以找到一切所需的资源,来开发一个自己的,绝对可用的msn机器人。要和我的机器人聊天,可以加t...

weixin_30839881的博客 124

用 PERFORM ... ON COMMIT / ON ROLLBACK 把收尾工作做干净:从 SAP LUW 到 Update Task 的事务钩子实践

ABAP事务钩子机制解析 本文深入探讨SAP ABAP开发中的事务边界管理问题,重点分析PERFORM ... ON COMMIT/ROLLBACK机制: 事务分层:区分Database LUW(数据库提交)和SAP LUW(业务逻辑单元),后者通过COMMIT WORK触发多种收尾动作 钩子机制:PERFORM...ON COMMIT将子程序注册为事务结束回调,在提交/回滚时执行清理工作而非业务更新 执行顺序:钩子程序先于Update Task执行,仍保留当前会话内存上下文 现代实践:建议将FORM仅作为

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3995

[转载]用.NET开发MSN聊天机器人|目前MSNP8协议不能用了,所以只作参考学习

[转载]用.NET开发MSN聊天机器人  写在前面:我不是开发人员,不是高手,就是自己比较爱玩。在技术上,没有什么喜欢摸索的精神,而是喜欢投机取巧。在这篇文章里,你也不能"少劳而获"地通过我的机器人修改出一个自己的机器人,因为自己觉得程序写的比较臭,所以不会open source。但是,如果你对.net或者C#有点了解的话,相信从这篇文章里,你可以找到一切所需的资源,来开发一个自己的,绝对可用

南京程序员俱乐部 1843

OpenClaw 股票自动化交易实践指南:从原理到实战的完整技术路径

量化交易策略的开发是一个系统工程,需要综合运用金融知识、编程技能和数据分析能力。OpenClaw通过引入提示词工程技术,大大降低了策略开发的技术门槛,使得更多投资者能够参与到量化交易中来。但技术只是工具,真正决定策略成败的是对市场的深刻理解和严格的风险管理。本章系统介绍了OpenClaw环境下的策略开发方法,从提示词驱动到传统代码实现,从参数优化到回测验证,涵盖了策略开发的完整流程。提示词驱动方式适合快速验证交易想法,传统代码方式适合实现复杂的定制逻辑,两种方式可以协同使用,发挥各自的优势。

lovely_yoshino的博客 5991

【华为OD技术面试手撕真题】3、小行星碰撞 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

小行星碰撞,本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS),思路分析都非常详细, 实现最低的时间复杂度和高通过率,每个解题思路超过百字,内含各个编程语言的八股文面试题,欢迎大家订阅学习, 代码可以直接运行使用,全网限时最低价,持续更新

KJ.JK 8171

用.NET开发MSN聊天机器人 - (中文分词)

用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘。[转载收藏]  写在前面:我不是开发人员,不是高手,就是自己比较爱玩。在技术上,没有什么喜欢摸索的精神,而是喜欢投机取巧。在这篇文章里,你也不能"少劳而获"地通过我的机器人修改出一个自己的机器人,因为自己觉得程序写的比较臭,所以不会open source。但是,如果你对.net或者C#有点了解的话,相信从这篇文章里,你可以找到一切所

aspgreener的专栏 1367

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

用.NET开发MSN聊天机器人

用.NET开发MSN聊天机器人 http://www.sincnc.com 2004年12月30日21:56 新迅 用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘。 写在前面:我不是开发人员,不是高手,就是自己比较爱玩。在技术上,没有什么喜欢摸索的精神,而是喜欢投机取巧。在这篇文章里,你也不能"少劳而获"地通过...

weixin_34132768的博客 99

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于IM Robot的一些资料【转载】

用.NET开发MSN聊天机器人 - MSN聊天机器人开发揭秘。

WangIcter的专栏 1335

【转】人机对话系统

分词,找关键字,然后到库中去查找这个的回答,然后回答。感觉是这样。。 ---------------------------华丽转载分割线-------------------     此篇文章是我在别人基础上写的,加强了一些自身的体验 我采用的是VS.NET+SQLSERVER 参考了小i机器人 这不是一篇新手入门的文章,如果你不知道什么是.NET,不了解数据库方面的哪怕是一丁点东西

Sigh~ 2576

Official Windows 7 SP1 ISO Image Downloads

From Windows 7 Forums: Official Windows 7 SP1 ISO Image Downloads 转载于:https://www.cnblogs.com/JoshuaDreaming/archive/2012/12/23/2830408.html

baluaohuailan04550的博客 217

http://www.dapenti.com/blog/blog.asp?subjectid=22&name=agilebus

http://www.dapenti.com/blog/blog.asp?subjectid=22&name=agilebus 

swebin的专栏 6122

NLP之NER:商品标题属性识别探索与实践

作者|康洪雨单位|有赞科技整理|PaperWeekly最近一段时间在做商品理解的工作,主要内容是从商品标题里识别出商品的一些属性标签,包括不限于品牌、颜色、领型、适用人群、尺码等等。这类任务可以抽象成命名实体识别(Named Entity Recognition, NER)工作,一般用序列标注(Sequence Tagging)的方式来做,是比较成熟的方向...

Kaiyuan_sjtu的博客 1287
上一篇: 网络编辑必知常识:什么是PV、UV和PR值
下一篇: Jabber 协议 概述(转载)
javastd
博客等级 码龄23年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值