https://github.com/llm-grading-system/platform
Инфраструктура для запуска платформы LLM-оценивания
https://github.com/llm-grading-system/platform
Last synced: 4 months ago
JSON representation
Инфраструктура для запуска платформы LLM-оценивания
- Host: GitHub
- URL: https://github.com/llm-grading-system/platform
- Owner: LLM-Grading-System
- Created: 2025-03-17T16:51:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-15T10:01:37.000Z (over 1 year ago)
- Last Synced: 2025-04-15T11:22:04.075Z (over 1 year ago)
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
```