24-05-24 OPEA-001 Code Structure

Author

ftian1, lvliang-intel, hshen14

Status

Under Review

Objective

Define a clear criteria and rule of adding new codes into OPEA projects.

Motivation

OPEA project consists of serveral repos, including GenAIExamples, GenAIInfra, GenAICompos, and so on. We need a clear definition on where the new code for a given feature should be put for a consistent and well-orgnized code structure.

Design Proposal

The proposed code structure of GenAIInfra is:

GenAIInfra/
├── kubernetes-addon/        # the folder implementing additional operational capabilities to Kubernetes applications
├── microservices-connector/ # the folder containing the implementation of microservice connector on Kubernetes
└── scripts/

The proposed code structure of GenAIExamples is:

GenAIExamples/
└── ChatQnA/
    ├── kubernetes/
    │   ├── manifests
    │   └── microservices-connector
    ├── docker/
    │   ├── docker_compose.yaml
    │   ├── dockerfile
    │   └── chatqna.py
    ├── chatqna.yaml    # The MegaService Yaml
    └── README.md

The proposed code structure of GenAIComps is:

GenAIComps/
└── comps/
    └── llms/
        ├── text-generation/
        │   ├── tgi-gaudi/
        │   │   ├── dockerfile
        │   │   └── llm.py
        │   ├── tgi-xeon/
        │   │   ├── dockerfile
        │   │   └── llm.py
        │   ├── vllm-gaudi
        │   ├── ray
        │   └── langchain
        └── text-summarization/

Miscs

n/a