mojolingo / adam.snark.rabbit Goto Github PK
View Code? Open in Web Editor NEWSnark is my middle name
Home Page: http://mojolingo.com
License: GNU Affero General Public License v3.0
Snark is my middle name
Home Page: http://mojolingo.com
License: GNU Affero General Public License v3.0
In a large multi-user environment, it's going to be important that a single Brain entity handles all requests for a given user during a session. It may be that the user provides inputs via IM and receives outputs via Audio, or vice versa. As such, we want to keep that state within a single brain. To achieve this at scale, we will need to be able to dynamically start a Brain for a user on any available host when the first request comes in. If the user has an existing session, we should route all messages to the running Brain appropriate for that user.
The implementation of the lookup service can be made very thin. Some ideas:
Example message:
[2013-12-14 09:41:22] INFO Brain: Message was received: #<AdamSignals::Message {:source_type=>:phone, :source_address=>"dcb4f57a-64e6-11e3-9abb-f7c4684a9128", :auth_address=>"[email protected]", :body=>"translate", :user=>nil}>
Causes exception:
[2013-12-14 09:41:22] ERROR App: <NoMethodError> undefined method `[]' for nil:NilClass
/srv/adam/releases/be810027f6fccf40ca4f7c1304738aba42d05ebe/brain/lib/brain.rb:26:in `handle'
Which in turn causes:
[2013-12-14 09:41:22] FATAL App: AMQP connection failed. Going down.
[2013-12-14 09:41:22] INFO Adhearsion::Process: Transitioning from booting to stopped with 0 active calls due to stop event.
[2013-12-14 09:41:22] INFO App: Shutting down while connecting. Breaking the connection block.
[2013-12-14 09:41:22] INFO Adhearsion::Process: Adhearsion shut down
[2013-12-14 09:41:22] DEBUG Celluloid: Terminating 4 actors...
Currently to process a speech request, the Ears layer converts the audio to text and sends the text to the Brain for processing (via Wit, right now).
But Wit has made it possible to directly post audio and get an understanding back: https://wit.ai/blog/2013/11/05/ios-and-speech
So, should the brain be able to take audio as a form of input?
It looks like something is preventing Bundler from installing from a source specified with https://.
Always deploys from master for some reason specific to CI.
adam_cookbook is supposed to be an installer, based on Chef, for Adam Snark Rabbit and his dependencies, either as an all-in-one or selecting individual components. There are several problems with this, and one is a circular dependency.
Adam has two types of dependencies:
Currently the app project uses the cookbook to provision development/testing environments for the following reasons:
The installer, of course, also relies on the content of the application repository in order to actually install it. This means coordination overhead between the two projects and being circular this is tricky.
Ideally, the close concerns for testing the apps should be contained with the apps themselves, and the apps should be packaged in such a way that they have no internal dependencies that require separate installation, making deployment easier. The external test dependencies should be provided independently from the installer, either composition of sub-projects or as loosely-related resources provided either by the CI system itself or by other means.
[2013-12-13 16:24:58] FATAL App: AMQP connection failed. Going down.
[2013-12-13 16:24:58] INFO Adhearsion::Process: Transitioning from booting to stopped with 0 active calls due to stop event.
[2013-12-13 16:24:58] INFO App: Shutting down while connecting. Breaking the connection block.
[2013-12-13 16:24:58] INFO Adhearsion::Process: Adhearsion shut down
[2013-12-13 16:24:58] DEBUG Celluloid: Terminating 4 actors...
BRAIN DEATH!
This is pending a solution to RiotGamesCookbooks/rbenv-cookbook#52
As we discussed at the last Convocation, I have some thoughts that the Brain should be a direct Rayo client. For much of the rich interactions we want to do, the Brain will need to be able to execute apps and have fine-grain control over the inputs and outputs to do so. THe job of Ears or Fingers should probably be limited to reading input and output in the native form (XMPP, SIP) and sending the messages to the brain (Rayo). Without this, we end up simply using AMQP as a carrier channel for the Rayo messages anyway.
This also means figuring out how input grammars apply to IM.
We still need AMQP, but mostly so we can easily plug in neurons.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.