An open API service indexing awesome lists of open source software.

https://github.com/llm-grading-system/platform

Инфраструктура для запуска платформы LLM-оценивания
https://github.com/llm-grading-system/platform

Last synced: 4 months ago
JSON representation

Инфраструктура для запуска платформы LLM-оценивания

Awesome Lists containing this project

README

          

# LLM Grading

## Архитектура

```mermaid
graph LR
%% C4 style classes c4model.com %%
classDef person fill:#08427b,stroke:black,color:white;
classDef container fill:#1168bd,stroke:black,color:white;
classDef database fill:#1168bd,stroke:black,color:white;
classDef software fill:#1168bd,stroke:black,color:white;
classDef existing fill:#999999,stroke:black,color:white;
classDef boundary fill:white,stroke:black,stroke-width:2px,stroke-dasharray: 5 5;
classDef frame fill:white,stroke:black;

%% nodes %%
GitHub["GitHub API"]:::existing
Mistral["Mistral AI API"]:::existing
Admin((Admin)):::person
Student((Student)):::person
WebApp("Admin Panel
[Container: Nginx + React]"):::container
CoreAPI("Core API
[Container: FastAPI]"):::container
Worker("LLM Grader
[Container: FastStream]"):::container
GitHubGateway("GitHub Gateway
[Container: FastAPI]"):::container
CoreDB[("Core Data
[Container: PostgreSQL]")]:::database
S3[("Submissions
[Container: Minio]")]:::database
Events(["Events
[Container: Kafka Topic]"]):::container
TGBot("Student Bot
[Container: Aiogram]"):::container

%% connections and boundaries %%

subgraph Legend [Containers]
Student-.->|Uses| TGBot
Admin-.->|Uses| WebApp

subgraph Boundary["Boundary: System"]
WebApp-.->|"Makes requests
[HTTP/HTTPS]"| CoreAPI
CoreAPI-.->|"Makes requests
[HTTP/HTTPS]"| GitHubGateway
CoreAPI-.->|"Makes requests
[TCP]"| CoreDB
CoreAPI-.->|"Makes requests
[HTTP/HTTPS]"| S3

Worker-.->|"Makes requestts
[HTTP/HTTPS]"| CoreAPI
Worker-.->|"Makes requests
[HTTP/HTTPS]"| S3

CoreAPI-.->|"Pushes event
[TCP]"| Events
TGBot-.->|"Pulls event
[TCP]"| Events
Worker-.->|"Pulls event
[TCP]"| Events
GitHubGateway-.->|"Pushes/pulls event
[TCP]"| Events


TGBot-.->|"Makes requests
[HTTP/HTTPS]"| GitHubGateway
TGBot-.->|"Makes requests
[HTTP/HTTPS]"| CoreAPI

end
class Boundary boundary

GitHubGateway-.->|"Makes requests
[HTTP/HTTPS]"| GitHub
Worker-.->|"Makes requests
[HTTP/HTTPS]"| Mistral
end
class Legend frame
```

## Запуск

### Переменные окружения

```env
# Core API
PLATFORM_ADMIN_USER=admin
PLATFORM_ADMIN_PASSWORD=password
# Postgres
POSTGRES_DB=grading
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
# Minio
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=password
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
# Kafka
KAFKA_BOOTSTRAP_SERVERS=localhost:29092
KAFKA_UI_ADMIN_LOGIN=admin
KAFKA_UI_ADMIN_PASSWORD=password
# Mistral API
MISTRAL_API_KEY=
MISTRAL_MODEL=codestral-latest
# Telegram
BOT_TOKEN=
# GitHub
GITHUB_ACCESS_TOKEN=
# GitHub
GITHUB_APPS_PRIVATE_KEY_PATH=/app/grading.private-key.pem
GITHUB_APPS_CLIENT_ID=
GITHUB_PERSONAL_ACCESS_TOKEN=
```

### Инструкция по изначальному запуску

1. Запустить minio `docker-compose up -d minio`
2. Зайти в админку Minio по http://localhost:9001/login под кредами MINIO_ROOT_USER/MINIO_ROOT_PASSWORD
3. Перейти по http://localhost:9001/access-keys и создать access key
4. Скопировать данные по созданному ключу в env MINIO_ACCESS_KEY, MINIO_SECRET_KEY
5. Запустить контейнеры для Kafka `docker-compose up -d zookeeper kafka kafka-ui`
6. Зайти в админку Kafka UI по http://localhost:8090/auth под кредами KAFKA_UI_ADMIN_LOGIN/KAFKA_UI_ADMIN_PASSWORD
7. Перейти по http://localhost:8090/ и убедиться, что кластер живой
8. Запустить базу данных и подождать несколько секунд `docker-compose up -d postgres`
9. Запустить все остальное `docker-compose up -d api grader bot github-gateway web`

### Инструкции по обновлению Docker-образов в продакшн-среде

```bash
docker pull daniilsolo/llm-grading.core-api:latest
docker pull daniilsolo/llm-grading.grader:latest
docker pull daniilsolo/llm-grading.student-bot:latest
docker pull daniilsolo/llm-grading.github-gateway:latest
docker pull daniilsolo/llm-grading.frontend:latest
docker-compose up -d api grader bot github-gateway
```