Skip to content

Design and Architecture Diagrams

1. Class Diagram

classDiagram
    class IndexManager {
        +List~str~ ids
        +List~CustomIndex~ indexes
        +load_from_storage(storage: Storage) IndexManager
        +create_from_storage(storage: Storage) IndexManager
    }
    class CustomIndex {
        +VectorStoreIndex index
        +IndexDict metadata
        +List~str~ doc_ids
        +str id
        +create_from_documents(document: List~Union~Document, str~, generate_id: bool) CustomIndex
        +create_from_nodes(nodes: List~TextNode~) CustomIndex
    }

    class VisionModel {
        +List~str~ images
        +str prompt_template
        +encode_image(image: np.ndarray, image_format: str) str
        +encode_images() List~str~
        +trigger_model(max_tokens: int, temperature: float, detail: str) str
        +to_markdown(path: str)
    }
    class Storage {
        +StorageContext store
        +BaseDocumentStore docstore
        +BaseIndexStore index_store
        +vector_store
        +save(store_dir: str)
        +load(store_dir: str) Storage
        +add_documents(docs: Sequence~Union~Document, TextNode~, generate_id: bool, update: bool)
        +read_documents(path: str) List~Union~Document, TextNode~
    }
    class ConfigLoader {
        +Settings settings
        +llm
        +embedding
    }
    class Logger {
        +__init__(name: str, level: int, file_name: str)
    }
    class StorageNotFoundError {
        +__init__(error_message: str)
    }
    IndexManager --> CustomIndex
    IndexManager --> Storage
    CustomIndex --> VectorStoreIndex
    CustomIndex --> BasePydanticVectorStore
    CustomIndex --> Document
    CustomIndex --> TextNode
    VisionModel --> AzureOpenAI
    VisionModel --> ConfigLoader
    VisionModel --> Storage
    Storage --> StorageContext
    Storage --> Document
    Storage --> TextNode
    ConfigLoader --> Settings
    ConfigLoader --> HuggingFaceEmbedding
    Logger --> logging
    StorageNotFoundError --> Exception

Visibility Symbols in Mermaid Class Diagrams

  • + : Public – The member is accessible from outside the class.
  • - : Private – The member is accessible only within the class.
  • # : Protected – The member is accessible within the class and its subclasses.

2. Module Dependency Diagram

graph TD
    IndexManager -->|Imports| CustomIndex
    IndexManager -->|Imports| Storage
    CustomIndex -->|Imports| VectorStoreIndex
    CustomIndex -->|Imports| Document
    CustomIndex -->|Imports| TextNode
    VisionModel -->|Imports| AzureOpenAI
    VisionModel -->|Uses| ConfigLoader
    Storage -->|Uses| StorageContext
    Storage -->|Uses| Document
    ConfigLoader -->|Uses| HuggingFaceEmbedding
    ConfigLoader -->|Uses| OllamaLLM
    Logger -->|Depends| logging

3. Sequence Diagram

sequenceDiagram
    actor User
    participant IndexManager
    participant CustomIndex
    participant Storage
    User ->> IndexManager: Create IndexManager
    IndexManager ->> Storage: Load from storage
    Storage ->> IndexManager: Return data
    IndexManager ->> CustomIndex: Create CustomIndex
    CustomIndex ->> IndexManager: Return index object

4. Component Diagram

graph TD
    subgraph Application
        IndexManager
        CustomIndex
        Storage
    end
    subgraph ExternalSystems
        AzureOpenAI
        DocumentStore
    end
    IndexManager -->|Communicates| CustomIndex
    IndexManager -->|Uses| Storage
    Storage -->|Stores| DocumentStore
    VisionModel -->|API| AzureOpenAI

5. Deployment Diagram

graph TD
    user[User System]
    app[Python Application]
    storage[Storage Directory]
    azure[Azure OpenAI Service]
    user --> app
    app --> storage
    app --> azure

6.Data Flow Diagram

graph LR
    Input[User Input] --> Process[IndexManager]
    Process --> StorageSystem[Storage]
    StorageSystem --> Output[Retrieved Data]

7.Deployment Diagram

graph TD
    User -->|Requests| PythonApp[Python Application]
    PythonApp -->|Reads/Writes| Storage[Local/Cloud Storage]
    PythonApp -->|Interacts| Azure[Azure OpenAI Services]

8.State Diagram

stateDiagram-v2
    [*] --> Initialized
    Initialized --> LoadingIndexes
    LoadingIndexes --> IndexReady: Success
    LoadingIndexes --> [*]: Failure
    IndexReady --> [*]

9.Activity Diagram

flowchart TD
    Start --> LoadIndexes
    LoadIndexes --> ProcessData
    ProcessData --> GenerateEmbeddings
    GenerateEmbeddings --> End

10.Package Diagram

graph TB
    Package[llama-utils]
    Package --> SubPackage1[Indexing]
    Package --> SubPackage3[Storage]
    SubPackage1 --> Module1[index_manager.py]
    SubPackage1 --> Module2[custom_index.py]
    SubPackage3 --> Module5[storage.py]
    SubPackage3 --> Module6[config_loader.py]

11.Network Diagram

graph TD
    Client --> API[REST API]
    API --> Storage[Data Storage]
    API --> Service[Azure OpenAI]