Welcome to the SEMOSS Backend Documentation. This collection of documents aims to provide developers with a comprehensive understanding of the SEMOSS platform's architecture, core concepts, services, engine integrations, and development practices.
- Introduction to SEMOSS
- What is SEMOSS?
- Core Capabilities
- Backend Architecture Overview
- Key Backend Components
- Data Storage and Interaction
- High-Level API Request Flow
- Pixel: The SEMOSS Query Language
- Core Purposes, Syntax Basics, Data Types, Control Flow, Execution Model
- Pixel and Reactor Interaction
- Reactor Framework
- Core Interfaces/Classes (
IReactor.java,AbstractReactor.java) - Key Reactor Examples and Roles
- Reactor Inputs and
NounStore - Reactor Outputs and
NounMetadata - Reactor Results and UI Interaction
- Core Interfaces/Classes (
- Engine Abstraction in SEMOSS
- The
IEngineInterface - Engine Management (Configuration, Registration, Instantiation, Usage)
- The
- DataFrames and QueryStructs
ITableDataFrameandAbstractTableDataFrame- Key Frame Implementations
SelectQueryStructOverview- Interaction between Engines and DataFrames
- The Insight Object
- Purpose and Key Responsibilities
- Key Information Held
- How Insights are Used
(Located in the ./engines/ directory)
DATABASEEngines- Core Concepts,
SelectQueryStructDeep Dive, Examples, Extension Guide
- Core Concepts,
STORAGEEngines- Core Concepts, Examples, Extension Guide
MODELEngines- Core Concepts, Examples, Extension Guide
VECTOREngines- Core Concepts, Document Ingestion Flow, Custom Processors, Examples, Extension Guide
FUNCTIONEngines- Core Concepts, Examples, Extension Guide
PROJECTEngines
- SEMOSS Internal Databases
- Overview,
LocalMasterDatabase,PromptDatabase,ModelInferenceLogsDatabase, Configuration/Access.
- Overview,
- Authentication and Authorization
- Core Security Objects, AuthN/AuthZ Flows, Key Utilities.
- Java-Python Communication
- Overview & Visual Flow Placeholder
- Java-Side Components
- Python-Side Components (including chroot & SymlinkHelper details)
- Communication Protocol
This section describes how SEMOSS interacts with other related systems or components.
- SEMOSS Monolith Interaction: Explains the relationship and data flow between the core SEMOSS platform and the
semoss/monolithweb application, including details on therunPixelAPI endpoint.
- Overview of SEMOSS in Cloud/Cluster Environments
- Rationale: Scalability, High Availability, Shared Access
- Key Components: Central Storage, ZooKeeper Synchronization
- Centralized Cloud Storage for Assets
CentralCloudStorage.java: Purpose and Design- Storage Backend Abstraction (S3, Azure, GCP, etc.)
- Asset Synchronization (Engines, Projects, Insights)
- Locking and Coordination
- Cluster Synchronization with ZooKeeper
ClusterUtil.javaandClusterSynchronizer.java- Role of ZooKeeper: Change Notification, State Coordination
- Synchronization Workflow and Configuration
- Docker Deployment Guide
- Introduction to Dockerized SEMOSS
- Details on Core Dockerfiles
- Build Process, Environment Variables, Volume Mounts, Example Usage
- Docker Configuration Details
- Configuring SEMOSS via Docker,
semoss-artifacts, Environment Variables.
- Configuring SEMOSS via Docker,
- GitHub Actions Workflows for CI/CD
- CI, Python/Tomcat Builders, Application Image Builders.
The genai_client Python package provides a standardized interface for interacting with various generative AI models and services, including text generation, embedding generation, and tokenization.
- GenAI Client Package Documentation
- Details on:
- Core Files (
constants.py,utils.py) - Model Keys (
ModelKeysEnum) - Model Limits (Context Windows, Max Tokens)
- Client Initializers & Wrappers
- Embedders Overview
- Text Generation Clients Overview
- Tokenizers Overview
- Core Files (
- Details on:
This collection of Python modules provides the tools and underlying server infrastructure for SEMOSS's Generative AI Agent Services. It includes engines for database, model, function, storage, and vector interactions, as well as server components and security utilities.
- Development Guides
- Overview of configurations, onboarding, etc.
This section provides practical guides and code-centric examples for developing with and using SEMOSS. Topics include writing custom Reactors, interacting with databases, working with DataFrames, advanced Pixel scripting, and more.