Skip to content

Commit 52503d5

Browse files
committed
Add: Overview Core
1 parent 1866277 commit 52503d5

File tree

4 files changed

+80
-1
lines changed

4 files changed

+80
-1
lines changed

docs/UCI Architecture.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
id: UCIArchitecture
3+
title: Architecture
4+
sidebar_label: Architecture
5+
---
6+
7+
## Functional Architecture
8+
9+
![Functional Architecture Diagram](https://samagra-development.github.io/docs/img/UCIFunctionalArchitecture.png)
10+
11+
## Technology Architecture
12+
13+
![Technology Architecture Diagram](https://samagra-development.github.io/docs/img/UCITechnologyArchitecture.png)
14+
15+
16+

docs/UCI Concepts.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
id: UCIConcepts
3+
title: Core Concepts
4+
sidebar_label: Concepts
5+
---
6+
7+
Every interaction with the conversation bot has the following core elements:
8+
9+
* **Bot**
10+
A bot orchestrates a conversation with a specific conversation logic assigned to a set of users. A bot remembers the state of a conversation for a particular user. A bot object references user segment(s) and conversation logic(s).
11+
12+
* **User Segment**
13+
User segment contains user data including mechanism to fetch them from a federated user registry.
14+
15+
* **Adapter**
16+
An adapter translates between messages received from communication channels on specific providers and the internal XMessage format. A new adapter is created for every combination of communication channel and service provider (e.g. - WhatsApp + Gupshup; WhatsApp + NetCore; WhatsApp + Twilio). An adapter config references the communication channel, service provider and associated metadata such as specific business account phone number.
17+
18+
* **Conversation Logic**
19+
Conversation logic defines the control flow for a specific conversation. A conversation logic object references a sequence of transformers that will be applied to arrive at the final response at a specific point in the conversation, and the associated adapter config for this conversation logic. (e.g. XForm logic, translation into Hindi - both associated with a Whatsapp-Gupshup adapter)
20+
21+
22+
* **Transformer**
23+
A transformer is a stateless processing object that takes inputs and converts the input into a processed response. Transformers may in turn call external services if needed. There are two types of configurable transformers:
24+
* _ODK based transformer_ - These have direct logic defined in the ODK (e.g. a form based question paper)
25+
* _Generic transformer_ - These are generic transformers that take Microservice URL, Params and returns the response as received from the Microservice
26+
27+
```
28+
Adapter = Communication Channel + Service Provider
29+
User segment
30+
Transformer
31+
Conversation Logic = {Transformers} + Adapter
32+
Bot = {Conversation Logics} + {User segments}
33+
```
34+
35+
36+
37+

docs/UCI Features.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
id: UCIFeatures
3+
title: Core Features
4+
sidebar_label: Features
5+
---
6+
7+
8+
1. Ability to connect to any communication channel through any service provider without doing custom changes in the core logic UCI.
9+
UCI ecosystem is independent of external variables like communication channel and service provider powered by XMessage standard.
10+
11+
2. Ability to have a configurable conversation logic for the bot
12+
13+
3. Ability to connect to any database (local or federated) via services
14+
15+
4. Ability to include value added services in the bot interaction flow through Microservices (Internal or External)
16+
17+
5. Ability to create tools on top of UCI APIs to manage Bot configuration, conversations and visualization
18+
19+
20+
21+
22+

sidebars.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
module.exports = {
1111
uciSidebar: {
12-
'UCI Overview': ['UCIGlossary'],
12+
'UCI Overview': ['UCIGlossary',
13+
{
14+
Core: ['UCIFeatures', 'UCIConcepts', 'UCIArchitecture']
15+
}
16+
],
1317
'UCI API': ['APIAdapter', 'APITransformer', 'APIBot', 'APIUserSegment', 'APIConversationLogic' ],
1418
'UCI Schema': ['SchemaAdapter','SchemaTransformer','SchemaBot','SchemaUserSegment','SchemaConversationLogic',]
1519
},

0 commit comments

Comments
 (0)