Sunbird AI Assistant
  • Overview
  • Functional Overview
    • The Problem
    • The Solution
    • Use Cases
      • e-Jaadui Pitara
    • Capabilities
  • Technical Overview
    • Architecture
    • Technology Stack
  • Get Started with AI Assistant
    • Key Steps to role out an AI Assistant Solution
    • Pre-requisites
    • Installation
    • Data Ingestion Process
    • Configuration
    • APIs
    • Bot Creation 101
  • Components
    • Sakhi API Service
      • Environment Variables
      • Pluggability of LLM Chat Model
      • Pluggability of Cloud Storage
      • Pluggability of Transaltion service
      • Pluggability of Vector Store
  • Release Notes
    • Release Convention
    • 3.0.0 (Latest)
    • 2.0.0
    • 1.0.0
  • Roadmap
  • Contribution Guide
  • FAQs
  • Knowledge Base
    • Best Practices
    • Indexing CSV Data
  • Contact us
Powered by GitBook
On this page
  • External Services
  • Other Tools / Services
  • Dependencies
  1. Technical Overview

Technology Stack

Below is the technology stack used for the implementation of the AI Assistant. AI Assistant primarily uses the RAG mechanism, powered by Marqo (for retrieval) and GenAI services to generate answers for the user's questions.

Front End

  • Telegram (a Telegram Bot)

  • WhatsApp (a WhatsApp business number)

Backend

  • Python - Programming Language

  • FastAPI - Web framework for building APIs with Python

  • Marqo - Marqo is an end-to-end vector search engine. Vector generation, storage

    and retrieval are handled out of the box through API.

  • Cloud Storage Services (Supported are OCI Object Storage & AWS Buckets)

  • Frameworks

    • LangChain - Framework to simplify the creation of applications using large language models.

    • LlamaIndex - Flexible data framework for connecting custom data sources to large language models.

  • For Telegram:

    • Telegram Service Wrapper - Webhook to receive the request from the user

      through a Telegram Bot and to respond with answers. The webhook is

      registered with the Telegram Service Provider.

    • Redis - In-memory data store for holding users language and bot selection

  • For WhatsApp GupShup provider:

    • WhatsApp Service Wrapper - Webhook to receive the request from the user and to respond with answers. The webhook is registered with the WhatsApp Service Provider, which in this implementation uses Gupshup.

    • PostgreSQL - Used for storing the user's session, language selected and bot selection for WhatsApp.

External Services

  • GenAI Services - LLM for,

    • Text Generation

    • Supported ones are,

      • OpenAI (GPT4) with Moderation

      • Azure OpenAI (GPT4) with Moderation

  • Language Services for,

    • Language Translation

    • Speech to Text

    • Text to Speech

    • Supported ones are,

      • Bhashini Dhruva

      • EkStep Dhruva

      • Google Language Services

  • Telemetry - Log events are getting captured for

    • api_access

    • api_call

Other Tools / Services

  • Docker

  • Cloud Infrastructure - Supported ones are,

    • OCI

    • AWS

Dependencies

PreviousArchitectureNextGet Started with AI Assistant

Last updated 10 months ago

List of external libraries used:

https://github.com/Sunbird-AIAssistant/sakhi-api-service/blob/main/requirements-prod.txt