diff --git a/README.md b/README.md index 0972fce..c90ce86 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)
diff --git a/README_de.md b/README_de.md index 3f32922..7e6d6c1 100644 --- a/README_de.md +++ b/README_de.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)
diff --git a/README_fr.md b/README_fr.md index 27b5615..5b804f9 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)
diff --git a/README_ja.md b/README_ja.md index 0b4975b..9a552d9 100644 --- a/README_ja.md +++ b/README_ja.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)
diff --git a/README_ko.md b/README_ko.md index fef5dd9..b3917b3 100644 --- a/README_ko.md +++ b/README_ko.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)
diff --git a/README_ru.md b/README_ru.md new file mode 100644 index 0000000..bd11f8e --- /dev/null +++ b/README_ru.md @@ -0,0 +1,425 @@ +
+ +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md) + +
+ +

+ Маскот DocSentinel +

+ +

+ DocSentinel
+ SSDLC-платформа с искусственным интеллектом — защищайте программное обеспечение от стадии требований до эксплуатации +

+ +

+ Последний релиз + Лицензия: MIT + Python 3.10+ + Репозиторий GitHub + Поддержка MCP + Интеграция с агентами + LangChain + LangGraph +

+ +

+ + + +

+ +--- + +## Что такое DocSentinel? + +**DocSentinel** — это **SSDLC-платформа (Secure Software Development Lifecycle) с искусственным интеллектом** для команд безопасности. Она автоматизирует операции по безопасности на всех шести этапах жизненного цикла разработки программного обеспечения с помощью интеллектуальных AI-агентов, оркестрируемых **LangGraph** и работающих на базе **LangChain**. Платформа автоматизирует ревью **документов, форм и отчётов** по безопасности — от требований и проектирования через разработку, тестирование, развёртывание и до эксплуатации — сопоставляя входные данные с вашими политиками и базой знаний и формируя **структурированные отчёты об оценке** с указанием рисков, пробелов в соответствии нормам и рекомендациями по устранению проблем. + +Вместо того чтобы проверять документы только на стадии выпуска, DocSentinel встраивает безопасность с первого дня: + +| Этап SSDLC | Что делает DocSentinel | +| :--- | :--- | +| **Требования** | Извлечение требований по безопасности, выявление обязательств по нормам (GDPR, PCI DSS, SOC2) | +| **Проектирование** | Автоматизированное моделирование угроз (STRIDE/DREAD), ревью архитектуры безопасности, отчёты SDR | +| **Разработка** | Оценка безопасности кода, триаж результатов SAST, рекомендации по кодированию | +| **Тестирование** | Анализ отчётов SAST/DAST, ревью пентестов, приоритизация уязвимостей | +| **Развёртывание** | Ревью безопасности конфигурации, оценка hardening, согласование релиза | +| **Эксплуатация** | Мониторинг уязвимостей, помощь в реагировании на инциденты, аудит логов | + +Спроектированная как **headless API + MCP-сервис**, DocSentinel интегрируется в ваши пайплайны CI/CD, AI-агентов (Claude Desktop, Cursor, OpenClaw) и существующие процессы безопасности. + +- **Оркестрация на LangGraph**: stateful workflow на основе графов с условным ветвлением по этапам SSDLC. +- **Мультиформатный ввод**: PDF, Word, Excel, PPT, текст — парсятся в единый формат для LLM. +- **База знаний (RAG)**: загружайте политики и нормативные документы; агент использует их как справочник при оценке. +- **Несколько LLM**: используйте OpenAI, Claude, Qwen или **Ollama** (локально) через единый интерфейс. +- **Структурированный вывод**: отчёты JSON/Markdown с пунктами риска, пробелами в нормах и рекомендациями к действиям. + +Идеально для предприятий, которым нужно масштабировать оценку безопасности по многим проектам и этапам SSDLC без пропорционального наращивания штата. + +--- + +## Зачем DocSentinel? + +| Проблема | Решение DocSentinel | +| :--- | :--- | +| **Фрагментарное покрытие SSDLC**
Большинство инструментов работают только с тестированием/развёртыванием. | **Агенты полного жизненного цикла** покрывают все 6 этапов SSDLC с выделенными AI-персонами. | +| **Фрагментарные критерии**
Политики, стандарты и прецеденты разбросаны. | Единая **база знаний** обеспечивает согласованные находки и трассируемость. | +| **Нет автоматизированного моделирования угроз**
Модели угроз создаются ad-hoc. | **Design Agent** генерирует модели угроз STRIDE/DREAD из документов архитектуры. | +| **Тяжёлый процесс с опросниками**
Бесконечные циклы ревью. | **Автоматический первый проход** и анализ пробелов сокращают ручные туда-обратно итерации. | +| **Перегрузка отчётами SAST/DAST**
Слишком много находок, слишком мало контекста. | **Testing Agent** триажит, приоритизирует и привязывает находки к моделям угроз. | +| **Давление пре-релиза**
Всё валится на безопасность в самом конце. | Подход **shift-left** ловит проблемы раньше, на этапах требований и проектирования. **Структурированные отчёты** помогают ревьюверам сосредоточиться на принятии решений. | +| **Масштаб против согласованности**
Ручные ревью разнятся между ревьюверами. | **Workflow на LangGraph** и **единый пайплайн** обеспечивают согласованную, аудируемую оценку по всем проектам. | +| **Пробелы в покрытии SSDLC**
Безопасность вовлечена неравномерно на разных этапах; ранние этапы получают меньше внимания. | **Оценка с учётом этапа** покрывает все 6 этапов SSDLC с выделенными скиллами и чек-листами. | + +*Полное описание проблемы и деталей этапов SSDLC см. в [SPEC.md](./SPEC.md).* + +--- + +## Архитектура + +DocSentinel построен на **LangGraph** для stateful-оркестрации агентов и **LangChain** для унифицированного доступа к LLM. Шесть фазово-ориентированных агентов координируются конечным автоматом на графе с разделяемым контекстом между фазами. Оркестратор координирует парсинг, маршрутизацию по этапам SSDLC, базу знаний (RAG), скиллы и LLM. Можно использовать облачные или локальные LLM и опциональные интеграции (например, AAD, ServiceNow) в зависимости от окружения. + +![Архитектура DocSentinel](docsentinel_architecture.png) + +```mermaid +flowchart TB + subgraph User["Пользователь / специалист по безопасности"] + end + subgraph Access["Уровень доступа"] + API["REST API / MCP"] + end + subgraph Orchestration["Оркестрация SSDLC (LangGraph)"] + Router["Phase Router"] + A1["Requirements Agent"] + A2["Design Agent"] + A3["Development Agent"] + A4["Testing Agent"] + A5["Deployment Agent"] + A6["Operations Agent"] + end + subgraph Core["Базовые сервисы"] + KB["База знаний (RAG)"] + Parser["Парсер"] + Skill["Скиллы"] + Mem["Память"] + end + subgraph LLM["Уровень LLM (LangChain)"] + Abst["Абстракция LLM"] + end + subgraph Backends["Бэкенды LLM"] + Cloud["OpenAI / Claude / Qwen"] + Local["Ollama / vLLM"] + end + + User --> API + API --> Router + Router --> A1 & A2 & A3 & A4 & A5 & A6 + A1 & A2 & A3 & A4 & A5 & A6 --> KB & Parser & Skill + A1 & A2 & A3 & A4 & A5 & A6 --> Abst + Abst --> Cloud & Local +``` + +**Поток данных (упрощённо):** + +1. Пользователь выбирает этап(ы) SSDLC и загружает документы (либо опционально позволяет SSDLC Router автоматически определить стадию). +2. **Парсер** конвертирует файлы (PDF, Word, Excel, PPT, отчёты SAST/DAST и т.д.) в текст/Markdown. +3. **Маршрутизатор LangGraph** направляет к соответствующим **Phase Agent(s)**, подгружая скилл и чек-лист для конкретного этапа. +4. Phase Agent опрашивает **KB** (коллекции, специфичные для этапа) и применяет **Skills**; Policy и Evidence работают параллельно, затем Drafter и Reviewer. +5. **LLM** (через LangChain) формирует структурированные находки с межфазной трассируемостью. +6. Возвращается **отчёт об оценке** (риски, угрозы, пробелы, рекомендации, уверенность, этап SSDLC). + +*Подробная архитектура: [ARCHITECTURE.md](./ARCHITECTURE.md) и [docs/01-architecture-and-tech-stack.md](./docs/01-architecture-and-tech-stack.md).* + +--- + +## Основные возможности + +### Полное покрытие жизненного цикла SSDLC +Шесть выделенных AI-агентов, каждый со своими фазовыми скиллами, промптами и коллекциями базы знаний. Можно запустить отдельные этапы или полный сквозной аудит SSDLC: +- **Требования**: требования по безопасности, сопоставление с нормами, начальный анализ рисков. +- **Проектирование**: ревью архитектуры, моделирование угроз STRIDE/DREAD, SDR. +- **Разработка**: стандарты безопасного кодирования, находки code review. +- **Тестирование**: триаж отчётов SAST/DAST, оценка пентестов. +- **Развёртывание**: готовность к релизу, безопасность конфигурации, hardening. +- **Эксплуатация**: реагирование на инциденты, мониторинг уязвимостей, аудит логов. + +### Автоматизированная оценка безопасности +Отправьте опросники по безопасности, проектные документы или аудиторские отчёты. DocSentinel анализирует их через сконфигурированные LLM и выявляет: +- **Риски безопасности**: классифицированные по серьёзности (Critical, High, Medium, Low). +- **Пробелы в соответствии**: отсутствующие контроли относительно фреймворков типа ISO 27001, PCI DSS. +- **Шаги по устранению**: конкретные рекомендации для исправления выявленных проблем. + +### Интеллектуальная оркестрация агентов (LangGraph) +- **Stateful workflow**: конечный автомат LangGraph сохраняет контекст между фазами +- **Межфазная трассируемость**: угрозы из Design связаны с тест-кейсами в Testing и правилами мониторинга в Operations +- **Условная маршрутизация**: агенты активируются на основе уровня риска проекта, требований к соответствию или выбора пользователя +- **Human-in-the-loop**: точки прерывания для ручного ревью на границах фаз +- **Контрольные точки**: длительные оценки сохраняют состояние и возобновляются + +### База знаний на основе RAG +Загружайте политики безопасности вашей организации, стандарты и прошлые аудиты. Фазовые коллекции гарантируют, что каждый агент получает наиболее релевантный контекст: +- Требования: фреймворки соответствия, политики безопасности +- Проектирование: каталоги угроз, паттерны безопасности +- Разработка: стандарты безопасного кодирования (OWASP) +- Тестирование: базы данных уязвимостей, руководства по устранению +- Развёртывание: бенчмарки CIS, руководства по hardening +- Эксплуатация: базы данных CVE, плейбуки реагирования на инциденты + +### Оркестрация агентов LangGraph +На базе **LangChain + LangGraph** — stateful workflow на основе графов с условной маршрутизацией по этапам SSDLC. Параллельное выполнение Policy и Evidence агентов, затем Drafter и Reviewer. + +### API-first и поддержка MCP +Спроектирован как headless-сервис. Интегрируйте в пайплайны CI/CD через REST API или используйте как **super-tool** внутри AI-агентов (Claude Desktop, Cursor, OpenClaw) через MCP. + +--- + +## Интеграция с агентами (MCP) + +Подключите DocSentinel к **Claude Desktop**, **Cursor** или **OpenClaw**, чтобы использовать его как мощный SSDLC-скилл по безопасности. + +### Что это даёт? +После подключения вы можете попросить своего AI-агента: +> «Проанализируй вложенный `requirements.pdf` на наличие отсутствующих требований по безопасности с помощью DocSentinel.» +> +> «Проведи моделирование угроз STRIDE на `system-design.pdf` с помощью Design Agent.» +> +> «Сделай триаж этих находок SonarQube SAST и приоритизируй по риску.» + +### Руководство по конфигурации + +#### 1. Claude Desktop +Добавьте в ваш `claude_desktop_config.json`: +```json +{ + "mcpServers": { + "docsentinel": { + "command": "/path/to/DocSentinel/.venv/bin/python", + "args": ["/path/to/DocSentinel/app/mcp_server.py"], + "env": { + "OPENAI_API_KEY": "sk-...", + "CHROMA_PERSIST_DIR": "/absolute/path/to/data/chroma" + } + } + } +} +``` + +#### 2. Cursor +1. Перейдите в **Settings > Features > MCP**. +2. Нажмите **+ Add New MCP Server**. + - **Name**: `docsentinel` + - **Type**: `stdio` + - **Command**: `/path/to/DocSentinel/.venv/bin/python` + - **Args**: `/path/to/DocSentinel/app/mcp_server.py` + +*Полное руководство — в [docs/06-agent-integration.md](docs/06-agent-integration.md).* + +--- + +## Быстрый старт + +### Вариант A: развёртывание в один клик (рекомендуется) + +```bash +git clone https://github.com/arthurpanhku/DocSentinel.git +cd DocSentinel +chmod +x deploy.sh +./deploy.sh +``` + +- **Документация API**: [http://localhost:8000/docs](http://localhost:8000/docs) + +### Вариант B: ручная установка + +**Требования**: **Python 3.10+**. Опционально: [Ollama](https://ollama.ai) (`ollama pull llama2`). + +```bash +git clone https://github.com/arthurpanhku/DocSentinel.git +cd DocSentinel +python3 -m venv .venv +source .venv/bin/activate # Windows: .venv\Scripts\activate +pip install -r requirements.txt +cp .env.example .env # При необходимости отредактируйте: LLM_PROVIDER=ollama или openai +uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 +``` + +- **Документация API**: [http://localhost:8000/docs](http://localhost:8000/docs) · **Health**: [http://localhost:8000/health](http://localhost:8000/health) +- **Консоль ревью (HITL)**: [http://localhost:8000/docs/review-console.html](http://localhost:8000/docs/review-console.html) + +--- + +### Пример: отправить оценку SSDLC + +```bash +# Запустить оценку фазы Design (моделирование угроз) +curl -X POST "http://localhost:8000/api/v1/assessments" \ + -F "files=@examples/architecture-doc.pdf" \ + -F "phase=design" \ + -F "scenario_id=threat-modeling" + +# Ответ: { "task_id": "...", "status": "accepted" } +# Получить результат +curl "http://localhost:8000/api/v1/assessments/TASK_ID" +``` + +### Пример: загрузка в KB и запрос + +```bash +# Загрузить политику безопасности в коллекцию requirements KB +curl -X POST "http://localhost:8000/api/v1/kb/documents" \ + -F "file=@examples/sample-policy.txt" \ + -F "collection=kb_requirements" + +# Запрос к KB (RAG) +curl -X POST "http://localhost:8000/api/v1/kb/query" \ + -H "Content-Type: application/json" \ + -d '{"query": "Какие требования к контролю доступа?", "top_k": 5}' +``` + +--- + +## Хостинговое развёртывание + +Хостинговое развёртывание доступно на [Fronteir AI](https://fronteir.ai/mcp/arthurpanhku-docsentinel). + +## Структура проекта + +```text +DocSentinel/ +├── app/ # Код приложения +│ ├── api/ # REST-маршруты: assessments, KB, health, skills +│ ├── agent/ # Оркестратор LangGraph, фазовые агенты, скиллы +│ │ ├── orchestrator.py # Конечный автомат LangGraph и маршрутизация по фазам +│ │ ├── agents/ # Реализации фазовых агентов +│ │ ├── ssdlc/ # SSDLC-пайплайн: маршрутизатор этапов, скиллы этапов, чек-листы +│ │ ├── skills_registry.py # Встроенные скиллы по фазам SSDLC +│ │ └── skills_service.py # CRUD и управление скиллами +│ ├── core/ # Конфигурация, guardrails, безопасность, БД +│ ├── kb/ # База знаний (Chroma + LightRAG graph RAG) +│ ├── llm/ # Абстракция LLM на LangChain (OpenAI, Ollama) +│ ├── parser/ # Парсинг документов (Docling + SAST/DAST + legacy) +│ ├── models/ # Модели Pydantic / SQLModel +│ ├── main.py # Точка входа FastAPI +│ └── mcp_server.py # MCP-сервер для интеграции с агентами +├── tests/ # Автоматические тесты (pytest) +├── examples/ # Примеры файлов (опросники, политики, отчёты) +├── docs/ # Документация по дизайну и спецификации +│ ├── 01-architecture-and-tech-stack.md +│ ├── 02-api-specification.yaml +│ ├── 03-assessment-report-and-skill-contract.md +│ ├── 04-integration-guide.md +│ ├── 05-deployment-runbook.md +│ ├── 06-agent-integration.md +│ └── schemas/ +├── .github/ # Шаблоны issue/PR, CI (Actions) +├── Dockerfile +├── docker-compose.yml +├── docker-compose.ollama.yml +├── CONTRIBUTING.md +├── CODE_OF_CONDUCT.md +├── CHANGELOG.md +├── SPEC.md # PRD с определениями фаз SSDLC +├── ARCHITECTURE.md # Архитектура системы с дизайном LangGraph +├── LICENSE +├── SECURITY.md +├── requirements.txt +├── requirements-dev.txt +└── .env.example +``` + +--- + +## Конфигурация + +| Переменная | Описание | По умолчанию | +| :--- | :--- | :--- | +| `LLM_PROVIDER` | `ollama` или `openai` | `ollama` | +| `OLLAMA_BASE_URL` / `OLLAMA_MODEL` | Локальный LLM | `http://localhost:11434` / `llama2` | +| `OPENAI_API_KEY` / `OPENAI_MODEL` | OpenAI | -- | +| `CHROMA_PERSIST_DIR` | Путь к векторной БД | `./data/chroma` | +| `PARSER_ENGINE` | Парсер: `auto`, `docling` или `legacy` | `auto` | +| `ENABLE_GRAPH_RAG` | Включить graph retrieval LightRAG | `true` | +| `LANGGRAPH_CHECKPOINT_DIR` | Сохранение контрольных точек LangGraph | `./data/checkpoints` | +| `SSDLC_DEFAULT_PHASES` | Фазы по умолчанию для полной оценки | `requirements,design,development,testing,deployment,operations` | +| `SSDLC_DEFAULT_STAGE` | Этап SSDLC по умолчанию, если не указан | `auto` | +| `UPLOAD_MAX_FILE_SIZE_MB` / `UPLOAD_MAX_FILES` | Лимиты загрузки | `50` / `10` | + +*См. [.env.example](./.env.example) и [docs/05-deployment-runbook.md](./docs/05-deployment-runbook.md) для полного списка опций.* + +--- + +## Технологический стек + +| Уровень | Технология | Назначение | +| :--- | :--- | :--- | +| **Оркестрация агентов** | LangGraph | Stateful движок workflow на основе графов для SSDLC | +| **Фреймворк LLM** | LangChain | Унифицированная абстракция LLM, промпты, инструменты, RAG | +| **Web/API** | FastAPI | Асинхронный REST API с автогенерацией OpenAPI | +| **Векторное хранилище** | ChromaDB + LightRAG | Гибридный векторный + графовый RAG | +| **Парсинг** | Docling + legacy fallback | Мультиформатный парсинг документов | +| **Провайдеры LLM** | OpenAI, Ollama | Поддержка облачных и локальных LLM | +| **Язык** | Python 3.10+ | Основной язык разработки | + +--- + +## Документация и PRD + +- **[ARCHITECTURE.md](./ARCHITECTURE.md)** — Архитектура системы: дизайн LangGraph, SSDLC-агенты, поток данных, развёртывание. +- **[SPEC.md](./SPEC.md)** — Требования к продукту: фазы SSDLC, функционал, контроли безопасности. +- **[CHANGELOG.md](./CHANGELOG.md)** — История версий; [Releases](https://github.com/arthurpanhku/DocSentinel/releases). +- **Документация по дизайну** [docs/](./docs/): архитектура, спецификация API (OpenAPI), контракты, гайды интеграции, runbook развёртывания. + +--- + +## Разработка и тестирование + +### Вариант A: тестирование в один клик (рекомендуется) +```bash +chmod +x test_integration.sh +./test_integration.sh +``` + +### Вариант B: вручную +```bash +pip install -r requirements-dev.txt +pytest +pytest tests/test_skills_api.py # Запустить конкретный тест +``` + +## Контрибьюшн + +Issues и Pull Request приветствуются. Прочитайте [CONTRIBUTING.md](CONTRIBUTING.md) для информации о настройке, тестах и правилах коммитов. Участвуя, вы соглашаетесь с [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). + +Контрибьюшн с помощью AI: мы поощряем использование AI-инструментов! Прочитайте [CONTRIBUTING_WITH_AI.md](CONTRIBUTING_WITH_AI.md) для лучших практик. + +Шаблон скилла: есть отличная security-персона для фазы SSDLC? Отправьте [Skill Template](https://github.com/arthurpanhku/DocSentinel/issues/new?template=new_skill_template.md) или добавьте её в `examples/templates/`. + +--- + +## Безопасность + +- **Сообщение об уязвимостях**: см. [SECURITY.md](./SECURITY.md) для процесса ответственного раскрытия. +- **Требования безопасности**: следует контролям безопасности в [SPEC §7.2](./SPEC.md). + +--- + +## Лицензия + +Этот проект распространяется под лицензией **MIT License** — подробности см. в файле [LICENSE](./LICENSE). + +--- + +## История звёзд + +[![Star History Chart](https://api.star-history.com/svg?repos=arthurpanhku/DocSentinel&type=Date)](https://star-history.com/#arthurpanhku/DocSentinel&Date) + +--- + +## Автор и ссылки + +- **Автор**: PAN CHAO (Arthur Pan) +- **Репозиторий**: [github.com/arthurpanhku/DocSentinel](https://github.com/arthurpanhku/DocSentinel) +- **SPEC и проектные документы**: см. ссылки выше. + +Если вы используете DocSentinel в своей организации или вносите вклад в проект, мы будем рады услышать вас (например, через GitHub Discussions или Issues). diff --git a/README_zh.md b/README_zh.md index cc08bfb..3f0eab1 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,6 +1,6 @@
-[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) +[English](README.md) | [简体中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | [Русский](README_ru.md)