- Notifications
You must be signed in to change notification settings - Fork65
An open "intelligent" assistant for the web that can listen to you and learn.
License
mysamai/mysam
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Sam is an open-source, web-based"intelligent" assistant. It can listen to you, learn new actions and is extensible with JavaScript plugins running in any modern browser.
Watch this video to see what Sam can do:
mkdir mysam-testcd mysam-test
Create the followingindex.html
<!DOCTYPE html><html><head><title>MySam</title><linkhref="https://fonts.googleapis.com/css?family=Muli:400,400italic"rel="stylesheet"type="text/css"><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"><linkrel="stylesheet"href="https://unpkg.com/mysam-ui@0.0.2/dist/styles.css"></head><body><divid="content"class="full"></div><scriptsrc="https://unpkg.com/mysam@0.2.0-pre.1/dist/mysam.js"></script><scriptsrc="https://unpkg.com/mysam-ui@0.0.2/dist/mysam-ui.js"></script><script>// Initialize API (in the browser)constapp=mysam();// Load the UIconstsam=mysamUi(document.getElementById('content'),app);</script></body></html>
Then serve serve the folder from a webserver, e.g. with
npm i -g node-staticstatic
And visit it in a browser (herelocalhost:8080).
In the<script>
section above add
// Add a new plugin to the list of learnable actionssam.learn('myplugin',{description:'Say hello from my plugin'});// Register the action to perform when a classificationc comes insam.action('myplugin',(el,classification={})=>{// `el` is the main HTML element to render in// classification has information about what was saidel.innerHTML='Hello from myplugin! You said: '+classification.text;});
mkdir mysam-testcd mysam-testnpm init --yes
Add the followingwebpack.config.json
:
constpath=require('path');constwebpack=require('webpack');constmerge=require('webpack-merge');constUglifyJSPlugin=require('uglifyjs-webpack-plugin');constenv=process.env.NODE_ENV||'development';constcommons={context:path.join(__dirname,'src'),entry:'./index.js',output:{filename:path.join('dist','app.js')},module:{rules:[{test:/\.jsx?$/,exclude:/node_modules\/(?!(feathers|mysam|mysam-ui))/,loader:'babel-loader'}]},node:{fs:'empty'}};constdev={devtool:'source-map',devServer:{port:3030,contentBase:'.',compress:true}};constproduction={devtool:'cheap-module-source-map',output:{filename:path.join('dist','nina.js')},plugins:[newUglifyJSPlugin({compress:{warnings:false,screw_ie8:true},comments:false,sourceMap:false}),newwebpack.DefinePlugin({'process.env.NODE_ENV':JSON.stringify('production')})]};module.exports=merge(commons,env!=='development' ?production :dev);
Install devDependencies
npm install babel-core babel-loader babel-polyfill babel-preset-es2015 babel-preset-react uglify-js uglifyjs-webpack-plugin webpack webpack-dev-server webpack-merge --save-dev
And main dependencies
npm install mysam@pre mysam-ui react react-dom --save
Add a start script topackage.json
:
"start": "webpack-dev-server",
And runnpm start
.
Website and more in-depth documentation coming soon!
About
An open "intelligent" assistant for the web that can listen to you and learn.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.