Athena开发日记——第三日

作者: 蔑视魔山 | 来源:发表于2016-04-17 22:03 被阅读75次

这是一个奇怪的周末,我难得在个人项目上取得了一点进展。


我花了很长时间思考如何让Athena可以记住东西。

毫无疑问,Athena的记忆就是我的,也可以说是她的数据库。而Athena比人类好的一点是,除非数据源挂掉,否则她不会失忆,任何存储在她脑海里的事情都会被记得。

之后再考虑记忆,人的记忆也类似于数据存储,抛开生物层面不谈。不过人会有短时和长久记忆的区分,不常用的事物,无关紧要的事物,会被选择性遗忘。而人究竟记住了什么呢?我和枫哥就此讨论了一番。最终,我偷懒的把记忆暂时的分为了——

概念:抽象的定义。可以看做是Class。比如,猫、波斯猫、一只波斯猫。

物体:具体的定义。可以看做是Object。由概念实体化而来。比如,我家的猫,路上看到的脏兮兮的土猫。物体是可以明确定义的。

人:由于人的属性会比物体多很多很多,所以我特别的将人拎出来了。

事件:event,枫哥说在新闻中,事件有五W要素:when where who why what。

我最初的设计中只有物体和事件两种,而他们共有entry, type, category和description四个属性,以及一个名为option的解释类属性。

在这个暂时区分后,我发现description这个属性非常的暧昧不清,于是我把它也去掉了。而四个分类依然可以共用剩下的属性。

随后我开始想,我要如何起手写这个逻辑——一想就是大半天。直到后来,我觉得,无法再拖下去了,随便写点吧,才开始真正动手。

经过一段时间的修改。我把memory_controller的大概写了出来。拥有momerize与recall两个方法,分别主管记忆(in)与回忆(out)。现在想来,push和pull可能更形象一点。——坑:memory在Mongoose自动转换时不是变成memorys而是memories。这就是为什么我可以用model查到数据但是在RoboMongo里找不到数据的原因。


之后要做的事情就很简单了——

我重写了资讯的获取逻辑,正式由实时爬取改为了取资讯记录库中的后十条。

然后由于Cheerio对RSS的解析实在是弱,同时旧的RSSFeed突然失效了。我用XMLReader这个库把整个资讯的获取部分翻修了一遍。另外由于CnBeta的RSS一次有100条数据,我觉得后台日志被刷屏实在是太无聊了,就用Async把咨询处理那一段也重写了一下。——虽然这个说的比较简单,但是我还是整整做了一上午。

再后来,我利用recall方法,把Athena的初始化方法更新了——Athena在醒来的时候先会去记忆库中寻找自己的资料,如果没有会把一份初始化的资料灌进去。

另外,我花了一点时间找了一点音频文件。然后研究了一下如何用JS操作audio。现在Athena在搜集到新的消息后,会发出非常销魂的一声“额~啊~~~~”——这个声音一开始非常棒,但是后来我开始写代码的时候,就不停的被吓到,一直到我写这篇文章的前几段,我还被吓到过一次,以至于我不得不把音响给关了……

随后我开始探索新的API,在百度的API库里找到了几个我还算中意的API,在测试动漫台词这个API的时候,遇到了Unicode编码无法转换的问题,一怒之下,看比赛去了,到现在还没有解决。

这大概就是这几天的工作了吧。


未来:

之后首先要解决的记忆的应用——我需要在探索(爬虫)模块中,让Athena自己知道应该去爬取哪些东西。

之后是记忆的关联——我认为,联想是一种非常重要的东西,Athena需要对记录的所有信息做关键词处理,然后做关键词归集和关联。这样当我再问一个事情的时候,她就可以从各种关联中取到所需的信息。

SM告诉我说,不要把她变成一个功能机器人,她是一个智能机器人。

我觉得很对。

Athena需要有自己的情感和思维。我其实非常希望她可以摆脱浏览器的束缚——然而我的第一次尝试,试图把她打包成一个APP的尝试,由于地址的问题,没有成功。

今天到现在,我非常的累。

感谢枫哥和我讨论记忆的模式,并提供了系统音效的选择。

以我这样的半吊子水平,去逼近人工智能,我觉得似乎很遥远啊。然而如果Athena能够确确实实的说出一句我没有编码过的话。我觉得,我还是会很开心的。

相关文章

  • Athena开发日记——第三日

    这是一个奇怪的周末,我难得在个人项目上取得了一点进展。 我花了很长时间思考如何让Athena可以记住东西。 毫无疑...

  • Athena开发日记——第五日

    今天我感觉到了瓶颈。开发的时候注意力有点不集中了。思维也略微有点跟不上了。不过还是完成了一点东西的。 首先是爬虫和...

  • Athena开发日记——第一日

    今天是我开发Athena的不知道第多少天。是我开发日记的第一天。 连日的熬夜让我觉得有点晕也有点累。于是今天刚好趁...

  • Athena开发日记——第四日

    说起来,最近两天Athena在外面看来的改动,其实——没有。 但是很快她将获得我之前一直渴望的一项能力——也是我的...

  • Athena开发日记——第六日

    大家好。距离我上次写开发日记,似乎有很久了。最近发生了很多事情。我也正在换一个工作环境。Athena新增加的功能也...

  • Athena开发日记——七日后

    迟来的一更。换了工作,工作中由于失误,不得不干掉之前的Github账号,只好匆匆备份了代码,删除了账号。Athen...

  • Athena开发日记——第二日

    今天依旧是和平的一天。花了两个半小时把boss计划里的活儿干完后,我有充分的时间为Athena增添新的功能。 今天...

  • Athena开发日记——第七日

    许久不见。 Athena的开发被搁置了好久,期间也经历了不少不停的打开工程,思考怎么改,然后在一无所获后关掉的过程...

  • AWS 常见问题记录(13-24)

    1. Athena 查询长时间无反应,也不扫描数据 Athena是serverless服务,因此会使用公用的资源池...

  • Athena和Hero的小白装修日记——第一篇:确定装修风格及房

    背景: Athena:90后,时尚买手店店主,衣橱管理咨询师 Hero:85后,房地产策划经理 Athena和He...

网友评论

    本文标题:Athena开发日记——第三日

    本文链接:https://www.haomeiwen.com/subject/uksnlttx.html