From 770fbe1caf409255b1115be830b7fc34a94d1873 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Fri, 1 Mar 2019 15:34:29 -0300 Subject: [PATCH] chore(docs): Refactoring of .md. --- 01 - Overview.md | 187 ------------------------- Using Coversational BASIC.md | 12 -- book/acknowledgments.md | 15 ++ book/chapter-01-Index.md | 62 ++++++++ book/chapter-02-Package Reference.md | 69 +++++++++ book/chapter-03-.gbkb reference.md | 13 ++ book/chapter-04-.gbtheme reference.md | 9 ++ book/chapter-05-.gbdialog reference.md | 37 +++++ book/chapter-06-.gbapp reference.md | 125 +++++++++++++++++ book/chapter-07-Administration.md | 25 ++++ book/chapter-08-Tooling.md | 5 + book/chapter-09-Services.md | 0 book/chapter-10-Contributing.md | 10 ++ book/copyright.md | 22 +++ book/cover.png | Bin 0 -> 36060 bytes book/foreward.md | 3 + book/glossary.md | 3 + book/metadata.yaml | 43 ++++++ book/preface.md | 3 + book/references.yaml | 22 +++ 20 files changed, 466 insertions(+), 199 deletions(-) delete mode 100644 01 - Overview.md delete mode 100644 Using Coversational BASIC.md create mode 100644 book/acknowledgments.md create mode 100644 book/chapter-01-Index.md create mode 100644 book/chapter-02-Package Reference.md create mode 100644 book/chapter-03-.gbkb reference.md create mode 100644 book/chapter-04-.gbtheme reference.md create mode 100644 book/chapter-05-.gbdialog reference.md create mode 100644 book/chapter-06-.gbapp reference.md create mode 100644 book/chapter-07-Administration.md create mode 100644 book/chapter-08-Tooling.md create mode 100644 book/chapter-09-Services.md create mode 100644 book/chapter-10-Contributing.md create mode 100644 book/copyright.md create mode 100644 book/cover.png create mode 100644 book/foreward.md create mode 100644 book/glossary.md create mode 100644 book/metadata.yaml create mode 100644 book/preface.md create mode 100644 book/references.yaml diff --git a/01 - Overview.md b/01 - Overview.md deleted file mode 100644 index eb1d657e..00000000 --- a/01 - Overview.md +++ /dev/null @@ -1,187 +0,0 @@ - - -Package Quick Reference ------------- -|Whatsapp|Web|Core|KB| -|----|-----|----|----| -|[whatsapp.gblib](https://github.com/pragmatismo-io/BotServer/tree/master/packages/whatsapp.gblib)|[default.gbui](https://github.com/pragmatismo-io/BotServer/tree/master/packages/default.gbui)|[core.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/core.gbapp)|[kb.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/kb.gbapp)| - -### The bot development stack - -![General Bot Logo](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-stack.png) - -### The Bot Factory - -![General Bots Block Architecture](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-block-architecture.png) - -GeneralBots aims to delivery bots in azure in a very easy and fast fashion. Use Office tools like Word or Excel to edit your Bot - using code (JavaScript or TypeScript) just to empower custom requirements. - - -#### Use Excel for (Hierarchical) Knowledge Base Editing - -![General Bots Inside Excel can enable bot production the masses](https://github.com/pragmatismo-io/BotServer/blob/master/docs/images/general-bots-composing-subjects-json-and-excel.gif) - -#### Use Visual Studio for a complete .gbai package building system - -![General Bots Inside Visual Studio Code provides a complete artificial intelligence based conversational platform](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-inside-visual-studio-code-provides-a-complete-artificial-intelligence-based-conversational-platform.png) - - -How To ------- - -### Run the server locally - -1. Install [Node.js](https://www.npmjs.com/get-npm) the current generation General Bot code execution platform; -2. Open a **Terminal** on Linux and Mac or a **Command Prompt** window on Windows; -3. Type `npm install -g botserver` and press *ENTER*; -4. Type `gbot` to run the server core. - -Notes: - -* [*nodejs.install* Chocolatey Package](https://chocolatey.org/packages/nodejs.install) is also available. -* The zip source code of General Bot is also available for [Download](https://codeload.github.com/pragmatismo-io/BotServer/zip/master); - -### Configure the server to deploy specific directory - -1. Create/Edit the .env file and add the ADDITIONAL_DEPLOY_PATH key pointing to the .gbai local parent folder of .gbapp, .gbot, .gbtheme, .gbkb package directories. -2. Specify STORAGE_SYNC to TRUE so database sync is run when the server is run. -3. In case of Microsoft SQL Server add the following keys: STORAGE_SERVER, STORAGE_NAME, STORAGE_USERNAME, STORAGE_PASSWORD, STORAGE_DIALECT to `mssql`. - -Note: - -* You can specify several bots separated by semicolon, the BotServer will serve all of them at once. - -## Setup development environment (Windows) - -1. [Optional] Install [Chocolatey](https://chocolatey.org/install), a Windows Package Manager; -2. Install [git](`https://git-scm.com/`), a Software Configuration Management (SCM).; -3. Install [Node.js](npmjs.com/get-npm), a [Runtime system](https://en.wikipedia.org/wiki/Runtime_system). -(https://www.npmjs.com/get-npm) (suggested: LTS 8.x.x); -4. Install [Visual Studio Code](https://chocolatey.org/packages/nodejs.install), Brackets or Atom as an editor of your choice; -5. [Fork](https://en.wikipedia.org/wiki/Fork_(software_development)) by visiting https://github.com/pragmatismo-io/BotServer/fork -6. Clone the just forked repository by running `git clone /BotServer.git` ; -7. Run `npm install -g typescript`; -8. Run `npm install` on Command Prompt or PowerShell on the General Bot source-code folder; -9. Enter './packages/default.gbui' folder; -10. Run `npm install` folled by `npm run build` (To build default Bot UI); -11. Enter the On the downloaded folder (../..); -12. Compile the bot server by `tsc`. -13. Run the bot server by `npm start`. - -Note: - -* Whenever you are ready to turn your open-source bot ideas in form of .gbapp (source-code) and artifacts like .gbkb, .gbtheme, .gbot or the .gbai full package read [CONTRIBUTING.md](https://github.com/pragmatismo-io/BotServer/blob/master/CONTRIBUTING.md) about performing Pull Requests (PR) and creating other public custom packages repositories of your own personal or organization General Bot Community Edition powered packages. - -### Running unit tests - -1. Enter the BotServer root folder. -2. Run tests by `npm test`. - -### Just copy the source code to your machine - -1. [Download] the Zip file of (https://codeload.github.com/pragmatismo-io/BotServer/zip/master) - -### Updating the Bot Knoledge Base (.gbkb folder) - -The subjects.json file contains all information related to the subject tree and can be used to build the menu carrousel as well give a set of words to be used as subject catcher in the conversation. A hierarchy can be specified. - -### Creating a new Theme folder (.gbtheme folder) - -A theme is composed of some CSS files and images. That set of files can change -everything in the General Bot UI. Use them extensively before going to change -the UI application itself (HTML & JS). - -Package Types -------------- - -### .gbai - -Embraces all packages types (content, logic & conversation) into a pluggable bot -directory. [A sample .gbai is available](https://github.com/pragmatismo-io/IntranetBotQuickStart.gbai). - -### .gbapp - -The artificial intelligence extensions in form of pluggable apps. Dialogs, -Services and all model related to data. A set of interactions, use cases, -integrations in form of conversationals dialogs. -The .gbapp adds the General Bot base library (botlib) for building Node.js TypeScript Apps packages. - - -Four components builds up a General Bot App: - -* dialogs -* models -* services -* tests - -#### Dialogs - -All code contained in a dialog builds the flow to custom conversations in -built-in and additional packages . - - -#### Models - -Models builds the foundation of data relationships in form of entities. - - -#### Services - -Services are a façade for bot back-end logic and other custom processing. - -#### Tests - -Tests try to automate code execution validation before crashing in production. - - -### .gbot - -An expression of an artificial inteligence entity. A .gbot file defines -all bots dependencies related to services and other resources. - -### .gbtheme - -A theme of a bot at a given time. CSS files & images that can compose all UI -presentation and using it a branding can be done. [A sample .gbtheme is available](https://github.com/pragmatismo-io/Office365.gbtheme) - -### .gbkb - -A set of subjects that bot knows in a form of hierarchical menu-based QnA. [A sample .gbkb is available](https://github.com/pragmatismo-io/ProjectOnline.gbkb). - -### .gblib - -Shared code that can be used across bot apps. - -Reference ---------- - -### GeneralBots admin commands - -General Bot can be controlled by the same chat window people talk to, so -here is a list of admin commands related to deploying .gb* files. - -| Command | Description | -|-----------------|-----------------------------------------------------------------------------------------------------------------| -| deployPackage | Deploy a KB package. Usage **deployPackage** [package-name]. Then, you need to run rebuildIndex. | -| undeployPackage | Undeploy a KB. Usage **undeployPackage** [package-name]. | -| redeployPackage | Undeploy and then deploys the KB. Usage **redeployPackage** [package-name]. Then, you need to run rebuildIndex. | -| setupSecurity | Setup connection to user directories. | - -Discontinued commands: - -| Command | Description |Reason | -|-----------------| -----------------------------------------------------------------------------------------------------------------|------| -| rebuildIndex | Rebuild Azure Search indexes, must be run after **deployPackage** or **redeployPackage**. | Now it is called automatically | - -### Credits & Inspiration - -* Rodrigo Rodriguez (me@rodrigorodriguez.com) - Coding, Docs & Architecture -* David Lerner (david.lerner@hotmail.com) - UI, UX & Theming -* Eduardo Romeiro (eromeirosp@outlook.com) - Content & UX. -* Jorge Ramos (jramos@pobox.com) - Coding, Docs & Architecture -* PH Nascimento (ph.an@outlook.com) - Product Manager - -Powered by Microsoft [BOT Framework](https://dev.botframework.com/) and [Azure](http://www.azure.com). - -General Bot Code Name is [Guaribas](https://en.wikipedia.org/wiki/Guaribas), the name of a city in Brasil, state of Piaui. -[Roberto Mangabeira Unger](http://www.robertounger.com/en/): "No one should have to do work that can be done by a machine". diff --git a/Using Coversational BASIC.md b/Using Coversational BASIC.md deleted file mode 100644 index eccce7b1..00000000 --- a/Using Coversational BASIC.md +++ /dev/null @@ -1,12 +0,0 @@ - - -General Bots BASIC reference - - -| Instruction | Description | -|--------------------------------|------------------------------------------------------------------| -| HEAR variable | Hears something from the person into a variable for later use. | -| TALK message | Talk the specified text to the person. | -| GENERATE A PASSWORD | Creates a new password into the variable password for later use. | -| CREATE A BOT FARM USING params | Deploys a new bot farm to the cloud. | -| WAIT seconds | Wait a number of seconds before continuing the conversation. | \ No newline at end of file diff --git a/book/acknowledgments.md b/book/acknowledgments.md new file mode 100644 index 00000000..122eb4ca --- /dev/null +++ b/book/acknowledgments.md @@ -0,0 +1,15 @@ +# Acknowledgments + +### Credits & Inspiration + +* Rodrigo Rodriguez (me@rodrigorodriguez.com) - Coding, Docs & Architecture +* David Lerner (david.lerner@hotmail.com) - UI, UX & Theming +* Eduardo Romeiro (eromeirosp@outlook.com) - Content & UX. +* Jorge Ramos (jramos@pobox.com) - Coding, Docs & Architecture +* PH Nascimento (ph.an@outlook.com) - Product Manager + +Powered by Microsoft [BOT Framework](https://dev.botframework.com/) and [Azure](http://www.azure.com). + +General Bot Code Name is [Guaribas](https://en.wikipedia.org/wiki/Guaribas), the name of a city in Brasil, state of Piaui. +[Roberto Mangabeira Unger](http://www.robertounger.com/en/): "No one should have to do work that can be done by a machine". + diff --git a/book/chapter-01-Index.md b/book/chapter-01-Index.md new file mode 100644 index 00000000..75be2a32 --- /dev/null +++ b/book/chapter-01-Index.md @@ -0,0 +1,62 @@ +# General Bots Book + +## Package Quick Reference + +|Whatsapp|Web|Core|KB| +|----|-----|----|----| +|[whatsapp.gblib](https://github.com/pragmatismo-io/BotServer/tree/master/packages/whatsapp.gblib)|[default.gbui](https://github.com/pragmatismo-io/BotServer/tree/master/packages/default.gbui)|[core.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/core.gbapp)|[kb.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/kb.gbapp)| + +### The bot development stack + +![General Bot Logo](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-stack.png) + +### The Bot Factory + +![General Bots Block Architecture](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-block-architecture.png) + +GeneralBots aims to delivery bots in azure in a very easy and fast fashion. Use Office tools like Word or Excel to edit your Bot - using code (JavaScript or TypeScript) just to empower custom requirements. + +## How To + +### Run the server locally + +1. Install [Node.js](https://www.npmjs.com/get-npm) the current generation General Bot code execution platform; +2. Open a **Terminal** on Linux and Mac or a **Command Prompt** window on Windows; +3. Type `npm install -g botserver` and press *ENTER*; +4. Type `gbot` to run the server core. + +Notes: + +* [*nodejs.install* Chocolatey Package](https://chocolatey.org/packages/nodejs.install) is also available. +* The zip source code of General Bot is also available for [Download](https://codeload.github.com/pragmatismo-io/BotServer/zip/master); + +### Running unit tests + +1. Enter the BotServer root folder. +2. Run tests by `npm test`. + +### Just copy the source code to your machine + +1. [Download](https://codeload.github.com/pragmatismo-io/BotServer/zip/master) the Zip file. + + +## Trainning Topics + +* Clone BotServer, BotLib repository +* Keyboard centric +* WIN: micro.exe +* Launcher +* dir/ls/ll, cd, mkdir, move +* Npm run build +* npm update -g +* node -v +* SHIFT+PAGE DOWN/UP on Terminal Window +* ncu -a Update all packages in package.json +* npm update -g All NPM package on the system +* Introduction to General Bo +* Environment setup and get the server runni +* KB loading +* NLP and toolin +* Find a NPM package to create a .gbapp that asks for data and output the result +* Visual Studio Code Insiders and plugins +* Run Build Task tsc:watch diff --git a/book/chapter-02-Package Reference.md b/book/chapter-02-Package Reference.md new file mode 100644 index 00000000..d575c1fb --- /dev/null +++ b/book/chapter-02-Package Reference.md @@ -0,0 +1,69 @@ +# General Bots Packages Reference + +## How To + +### Configure the server to deploy specific directory + +1. Create/Edit the .env file and add the ADDITIONAL_DEPLOY_PATH key pointing to the .gbai local parent folder of .gbapp, .gbot, .gbtheme, .gbkb package directories. +2. Specify STORAGE_SYNC to TRUE so database sync is run when the server is run. +3. In case of Microsoft SQL Server add the following keys: STORAGE_SERVER, STORAGE_NAME, STORAGE_USERNAME, STORAGE_PASSWORD, STORAGE_DIALECT to `mssql`. + +Note: + +- You can specify several bots separated by semicolon, the BotServer will serve all of them at once. + +## Package Types + +### .gbai + +Embraces all packages types (content, logic & conversation) into a pluggable bot +directory. [A sample .gbai is available](https://github.com/pragmatismo-io/IntranetBotQuickStart.gbai). + +### .gbapp + +The artificial intelligence extensions in form of pluggable apps. Dialogs, +Services and all model related to data. A set of interactions, use cases, +integrations in form of conversationals dialogs. +The .gbapp adds the General Bot base library (botlib) for building Node.js TypeScript Apps packages. + +Four components builds up a General Bot App: + +- dialogs +- models +- services +- tests + +#### Dialogs + +All code contained in a dialog builds the flow to custom conversations in +built-in and additional packages . + +#### Models + +Models builds the foundation of data relationships in form of entities. + +#### Services + +Services are a façade for bot back-end logic and other custom processing. + +#### Tests + +Tests try to automate code execution validation before crashing in production. + +### .gbot + +An expression of an artificial inteligence entity. A .gbot file defines +all bots dependencies related to services and other resources. + +### .gbtheme + +A theme of a bot at a given time. CSS files & images that can compose all UI +presentation and using it a branding can be done. [A sample .gbtheme is available](https://github.com/pragmatismo-io/Office365.gbtheme) + +### .gbkb + +A set of subjects that bot knows in a form of hierarchical menu-based QnA. [A sample .gbkb is available](https://github.com/pragmatismo-io/ProjectOnline.gbkb). + +### .gblib + +Shared code that can be used across bot apps. diff --git a/book/chapter-03-.gbkb reference.md b/book/chapter-03-.gbkb reference.md new file mode 100644 index 00000000..11d47c50 --- /dev/null +++ b/book/chapter-03-.gbkb reference.md @@ -0,0 +1,13 @@ +# .gbkb Reference + + + +## How To + +### Updating the Bot Knoledge Base (.gbkb folder) + +The subjects.json file contains all information related to the subject tree and can be used to build the menu carrousel as well give a set of words to be used as subject catcher in the conversation. A hierarchy can be specified. + +### Use Excel for (Hierarchical) Knowledge Base Editing + +![General Bots Inside Excel can enable bot production the masses](https://github.com/pragmatismo-io/BotServer/blob/master/docs/images/general-bots-composing-subjects-json-and-excel.gif) diff --git a/book/chapter-04-.gbtheme reference.md b/book/chapter-04-.gbtheme reference.md new file mode 100644 index 00000000..a3e1ed4a --- /dev/null +++ b/book/chapter-04-.gbtheme reference.md @@ -0,0 +1,9 @@ +# .gbtheme Reference + +## How To + +### Creating a new Theme folder (.gbtheme folder) + +A theme is composed of some CSS files and images. That set of files can change +everything in the General Bot UI. Use them extensively before going to change +the UI application itself (HTML & JS). diff --git a/book/chapter-05-.gbdialog reference.md b/book/chapter-05-.gbdialog reference.md new file mode 100644 index 00000000..c9ec7334 --- /dev/null +++ b/book/chapter-05-.gbdialog reference.md @@ -0,0 +1,37 @@ +# .gbdialog Reference + +## Using Conversational BASIC + +## General Bots BASIC reference + +| Instruction | Description | +|----------------------------------|-----------------------------------------------------------------------------| +| hear *variable* | Hears something from the person into a *variable* for later use. | +| talk *message* | Talk the specified *message* to the person. | +| generate a password | Creates a new password into the system variable **password** for later use. | +| create a bot farm using *params* | Deploys a new bot farm to the cloud. | +| wait *seconds* | Wait a number of seconds before continuing the conversation. | + +## How To + +### Generate a password for the person + +```vb + + +talk "Let's generate a very dificult to guess password for the new bot:" +generate a password +talk "Your password is *" + password + "*. Keep it on a safe place only acessible to you." + + +``` + +### Get the list of cloud subscriptions + +```vb + +hear one of subscriptions with email, password into subscriptionId +talk "The subscription selected was: " + subscriptionId + + +``` diff --git a/book/chapter-06-.gbapp reference.md b/book/chapter-06-.gbapp reference.md new file mode 100644 index 00000000..022cba2b --- /dev/null +++ b/book/chapter-06-.gbapp reference.md @@ -0,0 +1,125 @@ +# .gbapp Guide + +## Introduction + +.gbapp is the folder extension for the General Bots Application package type. +Anything inside a folder considered a .gbapp will be consumed by the server +like a TypeScript application. This conversational application will contain +the source code for custom dialogs and behaviour for any .gbot that associate +this deployed .gbapp. + +## Preparing Environment + +### Windows + +1. [Optional] Install [Chocolatey](https://chocolatey.org/install), a Windows Package Manager; +2. Install [git](`https://git-scm.com/`), a Software Configuration Management (SCM).; +3. Install [Node.js](npmjs.com/get-npm), a [Runtime system](https://en.wikipedia.org/wiki/Runtime_system); +4. Install Visual Studio Code Insiders, Brackets or Atom as an editor of your choice; +5. Fork the repository by visiting https://github.com/pragmatismo-io/BotServer/fork; +6. Clone the just forked repository by running `git clone /BotServer.git`; +7. Run `npm install -g typescript`; +8. Run the bot server by `gbot.cmd`. + + +* Recomended Chocolatey packages + +```cmd + +choco feature enable -n allowGlobalConfirmation + +cinst git --confirm +cinst nodejs --confirm +npm install -g npm-check-updates + +cinst 7zip.install --confirm +cinst tortoisegit --confirm +cinst winscp --confirm +cinst sysinternals --confirm +cinst putty --confirm +cinst pandoc --confirm +cinst curl --confirm +cinst micro --confirm +cinst ccleaner --confirm +cinst notepadplusplus --confirm +cinst sql-server-management-studio --confirm + +``` + +![General Bots Inside Visual Studio Code provides a complete artificial intelligence based conversational platform](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-inside-visual-studio-code-provides-a-complete-artificial-intelligence-based-conversational-platform.png) + + +## Specifications + +## Dialogs + +The dialog is built by specifing series of methods, disposed as an array as seen +on Figure 1. Each dialog has also an identifier that can be called by several +engines like kb.gbapp, which handles cloud based search for documents and other +knowledge base information and also routes for the natural language processing +(NLP) engine. + +```typescript + +static getDialogs(bot: BotAdapter, min: GBMinInstance) { + return [{name:"/convertTemperature", waterfall: [ + async step => { + }, + async step => { + }, + async step => { + }] + },{name:"/convertCurrency", waterfall: [ + async step => { + }, + async step => { + }, + async step => { + }] + } + ] +``` + + *Figure 1 - How to build dialogs in General Bots using TypeScript* + +## How To... + +### Debugging .gbapp deployed on Azure + +1. Visit https://.scm.azurewebsites.net/api/vfs/LogFiles/Application/index.html + +## Tooling + +### JavaScript + +| Título | Endereço | +|--------|---------------------------------------------------------------------| +| | https://deeplearnjs.org/ | +| | Oimo.js http://lo-th.github.io/Oimo.js/\#stacking | +| | js-sequence-diagrams: https://bramp.github.io/js-sequence-diagrams/ | +| | http://blog.avenuecode.com/a-library-for-data-visualization-d3.js | +| Chrome inside Node.js | https://github.com/GoogleChrome/puppeteer| +| XLSX loader | https://github.com/mgcrea/node-xlsx | +| Node.js bindings for CNTK | https://github.com/nadavbar/node-cntk | +| API Repository | https://any-api.com/| +| ORM | http://docs.sequelizejs.com/manual/tutorial/associations.html +| Migração de .NET para JavaScript (Node.js) | https://www.reddit.com/r/webdev/comments/2val7s/as_a_net_developer_do_i_need_to_care_about_nodejs | +| Simplified JavaScript Jargon | http://jargon.js.org | + +### Packages + +| Título | Descrição | URL | +|--------|---------------------------------------------------------------------|-----------------| +| MSAL | Microsoft Authentication Library | https://www.npmjs.com/package/msal| + + +### Visual Studio Code Extensions + + +| Title | Description | +| ------|-------------| +| mbinic.tgit-cmds | Set of commands for launching TortoiseGit dialogs | +| tomashubelbauer.vscode-markdown-table-format | Formats MarkDown tables so that all columns have the same width | +| esbenp.prettier-vscode | VS Code plugin for prettier/prettier (wraps at column 80) | +| mikestead.dotenv | .env support | + diff --git a/book/chapter-07-Administration.md b/book/chapter-07-Administration.md new file mode 100644 index 00000000..6bf82ede --- /dev/null +++ b/book/chapter-07-Administration.md @@ -0,0 +1,25 @@ +# General Bots Administration + +## Commands + +General Bot can be controlled by the same chat window people talk to, so +here is a list of admin commands related to deploying .gb* files. + +| Command | Description | +|-----------------|-----------------------------------------------------------------------------------------------------------------| +| deployPackage | Deploy a KB package. Usage **deployPackage** [package-name]. Then, you need to run rebuildIndex. | +| undeployPackage | Undeploy a KB. Usage **undeployPackage** [package-name]. | +| redeployPackage | Undeploy and then deploys the KB. Usage **redeployPackage** [package-name]. Then, you need to run rebuildIndex. | +| setupSecurity | Setup connection to user directories. | + +Discontinued commands: + +| Command | Description | Reason | +|--------------|-------------------------------------------------------------------------------------------|--------------------------------| +| rebuildIndex | Rebuild Azure Search indexes, must be run after **deployPackage** or **redeployPackage**. | Now it is called automatically | + +## How to + +### Move to production (Azure) + +* Update bot endpoint; diff --git a/book/chapter-08-Tooling.md b/book/chapter-08-Tooling.md new file mode 100644 index 00000000..453a4b67 --- /dev/null +++ b/book/chapter-08-Tooling.md @@ -0,0 +1,5 @@ + + +## Quality Assurance + +https://codecept.io/nightmare \ No newline at end of file diff --git a/book/chapter-09-Services.md b/book/chapter-09-Services.md new file mode 100644 index 00000000..e69de29b diff --git a/book/chapter-10-Contributing.md b/book/chapter-10-Contributing.md new file mode 100644 index 00000000..d1e7a417 --- /dev/null +++ b/book/chapter-10-Contributing.md @@ -0,0 +1,10 @@ +# Contributing to the General Bots open-core + +## How To + +### Make commit + +See these guides: + +* [1](https://seesparkbox.com/foundry/semantic_commit_messages) +* [2](http://karma-runner.github.io/0.10/dev/git-commit-msg.html) diff --git a/book/copyright.md b/book/copyright.md new file mode 100644 index 00000000..ddb4b847 --- /dev/null +++ b/book/copyright.md @@ -0,0 +1,22 @@ +# + +{<} Published by %publisher% + +{<} Copyright © %copyright-year% %copyright-owner% + +{<} License & Warranty + +General Bot Copyright (c) Pragmatismo.io. All rights reserved. Licensed under the AGPL-3.0. + +According to our dual licensing model, this program can be used either under the terms of + +the GNU Affero General Public License, version 3, or under a proprietary license. + +The texts of the GNU Affero General Public License with an additional permission and of our proprietary license can be found at and in the LICENSE file you have received along with this program. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + +"General Bots" is a registered trademark of Pragmatismo.io. The licensing of the program under the AGPLv3 does not imply a trademark license. Therefore any rights, title and interest in our trademarks remain entirely with us. + +{<} www.pragmatismo.io + diff --git a/book/cover.png b/book/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..79d7b26a6726c173efb800e522f8c333e3665113 GIT binary patch literal 36060 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 literal 0 HcmV?d00001 diff --git a/book/foreward.md b/book/foreward.md new file mode 100644 index 00000000..dff3d3f4 --- /dev/null +++ b/book/foreward.md @@ -0,0 +1,3 @@ +# Foreward + + diff --git a/book/glossary.md b/book/glossary.md new file mode 100644 index 00000000..658cbe09 --- /dev/null +++ b/book/glossary.md @@ -0,0 +1,3 @@ +# Glossary + + diff --git a/book/metadata.yaml b/book/metadata.yaml new file mode 100644 index 00000000..92a3b7c4 --- /dev/null +++ b/book/metadata.yaml @@ -0,0 +1,43 @@ +copyright: + owner: Pragmatismo.io + year: 2019 + +title: "General Bots Book" +subtitle: "Building virtual assistants" + +publisher: Pragmatismo.io + +# Whether or not to enable PlantUML. You must install PlantUML, and the +# "plantuml" command must be in your path, if you enable this feature. +# +# Default, if not specified: false +use_plantuml: false + +# Whether PDF generation uses Weasy Print (true) or LaTeX (false). Defaults to +# false (LaTeX). +use_weasyprint: true + +# Set to the language in which the book is written. This is especially +# useful when generating PDF with weasyprint, because it affects how +# hyphenation is handled. (When using weasyprint, automatic hyphenation is +# supported for any language that Pyphen supports.) + +# Multiple authors are permitted. +author: +- Rodrigo Rodriguez + +# Book identifier is optional. +#identifier: +# scheme: ISBN # or DOI +# text: 123456789X + +# The language and variant in which the book is written. +language: en-US + +# See https://wiki.mobileread.com/wiki/Genre +genre: reference + +# Set this option if you need to change the paper size. Default is "letter". +# "A4" is also valid. + +papersize: A4 diff --git a/book/preface.md b/book/preface.md new file mode 100644 index 00000000..15d23aa6 --- /dev/null +++ b/book/preface.md @@ -0,0 +1,3 @@ +# Preface + +Probably not necessary. diff --git a/book/references.yaml b/book/references.yaml new file mode 100644 index 00000000..fec24c16 --- /dev/null +++ b/book/references.yaml @@ -0,0 +1,22 @@ +# Bibiographic references +references: +- type: book + id: GeneralBots + author: + - family: Rodriguez + given: Rodrigo + - family: + given: + issued: + date-parts: + - - 2019 + - 3 + - 1 + title: 'General Bots Reference' + title-short: General Bots Reference + container-title: Nature + volume: 0 + issue: 0 + page: 300 + URL: https://github.com/GeneralBots + language: en-US