botserver/docs/reference/index.html

357 lines
No EOL
20 KiB
HTML

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>botserver</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="assets/js/search.js" data-base=".">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="index.html" class="title">botserver</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="globals.html">Globals</a>
</li>
</ul>
<h1> botserver</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<div class="tsd-panel tsd-typography">
<h1 id="general-bots-community-edition-preview">General Bots Community Edition Preview</h1>
<p><img src="https://github.com/pragmatismo-io/BotServer/blob/master/logo.png" alt="General Bots Logo"></p>
<h2 id="welcome-to-general-bots-">Welcome to General Bots!</h2>
<p>General Bots is a package based chat bot server focused in convention
over configuration and code-less approaches, which brings software packages<br>and application server concepts to help parallel bot development.</p>
<p>Also, everyone can create bots copying and pasting some files and using their
favorite tools like Excel (or any .tsv editor) or Photoshop (or any .png
editor).</p>
<h3 id="what-is-bot-server-">What is Bot Server?</h3>
<p>Bot Server accelerates the process of developing a bot. It provisions all code
base, resources and deployment to the cloud, and gives you templates you can
choose from when you create a bot. Uses a database and tables as backend and
allow you to further modify your bot package directly downloading it in a ZIP
file and editing it and uploading it back to the server (deploying process).
Besides providing a framework to develop bot packages in a more advanced
editor like Visual Studio Code, Atom or Brackets.</p>
<h3 id="the-same-build-process-for-everyone">The same build process for everyone</h3>
<p>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.</p>
<h2 id="how-to">How To</h2>
<h3 id="updating-the-bot-knoledge-base-gbkb-folder-">Updating the Bot Knoledge Base (.gbkb folder)</h3>
<p>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.</p>
<h3 id="creating-a-new-theme-folder-gbtheme-folder-">Creating a new Theme folder (.gbtheme folder)</h3>
<p>A theme is composed of some CSS files and images. That set of files can change
everything in the General Bots UI. Use them extensively before going to change
the UI application itself (HTML &amp; JS).</p>
<h2 id="package-types">Package Types</h2>
<h3 id="-gbai">.gbai</h3>
<p>Embraces all packages types (content, logic &amp; conversation) into a pluggable bot
directory.</p>
<h3 id="-gbapp">.gbapp</h3>
<p>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 Bots base library (botlib) for building Node.js TypeScript Apps packages.</p>
<p>Four components builds up a General Bots App:</p>
<ul>
<li>dialogs</li>
<li>models</li>
<li>services</li>
<li>tests</li>
</ul>
<h4 id="dialogs">Dialogs</h4>
<p>All code contained in a dialog builds the flow to custom conversations in
built-in and additional packages .</p>
<h4 id="models">Models</h4>
<p>Models builds the foundation of data relationships in form of entities.</p>
<h4 id="services">Services</h4>
<p>Services are a façade for bot back-end logic and other custom processing.</p>
<h4 id="tests">Tests</h4>
<p>Tests try to automate code execution validation before crashing in production.</p>
<h3 id="-gbot">.gbot</h3>
<p>An expression of an artificial inteligence entity. A .gbot file defines
all bots dependencies related to services and other resources.</p>
<h3 id="-gbtheme">.gbtheme</h3>
<p>A theme of a bot at a given time. CSS files &amp; images that can compose all UI
presentation and using it a branding can be done.</p>
<h3 id="-gbkb">.gbkb</h3>
<p>A set of subjects that bot knows.</p>
<h3 id="-gblib">.gblib</h3>
<p>Shared code that can be used across bot apps.</p>
<h2 id="reference">Reference</h2>
<h3 id="generalbots-admin-commands">GeneralBots admin commands</h3>
<p>General Bots can be controlled by the same chat window people talk to, so
here is a list of admin commands related to deploying .gb* files.</p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>deployPackage</td>
<td>Deploy a KB package. Usage <strong>deployPackage</strong> [package-name]. Then, you need to run rebuildIndex.</td>
</tr>
<tr>
<td>undeployPackage</td>
<td>Undeploy a KB. Usage <strong>undeployPackage</strong> [package-name].</td>
</tr>
<tr>
<td>redeployPackage</td>
<td>Undeploy and then deploys the KB. Usage <strong>redeployPackage</strong> [package-name]. Then, you need to run rebuildIndex.</td>
</tr>
<tr>
<td>rebuildIndex</td>
<td>Rebuild Azure Search indexes, must be run after <strong>deployPackage</strong> or <strong>redeployPackage</strong>.</td>
</tr>
</tbody>
</table>
<h3 id="credits-inspiration">Credits &amp; Inspiration</h3>
<ul>
<li>Rodrigo Rodriguez (<a href="mailto:me@rodrigorodriguez.com">me@rodrigorodriguez.com</a>) - Coding, Docs &amp; Architecture.</li>
<li>David Lerner (<a href="mailto:david.lerner@hotmail.com">david.lerner@hotmail.com</a>) - UI, UX &amp; Theming</li>
<li>Eduardo Romeiro (<a href="mailto:eromeirosp@outlook.com">eromeirosp@outlook.com</a>) - Content &amp; UX</li>
</ul>
<p>Powered by Microsoft <a href="https://dev.botframework.com/">BOT Framework</a> and <a href="http://www.azure.com">Azure</a>.</p>
<p>General Bots Code Name is <a href="https://en.wikipedia.org/wiki/Guaribas">Guaribas</a>, the name of a city in Brasil, state of Piaui.
<a href="http://www.robertounger.com/en/">Roberto Mangabeira Unger</a>: &quot;No one should have to do work that can be done by a machine&quot;.</p>
<h2 id="license-warranty">License &amp; Warranty</h2>
<p> General Bots Copyright (c) Pragmatismo.io. All rights reserved.<br> Licensed under the AGPL-3.0. </p>
<p> According to our dual licensing model, this program can be used either
under the terms of the GNU Affero General Public License, version 3,<br> or under a proprietary license. </p>
<p> The texts of the GNU Affero General Public License with an additional
permission and of our proprietary license can be found at and<br> in the LICENSE file you have received along with this program. </p>
<p> This program is distributed in the hope that it will be useful,<br> but WITHOUT ANY WARRANTY; without even the implied warranty of<br> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br> GNU Affero General Public License for more details. </p>
<p> &quot;General Bots&quot; is a registered trademark of Pragmatismo.io.<br> The licensing of the program under the AGPLv3 does not imply a<br> trademark license. Therefore any rights, title and interest in<br> our trademarks remain entirely with us. </p>
</div>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="globals.html"><em>Globals</em></a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_admin_gbapp_dialogs_admindialog_.html">"deploy/admin.gbapp/dialogs/<wbr>Admin<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_admin_gbapp_dialogs_uploadpackagedialog_.html">"deploy/admin.gbapp/dialogs/<wbr>Upload<wbr>Package<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_admin_gbapp_index_.html">"deploy/admin.gbapp/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_analytics_gblib_index_.html">"deploy/analytics.gblib/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_analytics_gblib_models_index_.html">"deploy/analytics.gblib/models/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_analytics_gblib_services_analyticsservice_.html">"deploy/analytics.gblib/services/<wbr>Analytics<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_dialogs_welcomedialog_.html">"deploy/core.gbapp/dialogs/<wbr>Welcome<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_dialogs_whoamidialog_.html">"deploy/core.gbapp/dialogs/<wbr>Who<wbr>AmIDialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_index_.html">"deploy/core.gbapp/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_models_gbmodel_.html">"deploy/core.gbapp/models/GBModel"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbconfigservice_.html">"deploy/core.gbapp/services/GBConfig<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbconversationalservice_.html">"deploy/core.gbapp/services/GBConversational<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbcoreservice_.html">"deploy/core.gbapp/services/GBCore<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbdeployer_.html">"deploy/core.gbapp/services/GBDeployer"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbimporter_.html">"deploy/core.gbapp/services/GBImporter"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_services_gbminservice_.html">"deploy/core.gbapp/services/GBMin<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_core_gbapp_test_example_test_.html">"deploy/core.gbapp/test/example.test"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_customer_satisfaction_gbapp_dialogs_feedbackdialog_.html">"deploy/customer-<wbr>satisfaction.gbapp/dialogs/<wbr>Feedback<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_customer_satisfaction_gbapp_dialogs_qualitydialog_.html">"deploy/customer-<wbr>satisfaction.gbapp/dialogs/<wbr>Quality<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_customer_satisfaction_gbapp_index_.html">"deploy/customer-<wbr>satisfaction.gbapp/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_customer_satisfaction_gbapp_models_index_.html">"deploy/customer-<wbr>satisfaction.gbapp/models/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_customer_satisfaction_gbapp_services_csservice_.html">"deploy/customer-<wbr>satisfaction.gbapp/services/CSService"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_dialogs_askdialog_.html">"deploy/kb.gbapp/dialogs/<wbr>Ask<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_dialogs_faqdialog_.html">"deploy/kb.gbapp/dialogs/<wbr>Faq<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_dialogs_menudialog_.html">"deploy/kb.gbapp/dialogs/<wbr>Menu<wbr>Dialog"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_index_.html">"deploy/kb.gbapp/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_models_index_.html">"deploy/kb.gbapp/models/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_kb_gbapp_services_kbservice_.html">"deploy/kb.gbapp/services/KBService"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_security_gblib_index_.html">"deploy/security.gblib/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_security_gblib_models_index_.html">"deploy/security.gblib/models/index"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_deploy_security_gblib_services_secservice_.html">"deploy/security.gblib/services/<wbr>Sec<wbr>Service"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_src_app_.html">"src/app"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_src_logger_.html">"src/logger"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li>
<li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li>
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
<li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
<li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
<li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="http://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="assets/js/main.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="assets/js/search.js"><' + '/script>');</script>
</body>
</html>