
DeepWiki — это моя собственная реализация DeepWiki, автоматически создающая красивые, интерактивные вики по любому репозиторию на GitHub, GitLab или BitBucket! Просто укажите название репозитория, и DeepWiki выполнит:
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
# Клонируйте репозиторий
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Создайте файл .env с вашими API-ключами
echo "GOOGLE_API_KEY=ваш_google_api_key" > .env
echo "OPENAI_API_KEY=ваш_openai_api_key" >> .env
# Необязательно: ключ OpenRouter
echo "OPENROUTER_API_KEY=ваш_openrouter_api_key" >> .env
# Необязательно: указать хост Ollama, если он не локальный (по умолчанию http://localhost:11434)
echo "OLLAMA_HOST=ваш_ollama_host" >> .env
# Необязательно: ключ и параметры Azure OpenAI
echo "AZURE_OPENAI_API_KEY=ваш_azure_api_key" >> .env
echo "AZURE_OPENAI_ENDPOINT=ваш_azure_endpoint" >> .env
echo "AZURE_OPENAI_VERSION=ваша_azure_version" >> .env
# Запуск через Docker Compose
docker-compose up
Подробную инструкцию по работе с Ollama и Docker см. в Ollama Instructions.
💡 Где взять ключи API: - Google AI Studio - OpenAI Platform - Azure Portal
Создайте файл .env в корне проекта со следующим содержанием:
GOOGLE_API_KEY=ваш_google_api_key
OPENAI_API_KEY=ваш_openai_api_key
# Необязательно: для OpenRouter
OPENROUTER_API_KEY=ваш_openrouter_api_key
# Необязательно: для Azure OpenAI
AZURE_OPENAI_API_KEY=ваш_azure_api_key
AZURE_OPENAI_ENDPOINT=ваш_azure_endpoint
AZURE_OPENAI_VERSION=ваша_azure_version
# Необязательно: если Ollama не локальная
OLLAMA_HOST=ваш_ollama_host
# Установка зависимостей
python -m pip install poetry==2.0.1 && poetry install -C api
# Запуск API
python -m api.main
# Установка JS-зависимостей
npm install
# или
yarn install
# Запуск веб-интерфейса
npm run dev
# или
yarn dev
https://github.com/openai/codex)DeepWiki использует искусственный интеллект, чтобы:
graph TD
A[Пользователь вводит ссылку на репозиторий] --> AA{Приватный репозиторий?}
AA -->|Да| AB[Добавить токен доступа]
AA -->|Нет| B[Клонировать репозиторий]
AB --> B
B --> C[Анализ структуры кода]
C --> D[Создание эмбеддингов]
D --> M{Выбор провайдера модели}
M -->|Google Gemini| E1[Генерация через Gemini]
M -->|OpenAI| E2[Генерация через OpenAI]
M -->|OpenRouter| E3[Генерация через OpenRouter]
M -->|Локальная Ollama| E4[Генерация через Ollama]
M -->|Azure| E5[Генерация через Azure]
E1 --> E[Создание документации]
E2 --> E
E3 --> E
E4 --> E
E5 --> E
D --> F[Создание диаграмм]
E --> G[Формирование вики]
F --> G
G --> H[Интерактивная DeepWiki]
classDef process stroke-width:2px;
classDef data stroke-width:2px;
classDef result stroke-width:2px;
classDef decision stroke-width:2px;
class A,D data;
class AA,M decision;
class B,C,E,F,G,AB,E1,E2,E3,E4,E5 process;
class H result;
deepwiki/
├── api/ # Backend API сервер
│ ├── main.py # Точка входа API
│ ├── api.py # Реализация через FastAPI
│ ├── rag.py # RAG: генерация с дополнением
│ ├── data_pipeline.py # Утилиты обработки данных
│ └── requirements.txt # Зависимости Python
│
├── src/ # Клиентское приложение на Next.js
│ ├── app/ # Каталог приложения Next.js
│ │ └── page.tsx # Главная страница приложения
│ └── components/ # React-компоненты
│ └── Mermaid.tsx # Рендеринг диаграмм Mermaid
│
├── public/ # Статические ресурсы
├── package.json # JS-зависимости
└── .env # Переменные окружения
DeepWiki поддерживает гибкую систему выбора моделей от разных поставщиков:
gemini-2.5-flash, также доступны gemini-2.5-flash-lite, gemini-2.5-pro, и др.gpt-5-nano, также поддерживает gpt-5, 4o и другиеgpt-4o, поддерживаются и другиеllama3Каждому провайдеру соответствуют свои ключи:
GOOGLE_API_KEY=... # Для моделей Google Gemini
OPENAI_API_KEY=... # Для моделей OpenAI
OPENROUTER_API_KEY=... # Для моделей OpenRouter
AZURE_OPENAI_API_KEY=... # Для моделей Azure
AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_VERSION=...
# Кастомный адрес для OpenAI API
OPENAI_BASE_URL=https://ваш-кастомный-api/v1
# Хост Ollama
OLLAMA_HOST=http://localhost:11434
# Каталог конфигурации
DEEPWIKI_CONFIG_DIR=/путь/к/конфигурации
DeepWiki использует JSON-файлы для настройки:
generator.json — конфигурация генерации текста и моделейembedder.json — настройки эмбеддингов и ретривераrepo.json — правила обработки репозиториевПо умолчанию хранятся в api/config/, путь можно изменить через DEEPWIKI_CONFIG_DIR.
Функция выбора модели позволяет:
Пользователи могут выбрать модель через интерфейс или указать свой идентификатор.
Позволяет:
Скоро: DeepWiki получит режим, в котором пользователи будут указывать свои API-ключи напрямую в запросах — удобно для корпоративных решений.
Чтобы использовать модели эмбеддингов, совместимые с OpenAI:
api/config/embedder.json на embedder_openai_compatible.json.env добавьте:OPENAI_API_KEY=ваш_ключ
OPENAI_BASE_URL=совместимый_endpoint
Программа автоматически подставит значения из переменных окружения.
DeepWiki использует стандартный logging из Python. Настраивается через:
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
LOG_LEVEL |
Уровень логов (DEBUG, INFO, WARNING и т.д.) | INFO |
LOG_FILE_PATH |
Путь к файлу логов | api/logs/application.log |
Пример:
export LOG_LEVEL=DEBUG
export LOG_FILE_PATH=./debug.log
python -m api.main
Или через Docker Compose:
LOG_LEVEL=DEBUG LOG_FILE_PATH=./debug.log docker-compose up
Для постоянства логов при перезапуске контейнера api/logs монтируется в ./api/logs.
Также можно указать переменные в .env:
LOG_LEVEL=DEBUG
LOG_FILE_PATH=./debug.log
И просто выполнить:
docker-compose up
Безопасность логов: в продакшене важно настроить права доступа к api/logs, чтобы исключить несанкционированный доступ или запись.
| Переменная | Назначение | Обязательно | Примечание |
|---|---|---|---|
GOOGLE_API_KEY |
Ключ API для Google Gemini | Нет | Только если используете модели от Google |
OPENAI_API_KEY |
Ключ API для OpenAI (нужен даже для эмбеддингов) | Да | Обязателен для генерации эмбеддингов |
OPENROUTER_API_KEY |
Ключ API для OpenRouter | Нет | Только если используете модели OpenRouter |
AZURE_OPENAI_API_KEY |
Ключ Azure OpenAI | Нет | Только если используете Azure |
AZURE_OPENAI_ENDPOINT |
Endpoint Azure | Нет | Только если используете Azure |
AZURE_OPENAI_VERSION |
Версия API Azure | Нет | Только если используете Azure |
OLLAMA_HOST |
Хост Ollama (по умолчанию http://localhost:11434) | Нет | Указывается при использовании внешнего сервера Ollama |
PORT |
Порт API-сервера (по умолчанию 8001) | Нет | Меняйте, если frontend и backend работают на одной машине |
SERVER_BASE_URL |
Базовый URL для API (по умолчанию http://localhost:8001) | Нет | |
DEEPWIKI_AUTH_MODE |
Включает режим авторизации (true или 1) | Нет | Если включён, потребуется код из DEEPWIKI_AUTH_CODE |
DEEPWIKI_AUTH_CODE |
Секретный код для запуска генерации | Нет | Только если включён режим авторизации |
Если не используете Ollama, обязательно настройте OpenAI API ключ.
DeepWiki может быть запущен в режиме авторизации — для генерации вики потребуется ввести секретный код. Это полезно, если вы хотите ограничить доступ к функциональности.
Для включения:
DEEPWIKI_AUTH_MODE=trueDEEPWIKI_AUTH_CODE=секретный_кодЭто ограничивает доступ с фронтенда и защищает кэш, но не блокирует прямые вызовы API.
Вы можете использовать Docker:
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=... \
-e OPENAI_API_KEY=... \
-e OPENROUTER_API_KEY=... \
-e OLLAMA_HOST=... \
-e AZURE_OPENAI_API_KEY=... \
-e AZURE_OPENAI_ENDPOINT=... \
-e AZURE_OPENAI_VERSION=... \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latest
Каталог `~/.adalflo
$ claude mcp add deepwiki-open \
-- python -m otcore.mcp_server <graph>