File: README.md
DeepWiki-Open (Grok-Wiki)
DeepWiki is my own implementation attempt of DeepWiki, automatically creates beautiful, interactive wikis for any GitHub, GitLab, or BitBucket repository! Just enter a repo name, and DeepWiki will:
- Analyze the code structure
- Generate comprehensive documentation
- Create visual diagrams to explain how everything works
- Organize it all into an easy-to-navigate wiki
- Generate codemap for code-centric guided tours
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
Deepwiki-Open 2.0 (Grok Wiki is now live)
- Download at https://grok-wiki.com
https://github.com/user-attachments/assets/48d1e60a-eb91-4c05-a5a8-3624ffb79fb1
🤝 Contributing
Contributions are welcome! Feel free to:
- Open issues for bugs or feature requests
- Submit pull requests to improve the code
- Share your feedback and ideas
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
⭐ Star History
File: api/README.md
🚀 DeepWiki API
This is the backend API for DeepWiki, providing smart code analysis and AI-powered documentation generation.
✨ Features
- Streaming AI Responses: Real-time responses using Google's Generative AI (Gemini)
- Smart Code Analysis: Automatically analyzes GitHub repositories
- RAG Implementation: Retrieval Augmented Generation for context-aware responses
- Local Storage: All data stored locally - no cloud dependencies
- Conversation History: Maintains context across multiple questions
🔧 Quick Setup
Step 1: Install Dependencies
# From the project root
python -m pip install poetry==2.0.1 && poetry install -C apiStep 2: Set Up Environment Variables
Create a .env file in the project root:
# Required API Keys
GOOGLE_API_KEY=your_google_api_key # Required for Google Gemini models
OPENAI_API_KEY=your_openai_api_key # Required for embeddings and OpenAI models
# Optional API Keys
OPENROUTER_API_KEY=your_openrouter_api_key # Required only if using OpenRouter models
# AWS Bedrock Configuration
AWS_ACCESS_KEY_ID=your_aws_access_key_id # Required for AWS Bedrock models
AWS_SECRET_ACCESS_KEY=your_aws_secret_key # Required for AWS Bedrock models
AWS_REGION=us-east-1 # Optional, defaults to us-east-1
AWS_ROLE_ARN=your_aws_role_arn # Optional, for role-based authentication
# OpenAI API Configuration
OPENAI_BASE_URL=https://custom-api-endpoint.com/v1 # Optional, for custom OpenAI API endpoints
# Ollama host
OLLAMA_HOST=https://your_ollama_host" # Optional: Add Ollama host if not local. default: http://localhost:11434
# Server Configuration
PORT=8001 # Optional, defaults to 8001If you're not using Ollama mode, you need to configure an OpenAI API key for embeddings. Other API keys are only required when configuring and using models from the corresponding providers.
💡 Where to get these keys:
- Get a Google API key from Google AI Studio
- Get an OpenAI API key from OpenAI Platform
- Get an OpenRouter API key from OpenRouter
- Get AWS credentials from AWS IAM Console
Advanced Environment Configuration
Provider-Based Model Selection
DeepWiki supports multiple LLM providers. The environment variables above are required depending on which providers you want to use:
- Google Gemini: Requires
GOOGLE_API_KEY - OpenAI: Requires
OPENAI_API_KEY - OpenRouter: Requires
OPENROUTER_API_KEY - AWS Bedrock: Requires
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEY - Ollama: No API key required (runs locally)
Custom OpenAI API Endpoints
The OPENAI_BASE_URL variable allows you to specify a custom endpoint for the OpenAI API. This is useful for:
- Enterprise users with private API channels
- Organizations using self-hosted or custom-deployed LLM services
- Integration with third-party OpenAI API-compatible services
Example: you can use the endpoint which support the OpenAI protocol provided by any organization
OPENAI_BASE_URL=https://custom-openai-endpoint.com/v1Configuration Files
DeepWiki now uses JSON configuration files to manage various system components instead of hardcoded values:
generator.json: Configuration for text generation models- Located in
api/config/by default - Defines available model providers (Google, OpenAI, OpenRouter, AWS Bedrock, Ollama)
- Specifies default and available models for each provider
- Contains model-specific parameters like temperature and top_p
- Located in
embedder.json: Configuration for embedding models and text processing- Located in
api/config/by default - Defines embedding models for vector storage
- Contains retriever configuration for RAG
- Specifies text splitter settings for document chunking
- Located in
repo.json: Configuration for repository handling- Located in
api/config/by default - Contains file filters to exclude certain files and directories
- Defines repository size limits and processing rules
- Located in
You can customize the configuration directory location using the environment variable:
DEEPWIKI_CONFIG_DIR=/path/to/custom/config/dir # Optional, for custom config file locationThis allows you to maintain different configurations for various environments or deployment scenarios without modifying the code.
Step 3: Start the API Server
# From the project root
python -m api.mainThe API will be available at http://localhost:8001
🧠 How It Works
1. Repository Indexing
When you provide a GitHub repository URL, the API:
- Clones the repository locally (if not already cloned)
- Reads all files in the repository
- Creates embeddings for the files using OpenAI
- Stores the embeddings in a local database
2. Smart Retrieval (RAG)
When you ask a question:
- The API finds the most relevant code snippets
- These snippets are used as context for the AI
- The AI generates a response based on this context
3. Real-Time Streaming
- Responses are streamed in real-time
- You see the answer as it's being generated
- This creates a more interactive experience
📡 API Endpoints
GET /
Returns basic API information and available endpoints.
POST /chat/completions/stream
Streams an AI-generated response about a GitHub repository.
Request Body:
{
"repo_url": "https://github.com/username/repo",
"messages": [
{
"role": "user",
"content": "What does this repository do?"
}
]
}Response:
A streaming response with the generated text.
📝 Example Code
import requests
# API endpoint
url = "http://localhost:8001/chat/completions/stream"
# Request data
payload = {
"repo_url": "https://github.com/AsyncFuncAI/deepwiki-open",
"messages": [
{
"role": "user",
"content": "Explain how React components work"
}
]
}
# Make streaming request
response = requests.post(url, json=payload, stream=True)
# Process the streaming response
for chunk in response.iter_content(chunk_size=None):
if chunk:
print(chunk.decode('utf-8'), end='', flush=True)💾 Storage
All data is stored locally on your machine:
- Cloned repositories:
~/.adalflow/repos/ - Embeddings and indexes:
~/.adalflow/databases/ - Generated wiki cache:
~/.adalflow/wikicache/
No cloud storage is used - everything runs on your computer!
File: README.es.md
DeepWiki-Open
DeepWiki crea automáticamente wikis hermosas e interactivas para cualquier repositorio de GitHub, GitLab o BitBucket. ¡Solo ingresa el nombre de un repositorio y DeepWiki:
- Analizará la estructura del código
- Generará documentación completa
- Creará diagramas visuales para explicar cómo funciona todo
- Organizará todo en una wiki fácil de navegar
- Generará un mapa de código (codemap) para recorridos guiados centrados en el código
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ Características
- Documentación Instantánea: Convierte cualquier repositorio de GitHub, GitLab o BitBucket en una wiki en segundos
- Soporte para Repositorios Privados: Accede de forma segura a repositorios privados con tokens de acceso personal
- Análisis Inteligente: Comprensión de la estructura y relaciones del código impulsada por IA
- Diagramas Hermosos: Diagramas Mermaid automáticos para visualizar la arquitectura y el flujo de datos
- Navegación Sencilla: Interfaz simple e intuitiva para explorar la wiki
- Función de Preguntas: Chatea con tu repositorio usando IA potenciada por RAG para obtener respuestas precisas
- Investigación Profunda: Proceso de investigación de múltiples turnos que examina a fondo temas complejos
- Múltiples Proveedores de Modelos: Soporte para Google Gemini, OpenAI, OpenRouter y modelos locales de Ollama
🚀 Inicio Rápido (¡Súper Fácil!)
Opción 1: Usando Docker
# Clonar el repositorio
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Crear un archivo .env con tus claves API
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# Opcional: Añadir clave API de OpenRouter si quieres usar modelos de OpenRouter
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# Ejecutar con Docker Compose
docker-compose up(Los comandos de Docker anteriores, así como la configuración de docker-compose.yml, montan el directorio ~/.adalflow de tu host en /root/.adalflow dentro del contenedor. Esta ruta se utiliza para almacenar:
- Repositorios clonados (
~/.adalflow/repos/) - Sus embeddings e índices (
~/.adalflow/databases/) - Contenido de wiki generado y cacheado (
~/.adalflow/wikicache/)
Esto asegura que tus datos persistan incluso si el contenedor se detiene o se elimina.)
💡 Dónde obtener estas claves:
- Obtén una clave API de Google en Google AI Studio
- Obtén una clave API de OpenAI en OpenAI Platform
Opción 2: Configuración Manual (Recomendada)
Paso 1: Configurar tus Claves API
Crea un archivo .env en la raíz del proyecto con estas claves:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# Opcional: Añade esto si quieres usar modelos de OpenRouter
OPENROUTER_API_KEY=your_openrouter_api_keyPaso 2: Iniciar el Backend
# Instalar dependencias de Python
python -m pip install poetry==2.0.1 && poetry install -C api
# Iniciar el servidor API
python -m api.mainPaso 3: Iniciar el Frontend
# Instalar dependencias de JavaScript
npm install
# o
yarn install
# Iniciar la aplicación web
npm run dev
# o
yarn devPaso 4: ¡Usar DeepWiki!
- Abre http://localhost:3000 en tu navegador
- Ingresa un repositorio de GitHub, GitLab o Bitbucket (como
https://github.com/openai/codex,https://github.com/microsoft/autogen,https://gitlab.com/gitlab-org/gitlab, ohttps://bitbucket.org/redradish/atlassian_app_versions) - Para repositorios privados, haz clic en "+ Agregar tokens de acceso" e ingresa tu token de acceso personal de GitHub o GitLab
- ¡Haz clic en "Generar Wiki" y observa la magia suceder!
🔍 Cómo Funciona
DeepWiki usa IA para:
- Clonar y analizar el repositorio de GitHub, GitLab o Bitbucket (incluyendo repos privados con autenticación por token)
- Crear embeddings del código para recuperación inteligente
- Generar documentación con IA consciente del contexto (usando modelos de Google Gemini, OpenAI, OpenRouter o Ollama local)
- Crear diagramas visuales para explicar las relaciones del código
- Organizar todo en una wiki estructurada
- Habilitar preguntas y respuestas inteligentes con el repositorio a través de la función de Preguntas
- Proporcionar capacidades de investigación en profundidad con Investigación Profunda
graph TD
A[Usuario ingresa repo GitHub/GitLab/Bitbucket] --> AA{¿Repo privado?}
AA -->|Sí| AB[Agregar token de acceso]
AA -->|No| B[Clonar Repositorio]
AB --> B
B --> C[Analizar Estructura del Código]
C --> D[Crear Embeddings del Código]
D --> M{Seleccionar Proveedor de Modelo}
M -->|Google Gemini| E1[Generar con Gemini]
M -->|OpenAI| E2[Generar con OpenAI]
M -->|OpenRouter| E3[Generar con OpenRouter]
M -->|Ollama Local| E4[Generar con Ollama]
E1 --> E[Generar Documentación]
E2 --> E
E3 --> E
E4 --> E
D --> F[Crear Diagramas Visuales]
E --> G[Organizar como Wiki]
F --> G
G --> H[DeepWiki Interactiva]
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 process;
class H result;🛠️ Estructura del Proyecto
deepwiki/
├── api/ # Servidor API backend
│ ├── main.py # Punto de entrada de la API
│ ├── api.py # Implementación FastAPI
│ ├── rag.py # Generación Aumentada por Recuperación
│ ├── data_pipeline.py # Utilidades de procesamiento de datos
│ └── requirements.txt # Dependencias Python
│
├── src/ # App frontend Next.js
│ ├── app/ # Directorio app de Next.js
│ │ └── page.tsx # Página principal de la aplicación
│ └── components/ # Componentes React
│ └── Mermaid.tsx # Renderizador de diagramas Mermaid
│
├── public/ # Activos estáticos
├── package.json # Dependencias JavaScript
└── .env # Variables de entorno (crear este archivo)🤖 Sistema de Selección de Modelos Basado en Proveedores
DeepWiki ahora implementa un sistema flexible de selección de modelos basado en proveedores que soporta múltiples proveedores de LLM:
Proveedores y Modelos Soportados
- Google: Predeterminado
gemini-2.5-flash, también soportagemini-2.5-flash-lite,gemini-2.5-pro, etc. - OpenAI: Predeterminado
gpt-5-nano, también soportagpt-5,4o, etc. - OpenRouter: Acceso a múltiples modelos a través de una API unificada, incluyendo Claude, Llama, Mistral, etc.
- Ollama: Soporte para modelos de código abierto ejecutados localmente como
llama3
Variables de Entorno
Cada proveedor requiere sus correspondientes variables de entorno para las claves API:
# Claves API
GOOGLE_API_KEY=tu_clave_api_google # Requerida para modelos Google Gemini
OPENAI_API_KEY=tu_clave_api_openai # Requerida para modelos OpenAI
OPENROUTER_API_KEY=tu_clave_api_openrouter # Requerida para modelos OpenRouter
# Configuración de URL Base de OpenAI API
OPENAI_BASE_URL=https://punto-final-personalizado.com/v1 # Opcional, para endpoints personalizados de OpenAI API
# Directorio de Configuración
DEEPWIKI_CONFIG_DIR=/ruta/a/directorio/config/personalizado # Opcional, para ubicación personalizada de archivos de configuraciónArchivos de Configuración
DeepWiki utiliza archivos de configuración JSON para gestionar varios aspectos del sistema:
generator.json: Configuración para modelos de generación de texto- Define los proveedores de modelos disponibles (Google, OpenAI, OpenRouter, Ollama)
- Especifica los modelos predeterminados y disponibles para cada proveedor
- Contiene parámetros específicos de los modelos como temperatura y top_p
embedder.json: Configuración para modelos de embeddings y procesamiento de texto- Define modelos de embeddings para almacenamiento vectorial
- Contiene configuración del recuperador para RAG
- Especifica ajustes del divisor de texto para fragmentación de documentos
repo.json: Configuración para manejo de repositorios- Contiene filtros de archivos para excluir ciertos archivos y directorios
- Define límites de tamaño de repositorio y reglas de procesamiento
Por defecto, estos archivos se encuentran en el directorio api/config/. Puedes personalizar su ubicación usando la variable de entorno DEEPWIKI_CONFIG_DIR.
Selección de Modelos Personalizados para Proveedores de Servicios
La función de selección de modelos personalizados está diseñada específicamente para proveedores de servicios que necesitan:
- Puede ofrecer a los usuarios dentro de su organización una selección de diferentes modelos de IA
- Puede adaptarse rápidamente al panorama de LLM en rápida evolución sin cambios de código
- Puede soportar modelos especializados o ajustados que no están en la lista predefinida
Usted puede implementar sus ofertas de modelos seleccionando entre las opciones predefinidas o ingresando identificadores de modelos personalizados en la interfaz frontend.
Configuración de URL Base para Canales Privados Empresariales
La configuración de base_url del Cliente OpenAI está diseñada principalmente para usuarios empresariales con canales API privados. Esta función:
- Permite la conexión a endpoints API privados o específicos de la empresa
- Permite a las organizaciones usar sus propios servicios LLM auto-alojados o desplegados a medida
- Soporta integración con servicios de terceros compatibles con la API de OpenAI
Próximamente: En futuras actualizaciones, DeepWiki soportará un modo donde los usuarios deberán proporcionar sus propias claves API en las solicitudes. Esto permitirá a los clientes empresariales con canales privados utilizar sus disposiciones API existentes sin compartir credenciales con el despliegue de DeepWiki.
🧩 Uso de modelos de embedding compatibles con OpenAI (por ejemplo, Alibaba Qwen)
Si deseas usar modelos de embedding compatibles con la API de OpenAI (como Alibaba Qwen), sigue estos pasos:
- Sustituye el contenido de
api/config/embedder.jsonpor el deapi/config/embedder_openai_compatible.json. - En el archivo
.envde la raíz del proyecto, configura las variables de entorno necesarias, por ejemplo:textOPENAI_API_KEY=tu_api_key OPENAI_BASE_URL=tu_endpoint_compatible_openai - El programa sustituirá automáticamente los placeholders de embedder.json por los valores de tus variables de entorno.
Así puedes cambiar fácilmente a cualquier servicio de embedding compatible con OpenAI sin modificar el código.
🤖 Funciones de Preguntas e Investigación Profunda
Función de Preguntas
La función de Preguntas te permite chatear con tu repositorio usando Generación Aumentada por Recuperación (RAG):
- Respuestas Conscientes del Contexto: Obtén respuestas precisas basadas en el código real de tu repositorio
- Potenciada por RAG: El sistema recupera fragmentos de código relevantes para proporcionar respuestas fundamentadas
- Transmisión en Tiempo Real: Ve las respuestas mientras se generan para una experiencia más interactiva
- Historial de Conversación: El sistema mantiene el contexto entre preguntas para interacciones más coherentes
Función de Investigación Profunda
Investigación Profunda lleva el análisis de repositorios al siguiente nivel con un proceso de investigación de múltiples turnos:
- Investigación en Profundidad: Explora a fondo temas complejos a través de múltiples iteraciones de investigación
- Proceso Estructurado: Sigue un plan de investigación claro con actualizaciones y una conclusión completa
- Continuación Automática: La IA continúa automáticamente la investigación hasta llegar a una conclusión (hasta 5 iteraciones)
- Etapas de Investigación:
- Plan de Investigación: Describe el enfoque y los hallazgos iniciales
- Actualizaciones de Investigación: Desarrolla las iteraciones anteriores con nuevas perspectivas
- Conclusión Final: Proporciona una respuesta completa basada en todas las iteraciones
Para usar Investigación Profunda, simplemente activa el interruptor "Investigación Profunda" en la interfaz de Preguntas antes de enviar tu pregunta.
📱 Capturas de Pantalla
La interfaz principal de DeepWiki
Acceso a repositorios privados con tokens de acceso personal
Investigación Profunda realiza investigaciones de múltiples turnos para temas complejos
Codemap
Video de Demostración
¡Mira DeepWiki en acción!
❓ Solución de Problemas
Problemas con Claves API
- "Faltan variables de entorno": Asegúrate de que tu archivo
.envesté en la raíz del proyecto y contenga las claves API requeridas - "Clave API no válida": Verifica que hayas copiado la clave completa correctamente sin espacios adicionales
- "Error de API OpenRouter": Verifica que tu clave API de OpenRouter sea válida y tenga créditos suficientes
Problemas de Conexión
- "No se puede conectar al servidor API": Asegúrate de que el servidor API esté ejecutándose en el puerto 8001
- "Error CORS": La API está configurada para permitir todos los orígenes, pero si tienes problemas, intenta ejecutar tanto el frontend como el backend en la misma máquina
Problemas de Generación
- "Error al generar wiki": Para repositorios muy grandes, prueba primero con uno más pequeño
- "Formato de repositorio no válido": Asegúrate de usar un formato de URL válido para GitHub, GitLab o Bitbucket
- "No se pudo obtener la estructura del repositorio": Para repositorios privados, asegúrate de haber ingresado un token de acceso personal válido con los permisos apropiados
- "Error de renderizado de diagrama": La aplicación intentará automáticamente arreglar los diagramas rotos
Soluciones Comunes
- Reiniciar ambos servidores: A veces un simple reinicio soluciona la mayoría de los problemas
- Revisar los registros de la consola: Abre las herramientas de desarrollo del navegador para ver cualquier error de JavaScript
- Revisar los registros de la API: Mira la terminal donde se ejecuta la API para ver errores de Python
🤝 Contribuir
¡Las contribuciones son bienvenidas! Siéntete libre de:
- Abrir issues para bugs o solicitudes de funciones
- Enviar pull requests para mejorar el código
- Compartir tus comentarios e ideas
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
⭐ Historial de Estrellas
File: README.fr.md
DeepWiki-Open
DeepWiki est ma propre tentative d’implémentation de DeepWiki, un outil qui crée automatiquement des wikis magnifiques et interactifs pour n’importe quel dépôt GitHub, GitLab ou Bitbucket ! Il suffit d’entrer un nom de dépôt, et DeepWiki :
- Analyse la structure du code
- Génère une documentation complète
- Crée des diagrammes visuels pour expliquer le fonctionnement
- Organise le tout dans un wiki facile à naviguer
- Génère une codemap pour des visites guidées centrées sur le code
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ Fonctionnalités
- Documentation instantanée : Transforme un dépôt GitHub, GitLab ou Bitbucket en wiki en quelques secondes
- Support des dépôts privés : Accès sécurisé avec jetons d’accès personnels
- Analyse intelligente : Compréhension de la structure et des relations du code via l’IA
- Diagrammes élégants : Diagrammes Mermaid automatiques pour visualiser l’architecture et les flux de données
- Navigation facile : Interface simple et intuitive
- Fonction “Ask” : Posez des questions à votre dépôt avec une IA alimentée par RAG
- DeepResearch : Processus de recherche multi-étapes pour explorer des sujets complexes
- Multiples fournisseurs de modèles IA : Prise en charge de Google Gemini, OpenAI, OpenRouter, et Ollama local
🚀 Démarrage rapide (super facile !)
Option 1 : Avec Docker
# Cloner le dépôt
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Créer un fichier .env avec vos clés API
echo "GOOGLE_API_KEY=votre_clé_google" > .env
echo "OPENAI_API_KEY=votre_clé_openai" >> .env
# Facultatif : clé OpenRouter
echo "OPENROUTER_API_KEY=votre_clé_openrouter" >> .env
# Facultatif : hôte personnalisé Ollama
echo "OLLAMA_HOST=votre_hote_ollama" >> .env
# Facultatif : Azure OpenAI
echo "AZURE_OPENAI_API_KEY=votre_clé_azure" >> .env
echo "AZURE_OPENAI_ENDPOINT=votre_endpoint" >> .env
echo "AZURE_OPENAI_VERSION=version_api" >> .env
# Lancer avec Docker Compose
docker-compose upPour des instructions détaillées sur l’utilisation de DeepWiki avec Ollama et Docker, consultez Ollama Instructions.
💡 Où obtenir ces clés :
- Obtenez une clé API Google depuis Google AI Studio
- Obtenez une clé API OpenAI depuis OpenAI Platform
- Obtenez les identifiants Azure OpenAI depuis Azure Portal – créez une ressource Azure OpenAI et récupérez la clé API, l’endpoint et la version de l’API
Option 2 : Installation manuelle (Recommandée)
Étape 1 : Configurez vos clés API
Créez un fichier .env à la racine du projet avec ces clés :
GOOGLE_API_KEY=votre_clé_google
OPENAI_API_KEY=votre_clé_openai
# Optionnel : Ajoutez ceci pour utiliser des modèles OpenRouter
OPENROUTER_API_KEY=votre_clé_openrouter
# Optionnel : Ajoutez ceci pour utiliser des modèles Azure OpenAI
AZURE_OPENAI_API_KEY=votre_clé_azure_openai
AZURE_OPENAI_ENDPOINT=votre_endpoint_azure_openai
AZURE_OPENAI_VERSION=votre_version_azure_openai
# Optionnel :Ajouter un hôte distant Ollama si il n'est pas local. défaut : http://localhost:11434
OLLAMA_HOST=votre_hote_ollamaÉtape 2 : Démarrer le Backend
# Installer dépendances Python
python -m pip install poetry==2.0.1 && poetry install -C api
# Démarrer le serveur API
python -m api.mainÉtape 3 : Démarrer le Frontend
# Installer les dépendances JavaScript
npm install
# ou
yarn install
# Démarrer le serveur web
npm run dev
# ou
yarn devÉtape 4 : Utiliser DeepWiki!
- Ouvrir http://localhost:3000 dans votre navigateur
- Entrer l'adresse d'un dépôt GitHub, GitLab ou Bitbucket (comme
https://github.com/openai/codex,https://github.com/microsoft/autogen,https://gitlab.com/gitlab-org/gitlab, orhttps://bitbucket.org/redradish/atlassian_app_versions) - Pour les dépôts privés, cliquez sur "+ Ajouter un jeton d'accès" et entrez votre jeton d’accès personnel GitHub ou GitLab.
- Cliquez sur "Générer le Wiki" et regardez la magie opérer !
🔍 Comment ça marche
DeepWiki utilise l'IA pour :
- Cloner et analyser le dépôt GitHub, GitLab ou Bitbucket (y compris les dépôts privés avec authentification par jeton d'accès)
- Créer des embeddings du code pour une récupération intelligente
- Générer de la documentation avec une IA sensible au contexte (en utilisant les modèles Google Gemini, OpenAI, OpenRouter, Azure OpenAI ou Ollama local)
- Créer des diagrammes visuels pour expliquer les relations du code
- Organiser le tout dans un wiki structuré
- Permettre des questions-réponses intelligentes avec le dépôt grâce à la fonctionnalité Ask
- Fournir des capacités de recherche approfondie avec DeepResearch
graph TD
A[Utilisateur entre un dépôt GitHub/GitLab/Bitbucket] --> AA{Dépôt privé?}
AA -->|Oui| AB[Ajouter un jeton d'accès]
AA -->|Non| B[Cloner le dépôt]
AB --> B
B --> C[Analyser la structure du code]
C --> D[Créer des Embeddings]
D --> M{Sélectionner le modèle}
M -->|Google Gemini| E1[Générer avec Gemini]
M -->|OpenAI| E2[Générer avec OpenAI]
M -->|OpenRouter| E3[Générer avec OpenRouter]
M -->|Local Ollama| E4[Générer avec Ollama]
M -->|Azure| E5[Générer avec Azure]
E1 --> E[Générer la documentation]
E2 --> E
E3 --> E
E4 --> E
E5 --> E
D --> F[Créer des diagrammes]
E --> G[Organiser en Wiki]
F --> G
G --> H[DeepWiki interactif]
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;🛠️ Structure du Projet
deepwiki/
├── api/ # Serveur API Backend
│ ├── main.py # Point d'entrée de l'API
│ ├── api.py # Implémentation FastAPI
│ ├── rag.py # Génération Augmentée par Récupération (RAG)
│ ├── data_pipeline.py # Utilitaires de traitement des données
│ └── requirements.txt # Dépendances Python
│
├── src/ # Application Frontend Next.js
│ ├── app/ # Répertoire de l'application Next.js
│ │ └── page.tsx # Page principale de l'application
│ └── components/ # Composants React
│ └── Mermaid.tsx # Rendu des diagrammes Mermaid
│
├── public/ # Ressources statiques
├── package.json # Dépendances JavaScript
└── .env # Variables d'environnement (à créer)🤖 Système de sélection de modèles
DeepWiki implémente désormais un système de sélection de modèles flexible, qui prend en charge plusieurs fournisseurs de LLM :
Fournisseurs et modèles pris en charge
- Google : Par défaut
gemini-2.5-flash, prend également en chargegemini-2.5-flash-lite,gemini-2.5-pro, etc. - OpenAI : Par défaut
gpt-5-nano, prend également en chargegpt-5,4o, etc. - OpenRouter : Accès à plusieurs modèles via une API unifiée, notamment Claude, Llama, Mistral, etc.
- Azure OpenAI : Par défaut
gpt-4o, prend également en chargeo4-mini, etc. - Ollama : Prise en charge des modèles open source exécutés localement, tels que
llama3.
Variables d'environnement
Chaque fournisseur requiert les variables d'environnement de clé API correspondantes :
# API Keys
GOOGLE_API_KEY=votre_clé_google # Requis pour les modèles Google Gemini
OPENAI_API_KEY=votre_clé_openai # Requis pour les modèles OpenAI
OPENROUTER_API_KEY=votre_clé_openrouter # Requis pour les modèles OpenRouter
AZURE_OPENAI_API_KEY=votre_clé_azure_openai #Requis pour les modèles Azure OpenAI
AZURE_OPENAI_ENDPOINT=votre_endpoint_azure_openai #Requis pour les modèles Azure OpenAI
AZURE_OPENAI_VERSION=votre_version_azure_openai #Requis pour les modèles Azure OpenAI
# Configuration d'un endpoint OpenAI API personnalisé
OPENAI_BASE_URL=https://custom-api-endpoint.com/v1 # Optionnel, pour les endpoints API OpenAI personnalisés
# Hôte Ollama personnalisé
OLLAMA_HOST=votre_hôte_ollama # Optionnel, si Ollama n'est pas local. défaut: http://localhost:11434
# Répertoire de configuration
DEEPWIKI_CONFIG_DIR=/chemin/vers/dossier/de/configuration # Optionnel, pour personaliser le répertoire de stockage de la configurationFichiers de Configuration
DeepWiki utilise des fichiers de configuration JSON pour gérer différents aspects du système :
generator.json: Configuration des modèles de génération de texte- Définit les fournisseurs de modèles disponibles (Google, OpenAI, OpenRouter, Azure, Ollama)
- Spécifie les modèles par défaut et disponibles pour chaque fournisseur
- Contient des paramètres spécifiques aux modèles tels que la température et top_p
embedder.json: Configuration des modèles d'embedding et du traitement de texte- Définit les modèles d'embedding pour le stockage vectoriel
- Contient la configuration du retriever pour RAG
- Spécifie les paramètres du séparateur de texte pour le chunking de documents
repo.json: Configuration de la gestion des dépôts- Contient des filtres de fichiers pour exclure certains fichiers et répertoires
- Définit les limites de taille des dépôts et les règles de traitement
Par défaut, ces fichiers sont situés dans le répertoire api/config/. Vous pouvez personnaliser leur emplacement à l'aide de la variable d'environnement DEEPWIKI_CONFIG_DIR.
Sélection de Modèles Personnalisés pour les Fournisseurs de Services
La fonctionnalité de sélection de modèles personnalisés est spécialement conçue pour les fournisseurs de services qui ont besoin de :
- Offrir plusieurs choix de modèles d'IA aux utilisateurs au sein de leur organisation
- S'adapter rapidement à l'évolution rapide du paysage des LLM sans modifications de code
- Prendre en charge des modèles spécialisés ou affinés qui ne figurent pas dans la liste prédéfinie
Les fournisseurs de services peuvent implémenter leurs offres de modèles en sélectionnant parmi les options prédéfinies ou en entrant des identifiants de modèles personnalisés dans l'interface utilisateur.
Configuration de l'URL de base pour les canaux privés d'entreprise
La configuration base_url du client OpenAI est principalement conçue pour les utilisateurs d'entreprise disposant de canaux API privés. Cette fonctionnalité :
- Permet la connexion à des points de terminaison API privés ou spécifiques à l'entreprise.
- Permet aux organisations d'utiliser leurs propres services LLM auto-hébergés ou déployés sur mesure.
- Prend en charge l'intégration avec des services tiers compatibles avec l'API OpenAI.
Bientôt disponible : Dans les prochaines mises à jour, DeepWiki prendra en charge un mode où les utilisateurs devront fournir leurs propres clés API dans les requêtes. Cela permettra aux entreprises clientes disposant de canaux privés d'utiliser leurs accords API existants sans partager leurs informations d'identification avec le déploiement DeepWiki.
🧩 Utilisation de modèles d'embedding compatibles avec OpenAI (par exemple, Alibaba Qwen)
Si vous souhaitez utiliser des modèles d'embedding compatibles avec l'API OpenAI (comme Alibaba Qwen), suivez ces étapes :
- Remplacez le contenu de
api/config/embedder.jsonpar celui deapi/config/embedder_openai_compatible.json. - Dans votre fichier
.envà la racine du projet, définissez les variables d'environnement appropriées, par exemple :textOPENAI_API_KEY=votre_clé_api OPENAI_BASE_URL=votre_endpoint_compatible_openai - Le programme substituera automatiquement les espaces réservés dans
embedder.jsonavec les valeurs de vos variables d'environnement.
Cela vous permet de passer facilement à n'importe quel service d'embedding compatible avec OpenAI sans modifications de code.
Journalisation (Logging)
DeepWiki utilise le module logging intégré de Python pour la sortie de diagnostics. Vous pouvez configurer la verbosité et la destination du fichier journal via des variables d'environnement :
| Variable | Description | Valeur par défaut |
|---|---|---|
LOG_LEVEL |
Niveau de journalisation (DEBUG, INFO, WARNING, ERROR, CRITICAL). | INFO |
LOG_FILE_PATH |
Chemin vers le fichier journal. Si défini, les journaux y seront écrits. | api/logs/application.log |
Pour activer la journalisation de débogage et diriger les journaux vers un fichier personnalisé :
export LOG_LEVEL=DEBUG
export LOG_FILE_PATH=./debug.log
python -m api.mainOu avec Docker Compose:
LOG_LEVEL=DEBUG LOG_FILE_PATH=./debug.log docker-compose upLors de l'exécution avec Docker Compose, le répertoire api/logs du conteneur est lié à ./api/logs sur votre hôte (voir la section volumes dans docker-compose.yml), ce qui garantit que les fichiers journaux persistent lors des redémarrages.
Vous pouvez également stocker ces paramètres dans votre fichier .env :
LOG_LEVEL=DEBUG
LOG_FILE_PATH=./debug.logPuis exécutez simplement :
docker-compose upConsidérations de sécurité concernant le chemin des journaux : Dans les environnements de production, assurez-vous que le répertoire api/logs et tout chemin de fichier journal personnalisé sont sécurisés avec des permissions de système de fichiers et des contrôles d'accès appropriés. L'application s'assure que LOG_FILE_PATH se trouve dans le répertoire api/logs du projet afin d'empêcher le parcours de chemin ou les écritures non autorisées.
🛠️ Configuration Avancée
Variables d'environnement
| Variable | Description | Requis | Note |
|---|---|---|---|
GOOGLE_API_KEY |
Clé API Google Gemini pour la génération | Non | Requis uniquement si vous souhaitez utiliser les modèles Google Gemini |
OPENAI_API_KEY |
Clé API OpenAI pour les embeddings et la génération | Oui | Remarque : Ceci est requis même si vous n'utilisez pas les modèles OpenAI, car elle est utilisée pour les embeddings. |
OPENROUTER_API_KEY |
Clé API OpenRouter pour les modèles alternatifs | Non | Requis uniquement si vous souhaitez utiliser les modèles OpenRouter |
AZURE_OPENAI_API_KEY |
Clé API Azure OpenAI | Non | Requis uniquement si vous souhaitez utiliser les modèles Azure OpenAI |
AZURE_OPENAI_ENDPOINT |
Point de terminaison Azure OpenAI | Non | Requis uniquement si vous souhaitez utiliser les modèles Azure OpenAI |
AZURE_OPENAI_VERSION |
Version Azure OpenAI | Non | Requis uniquement si vous souhaitez utiliser les modèles Azure OpenAI |
OLLAMA_HOST |
Hôte Ollama (par défaut : http://localhost:11434) | Non | Requis uniquement si vous souhaitez utiliser un serveur Ollama externe |
PORT |
Port du serveur API (par défaut : 8001) | Non | Si vous hébergez l'API et le frontend sur la même machine, assurez-vous de modifier le port de SERVER_BASE_URL en conséquence |
SERVER_BASE_URL |
URL de base du serveur API (par défaut : http://localhost:8001) | Non | |
DEEPWIKI_AUTH_MODE |
Définir sur true ou 1 pour activer le mode verrouillé |
Non | La valeur par défaut est false. Si activé, DEEPWIKI_AUTH_CODE est requis. |
DEEPWIKI_AUTH_CODE |
Le code requis pour la génération de wiki lorsque DEEPWIKI_AUTH_MODE est activé. |
Non | Utilisé uniquement si DEEPWIKI_AUTH_MODE est true ou 1. |
Si vous n'utilisez pas le mode Ollama, vous devez configurer une clé API OpenAI pour les embeddings. Les autres clés API ne sont requises que si vous configurez et utilisez des modèles des fournisseurs correspondants.
Mode vérouillé
DeepWiki peut être configuré pour fonctionner en mode vérouillé, où la génération de wiki nécessite un code d'autorisation valide. Ceci est utile si vous souhaitez contrôler qui peut utiliser la fonctionnalité de génération.
Restreint l'initialisation du frontend et protège la suppression du cache, mais n'empêche pas complètement la génération backend si les points de terminaison de l'API sont atteints directement.
Pour activer le mode vérouillé, définissez les variables d'environnement suivantes :
DEEPWIKI_AUTH_MODE: définissez cette variable surtrueou1. Une fois activée, l'interface affichera un champ de saisie pour le code d'autorisation.DEEPWIKI_AUTH_CODE: définissez cette variable sur le code secret souhaité. Restreint l'initialisation du frontend et protège la suppression du cache, mais n'empêche pas complètement la génération backend si les points de terminaison de l'API sont atteints directement.
Si DEEPWIKI_AUTH_MODE n'est pas défini ou est défini sur false (ou toute autre valeur que true/1), la fonctionnalité d'autorisation sera désactivée et aucun code ne sera requis.
Configuration Docker
Vous pouvez utiliser Docker pour exécuter DeepWiki :
Exécution du conteneur
# Récupérer l'image depuis GitHub Container Registry
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
# Exécuter le conteneur avec les variables d'environnement
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=votre_clé_google \
-e OPENAI_API_KEY=votre_clé_openai \
-e OPENROUTER_API_KEY=votre_clé_openrouter \
-e OLLAMA_HOST=votre_hôte_ollama \
-e AZURE_OPENAI_API_KEY=votre_clé_azure_openai \
-e AZURE_OPENAI_ENDPOINT=votre_endpoint_azure_openai \
-e AZURE_OPENAI_VERSION=votre_version_azure_openai \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestCette commande monte également ~/.adalflow de votre hôte vers /root/.adalflow dans le conteneur. Ce chemin est utilisé pour stocker :
- Les dépôts clonés (
~/.adalflow/repos/) - Leurs embeddings et index (
~/.adalflow/databases/) - Le contenu wiki généré mis en cache (
~/.adalflow/wikicache/)
Cela garantit que vos données persistent même si le conteneur est arrêté ou supprimé.
Vous pouvez également utiliser le fichier docker-compose.yml fourni :
# Modifiez d'abord le fichier .env avec vos clés API
docker-compose up(Le fichier docker-compose.yml est préconfiguré pour monter ~/.adalflow pour la persistance des données, de manière similaire à la commande docker run ci-dessus.)
Utilisation d'un fichier .env avec Docker
Vous pouvez également monter un fichier .env dans le conteneur :
# Créer un fichier .env avec vos clés API
echo "GOOGLE_API_KEY=votre_clé_google" > .env
echo "OPENAI_API_KEY=votre_clé_openai" >> .env
echo "OPENROUTER_API_KEY=votre_clé_openrouter" >> .env
echo "AZURE_OPENAI_API_KEY=votre_clé_azure_openai" >> .env
echo "AZURE_OPENAI_ENDPOINT=votre_endpoint_azure_openai" >> .env
echo "AZURE_OPENAI_VERSION=votre_version_azure_openai" >> .env
echo "OLLAMA_HOST=votre_hôte_ollama" >> .env
# Run the container with the .env file mounted
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestCette commande monte également ~/.adalflow de votre hôte vers /root/.adalflow dans le conteneur. Ce chemin est utilisé pour stocker :
- Les dépôts clonés (
~/.adalflow/repos/) - Leurs embeddings et index (
~/.adalflow/databases/) - Le contenu wiki généré mis en cache (
~/.adalflow/wikicache/)
Cela garantit que vos données persistent même si le conteneur est arrêté ou supprimé.
Construction de l'image Docker localement
If you want to build the Docker image locally:
# Clone the repository
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Build the Docker image
docker build -t deepwiki-open .
# Run the container
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=votre_clé_google \
-e OPENAI_API_KEY=votre_clé_openai \
-e OPENROUTER_API_KEY=votre_clé_openrouter \
-e AZURE_OPENAI_API_KEY=votre_clé_azure_openai \
-e AZURE_OPENAI_ENDPOINT=votre_endpoint_azure_openai \
-e AZURE_OPENAI_VERSION=votre_version_azure_openai \
-e OLLAMA_HOST=votre_hôte_ollama \
deepwiki-openUtilisation de certificats auto-signés dans Docker
Si vous êtes dans un environnement qui utilise des certificats auto-signés, vous pouvez les inclure dans la construction de l'image Docker :
- Créez un répertoire pour vos certificats (le répertoire par défaut est
certsà la racine de votre projet) - Copiez vos fichiers de certificats
.crtou.pemdans ce répertoire - Construisez l'image Docker :
# Construire avec le répertoire de certificats par défaut (certs)
docker build .
# Ou construire avec un répertoire de certificats personnalisé
docker build --build-arg CUSTOM_CERT_DIR=my-custom-certs .Détails du serveur API
Le serveur API fournit :
- Clonage et indexation des dépôts
- RAG (Retrieval Augmented Generation - Génération augmentée par récupération)
- Complétion de chat en streaming
Pour plus de détails, consultez le README de l’API.
🔌 Intégration OpenRouter
DeepWiki prend désormais en charge OpenRouter en tant que fournisseur de modèles, vous donnant accès à des centaines de modèles d'IA via une seule API :
- Options de modèles multiples : accédez aux modèles d'OpenAI, Anthropic, Google, Meta, Mistral, et plus encore
- Configuration simple : ajoutez simplement votre clé API OpenRouter et sélectionnez le modèle que vous souhaitez utiliser
- Rentabilité : choisissez des modèles qui correspondent à votre budget et à vos besoins en termes de performances
- Commutation facile : basculez entre différents modèles sans modifier votre code
Comment utiliser OpenRouter avec DeepWiki
- Obtenez une clé API : inscrivez-vous sur OpenRouter et obtenez votre clé API
- Ajouter à l'environnement : ajoutez
OPENROUTER_API_KEY=votre_cléà votre fichier.env - Activer dans l'interface utilisateur : cochez l'option "Utiliser l'API OpenRouter" sur la page d'accueil
- Sélectionnez le modèle : choisissez parmi les modèles populaires tels que GPT-4o, Claude 3.5 Sonnet, Gemini 2.0, et plus encore
OpenRouter est particulièrement utile si vous souhaitez :
- Essayer différents modèles sans vous inscrire à plusieurs services
- Accéder à des modèles qui pourraient être restreints dans votre région
- Comparer les performances entre différents fournisseurs de modèles
- Optimiser le rapport coût/performance en fonction de vos besoins
🤖 Fonctionnalités Ask & DeepResearch
Fonctionnalité Ask
La fonctionnalité Ask vous permet de discuter avec votre dépôt en utilisant la génération augmentée par récupération (RAG) :
- Réponses sensibles au contexte : obtenez des réponses précises basées sur le code réel de votre dépôt
- Alimenté par RAG : le système récupère des extraits de code pertinents pour fournir des réponses fondées
- Streaming en temps réel : visualisez les réponses au fur et à mesure de leur génération pour une expérience plus interactive
- Historique des conversations : le système conserve le contexte entre les questions pour des interactions plus cohérentes
Fonctionnalité DeepResearch
DeepResearch fait passer l'analyse de référentiel au niveau supérieur avec un processus de recherche en plusieurs étapes :
- Enquête approfondie : explore en profondeur des sujets complexes grâce à de multiples itérations de recherche
- Processus structuré : suit un plan de recherche clair avec des mises à jour et une conclusion complète
- Continuation automatique : l'IA poursuit automatiquement la recherche jusqu'à ce qu'elle atteigne une conclusion (jusqu'à 5 itérations)
- Étapes de la recherche :
- Plan de recherche : décrit l'approche et les premières conclusions
- Mises à jour de la recherche : s'appuie sur les itérations précédentes avec de nouvelles informations
- Conclusion finale : fournit une réponse complète basée sur toutes les itérations
Pour utiliser DeepResearch, activez simplement le commutateur "Deep Research" dans l'interface Ask avant de soumettre votre question.
📱 Captures d'écran
L'interface principale de DeepWiki
Accédez aux dépôts privés avec des jetons d'accès personnels
DeepResearch effectue des recherches en plusieurs étapes pour des sujets complexes
Codemap
Vidéo de démonstration
Regardez DeepWiki en action !
❓ Dépannage
Problèmes de clé API
- "Variables d'environnement manquantes" : assurez-vous que votre fichier
.envse trouve à la racine du projet et qu'il contient les clés API requises. - "Clé API non valide" : vérifiez que vous avez correctement copié la clé complète, sans espaces supplémentaires.
- "Erreur d'API OpenRouter" : vérifiez que votre clé API OpenRouter est valide et qu'elle dispose de crédits suffisants.
- "Erreur d'API Azure OpenAI" : vérifiez que vos informations d'identification Azure OpenAI (clé API, point de terminaison et version) sont correctes et que le service est correctement déployé.
Problèmes de connexion
- "Impossible de se connecter au serveur API" : assurez-vous que le serveur API est en cours d'exécution sur le port 8001.
- "Erreur CORS" : l'API est configurée pour autoriser toutes les origines, mais si vous rencontrez des problèmes, essayez d'exécuter le frontend et le backend sur la même machine.
Problèmes de génération
- "Erreur lors de la génération du wiki" : pour les très grands référentiels, essayez d'abord un référentiel plus petit.
- "Format de référentiel non valide" : assurez-vous que vous utilisez un format d'URL GitHub, GitLab ou Bitbucket valide.
- "Impossible de récupérer la structure du référentiel" : pour les référentiels privés, assurez-vous d'avoir saisi un jeton d'accès personnel valide avec les autorisations appropriées.
- "Erreur de rendu du diagramme" : l'application essaiera automatiquement de corriger les diagrammes cassés.
Solutions courantes
- Redémarrez les deux serveurs : parfois, un simple redémarrage résout la plupart des problèmes.
- Vérifiez les journaux de la console : ouvrez les outils de développement du navigateur pour voir les erreurs JavaScript.
- Vérifiez les journaux de l'API : consultez le terminal où l'API est en cours d'exécution pour les erreurs Python.
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Ouvrir des issues pour les bugs ou les demandes de fonctionnalités
- Soumettre des pull requests pour améliorer le code
- Partager vos commentaires et vos idées
📄 Licence
Projet sous licence MIT – Voir le fichier LICENSE.
⭐ Historique des stars
File: README.ja.md
DeepWiki-Open
DeepWikiは、GitHub、GitLab、または Bitbucket リポジトリのための美しくインタラクティブな Wiki を自動的に作成します!リポジトリ名を入力するだけで、DeepWiki は以下を行います:
- コード構造を分析
- 包括的なドキュメントを生成
- すべての仕組みを説明する視覚的な図を作成
- すべてを簡単に閲覧できる Wiki に整理
- コード中心のガイドツアーのためのコードマップを生成
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ 特徴
- 即時ドキュメント生成: あらゆる GitHub、GitLab、または Bitbucket リポジトリを数秒で Wiki に変換
- プライベートリポジトリ対応: 個人アクセストークンを使用してプライベートリポジトリに安全にアクセス
- スマート分析: AI を活用したコード構造と関係の理解
- 美しい図表: アーキテクチャとデータフローを視覚化する自動 Mermaid 図
- 簡単なナビゲーション: Wiki を探索するためのシンプルで直感的なインターフェース
- 質問機能: RAG 搭載 AI を使用してリポジトリとチャットし、正確な回答を得る
- 詳細調査: 複雑なトピックを徹底的に調査する多段階研究プロセス
- 複数のモデルプロバイダー: Google Gemini、OpenAI、OpenRouter、およびローカル Ollama モデルのサポート
🚀 クイックスタート(超簡単!)
オプション 1: Docker を使用
# リポジトリをクローン
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# APIキーを含む.envファイルを作成
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# オプション: OpenRouterモデルを使用する場合はOpenRouter APIキーを追加
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# Docker Composeで実行
docker-compose up(上記の Docker コマンドおよびdocker-compose.ymlの設定では、ホスト上の~/.adalflowディレクトリをコンテナ内の/root/.adalflowにマウントします。このパスは以下のものを保存するために使用されます:
- クローンされたリポジトリ (
~/.adalflow/repos/) - それらのエンベディングとインデックス (
~/.adalflow/databases/) - 生成された Wiki のキャッシュ (
~/.adalflow/wikicache/)
これにより、コンテナが停止または削除されてもデータが永続化されます。)
💡 これらのキーの入手先:
- Google API キーはGoogle AI Studioから取得
- OpenAI API キーはOpenAI Platformから取得
オプション 2: 手動セットアップ(推奨)
ステップ 1: API キーの設定
プロジェクトのルートに.envファイルを作成し、以下のキーを追加します:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# オプション: OpenRouterモデルを使用する場合は追加
OPENROUTER_API_KEY=your_openrouter_api_keyステップ 2: バックエンドの起動
# Pythonの依存関係をインストール
python -m pip install poetry==2.0.1 && poetry install -C api
# APIサーバーを起動
python -m api.mainステップ 3: フロントエンドの起動
# JavaScript依存関係をインストール
npm install
# または
yarn install
# Webアプリを起動
npm run dev
# または
yarn devステップ 4: DeepWiki を使用!
- ブラウザでhttp://localhost:3000を開く
- GitHub、GitLab、または Bitbucket リポジトリを入力(例:
https://github.com/openai/codex、https://github.com/microsoft/autogen、https://gitlab.com/gitlab-org/gitlab、またはhttps://bitbucket.org/redradish/atlassian_app_versions) - プライベートリポジトリの場合は、「+ アクセストークンを追加」をクリックして GitHub または GitLab の個人アクセストークンを入力
- 「Wiki を生成」をクリックして、魔法が起こるのを見守りましょう!
🔍 仕組み
DeepWiki は AI を使用して:
- GitHub、GitLab、または Bitbucket リポジトリをクローンして分析(トークン認証によるプライベートリポジトリを含む)
- スマート検索のためのコードの埋め込みを作成
- コンテキスト対応 AI でドキュメントを生成(Google Gemini、OpenAI、OpenRouter、またはローカル Ollama モデルを使用)
- コードの関係を説明する視覚的な図を作成
- すべてを構造化された Wiki に整理
- 質問機能を通じてリポジトリとのインテリジェントな Q&A を可能に
- 詳細調査機能で深い研究能力を提供
graph TD
A[ユーザーがGitHub/GitLab/Bitbucketリポジトリを入力] --> 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で生成]
E1 --> E[ドキュメントを生成]
E2 --> E
E3 --> E
E4 --> E
D --> F[視覚的な図を作成]
E --> G[Wikiとして整理]
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 process;
class H result;🛠️ プロジェクト構造
deepwiki/
├── api/ # バックエンドAPIサーバー
│ ├── main.py # APIエントリーポイント
│ ├── api.py # FastAPI実装
│ ├── rag.py # 検索拡張生成
│ ├── data_pipeline.py # データ処理ユーティリティ
│ └── requirements.txt # Python依存関係
│
├── src/ # フロントエンドNext.jsアプリ
│ ├── app/ # Next.jsアプリディレクトリ
│ │ └── page.tsx # メインアプリケーションページ
│ └── components/ # Reactコンポーネント
│ └── Mermaid.tsx # Mermaid図レンダラー
│
├── public/ # 静的アセット
├── package.json # JavaScript依存関係
└── .env # 環境変数(作成する必要あり)🛠️ 高度な設定
環境変数
| 変数 | 説明 | 必須 | 注意 |
|---|---|---|---|
GOOGLE_API_KEY |
AI 生成のための Google Gemini API キー | ◯ | |
OPENAI_API_KEY |
埋め込みのための OpenAI API キー | ◯ | |
OPENROUTER_API_KEY |
代替モデルのための OpenRouter API キー | ✗ | OpenRouter モデルを使用する場合にのみ必須です |
PORT |
API サーバーのポート(デフォルト:8001) | ✗ | API とフロントエンドを同じマシンでホストする場合、NEXT_PUBLIC_SERVER_BASE_URLのポートを適宜変更してください |
SERVER_BASE_URL |
API サーバーのベース URL(デフォルト:http://localhost:8001) |
✗ |
設定ファイル
DeepWikiはシステムの様々な側面を管理するためにJSON設定ファイルを使用しています:
generator.json: テキスト生成モデルの設定- 利用可能なモデルプロバイダー(Google、OpenAI、OpenRouter、Ollama)を定義
- 各プロバイダーのデフォルトおよび利用可能なモデルを指定
- temperatureやtop_pなどのモデル固有のパラメータを含む
embedder.json: 埋め込みモデルとテキスト処理の設定- ベクトルストレージ用の埋め込みモデルを定義
- RAG用の検索設定を含む
- ドキュメントチャンク分割のためのテキスト分割設定を指定
repo.json: リポジトリ処理の設定- 特定のファイルやディレクトリを除外するファイルフィルターを含む
- リポジトリサイズ制限と処理ルールを定義
デフォルトでは、これらのファイルはapi/config/ディレクトリにあります。DEEPWIKI_CONFIG_DIR環境変数を使用して、その場所をカスタマイズできます。
Docker セットアップ
Docker を使用して DeepWiki を実行できます:
# GitHub Container Registryからイメージをプル
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
# 環境変数を設定してコンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestこのコマンドは、ホスト上の ~/.adalflow をコンテナ内の /root/.adalflow にマウントします。このパスは以下のものを保存するために使用されます:
- クローンされたリポジトリ (~/.adalflow/repos/)
- それらのエンベディングとインデックス (~/.adalflow/databases/)
- 生成された Wiki のキャッシュ (~/.adalflow/wikicache/)
これにより、コンテナが停止または削除されてもデータが永続化されます。
または、提供されている docker-compose.yml ファイルを使用します。
# まず.envファイルをAPIキーで編集
docker-compose up(docker-compose.yml ファイルは、上記の docker run コマンドと同様に、データ永続化のために ~/.adalflow をマウントするように事前設定されています。)
Docker で.env ファイルを使用する
.env ファイルをコンテナにマウントすることもできます:
# APIキーを含む.envファイルを作成
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# .envファイルをマウントしてコンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestこのコマンドは、ホスト上の ~/.adalflow をコンテナ内の /root/.adalflow にマウントします。このパスは以下のものを保存するために使用されます:
- クローンされたリポジトリ (~/.adalflow/repos/)
- それらのエンベディングとインデックス (~/.adalflow/databases/)
- 生成された Wiki のキャッシュ (~/.adalflow/wikicache/)
これにより、コンテナが停止または削除されてもデータが永続化されます。
Docker イメージをローカルでビルドする
Docker イメージをローカルでビルドしたい場合:
# リポジトリをクローン
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Dockerイメージをビルド
docker build -t deepwiki-open .
# コンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
deepwiki-openAPI サーバー詳細
API サーバーは以下を提供します:
- リポジトリのクローンとインデックス作成
- RAG(Retrieval Augmented Generation:検索拡張生成)
- ストリーミングチャット補完
詳細については、API README を参照してください。
🤖 プロバイダーベースのモデル選択システム
DeepWikiでは、複数のLLMプロバイダーをサポートする柔軟なプロバイダーベースのモデル選択システムを実装しています:
サポートされているプロバイダーとモデル
- Google: デフォルトは
gemini-2.5-flash、またgemini-2.5-flash-lite、gemini-2.5-proなどもサポート - OpenAI: デフォルトは
gpt-5-nano、またgpt-5、4oなどもサポート - OpenRouter: Claude、Llama、Mistralなど、統一APIを通じて複数のモデルにアクセス
- Ollama:
llama3などのローカルで実行するオープンソースモデルをサポート
環境変数
各プロバイダーには、対応するAPI鍵の環境変数が必要です:
# API鍵
GOOGLE_API_KEY=あなたのGoogle API鍵 # Google Geminiモデルに必要
OPENAI_API_KEY=あなたのOpenAI鍵 # OpenAIモデルに必要
OPENROUTER_API_KEY=あなたのOpenRouter鍵 # OpenRouterモデルに必要
# OpenAI APIベースURL設定
OPENAI_BASE_URL=https://カスタムAPIエンドポイント.com/v1 # オプション、カスタムOpenAI APIエンドポイント用サービスプロバイダー向けのカスタムモデル選択
カスタムモデル選択機能は、あなたの組織のユーザーに様々なAIモデルの選択肢を提供するために特別に設計されています:
- あなたは組織内のユーザーに様々なAIモデルの選択肢を提供できます
- あなたはコード変更なしで急速に進化するLLM環境に迅速に適応できます
- あなたは事前定義リストにない専門的またはファインチューニングされたモデルをサポートできます
サービスプロバイダーは、事前定義されたオプションから選択するか、フロントエンドインターフェースでカスタムモデル識別子を入力することで、モデル提供を実装できます。
エンタープライズプライベートチャネル向けのベースURL設定
OpenAIクライアントのbase_url設定は、主にプライベートAPIチャネルを持つエンタープライズユーザー向けに設計されています。この機能は:
- プライベートまたは企業固有のAPIエンドポイントへの接続を可能に
- 組織が自己ホスト型または独自にデプロイされたLLMサービスを使用可能に
- サードパーティのOpenAI API互換サービスとの統合をサポート
近日公開: 将来のアップデートでは、ユーザーがリクエストで自分のAPI鍵を提供する必要があるモードをDeepWikiがサポートする予定です。これにより、プライベートチャネルを持つエンタープライズ顧客は、DeepWikiデプロイメントと認証情報を共有することなく、既存のAPI設定を使用できるようになります。
🔌 OpenRouter 連携
DeepWiki は、モデルプロバイダーとして OpenRouter をサポートするようになり、単一の API を通じて数百の AI モデルにアクセスできるようになりました。
- 複数のモデルオプション: OpenAI、Anthropic、Google、Meta、Mistralなど、統一APIを通じて複数のモデルにアクセス
- 簡単な設定: OpenRouter API キーを追加し、使用したいモデルを選択するだけ
- コスト効率: 予算とパフォーマンスのニーズに合ったモデルを選択
- 簡単な切り替え: コードを変更することなく、異なるモデル間を切り替え可能
DeepWiki で OpenRouter を使用する方法
- API キーを取得: OpenRouter でサインアップし、API キーを取得します
- 環境に追加: .env ファイルに OPENROUTER_API_KEY=your_key を追加します
- UI で有効化: ホームページの「OpenRouter API を使用」オプションをチェックします
- モデルを選択: GPT-4o、Claude 3.5 Sonnet、Gemini 2.0 などの人気モデルから選択します
OpenRouter は特に以下のような場合に便利です:
- 複数のサービスにサインアップせずに異なるモデルを試したい
- お住まいの地域で制限されている可能性のあるモデルにアクセスしたい
- 異なるモデルプロバイダー間でパフォーマンスを比較したい
- ニーズに基づいてコストとパフォーマンスを最適化したい
🤖 質問と詳細調査機能
質問機能
質問機能を使用すると、検索拡張生成(RAG)を使用してリポジトリとチャットできます:
- コンテキスト対応の回答: リポジトリの実際のコードに基づいた正確な回答を取得
- RAG 搭載: システムは関連するコードスニペットを取得して根拠のある回答を提供
- リアルタイムストリーミング: よりインタラクティブな体験のために、生成されるレスポンスをリアルタイムで確認
- 会話履歴: システムは質問間のコンテキストを維持し、より一貫性のあるインタラクションを実現
詳細調査機能
詳細調査は、複数ターンの研究プロセスでリポジトリ分析を次のレベルに引き上げます:
- 詳細な調査: 複数の研究反復を通じて複雑なトピックを徹底的に探索
- 構造化されたプロセス: 明確な研究計画、更新、包括的な結論を含む
- 自動継続: AI は結論に達するまで自動的に研究を継続(最大 5 回の反復)
- 研究段階:
- 研究計画: アプローチと初期調査結果の概要
- 研究更新: 新しい洞察を加えて前の反復を発展
- 最終結論: すべての反復に基づく包括的な回答を提供
詳細調査を使用するには、質問を送信する前に質問インターフェースの「詳細調査」スイッチをオンにするだけです。
📱 スクリーンショット
DeepWiki のメインインターフェース
個人アクセストークンを使用したプライベートリポジトリへのアクセス
詳細調査は複雑なトピックに対して多段階の調査を実施
Codemap
デモビデオ
DeepWiki の動作を見る!
❓ トラブルシューティング
API キーの問題
- 「環境変数が見つかりません」:
.envファイルがプロジェクトのルートにあり、必要な API キーが含まれていることを確認 - 「API キーが無効です」: キー全体が余分なスペースなしで正しくコピーされていることを確認
- 「OpenRouter API エラー」: OpenRouter API キーが有効で、十分なクレジットがあることを確認
接続の問題
- 「API サーバーに接続できません」: API サーバーがポート 8001 で実行されていることを確認
- 「CORS エラー」: API はすべてのオリジンを許可するように設定されていますが、問題がある場合は、フロントエンドとバックエンドを同じマシンで実行してみてください
生成の問題
- 「Wiki の生成中にエラーが発生しました」: 非常に大きなリポジトリの場合は、まず小さいものから試してみてください
- 「無効なリポジトリ形式」: 有効な GitHub、GitLab、または Bitbucket URL の形式を使用していることを確認
- 「リポジトリ構造を取得できませんでした」: プライベートリポジトリの場合、適切な権限を持つ有効な個人アクセストークンを入力したことを確認
- 「図のレンダリングエラー」: アプリは自動的に壊れた図を修正しようとします
一般的な解決策
- 両方のサーバーを再起動: 単純な再起動でほとんどの問題が解決することがあります
- コンソールログを確認: ブラウザの開発者ツールを開いて JavaScript エラーを確認
- API ログを確認: API が実行されているターミナルで Python エラーを確認
🤝 貢献
貢献は歓迎します!以下のことを自由に行ってください:
- バグや機能リクエストの問題を開く
- コードを改善するためのプルリクエストを提出
- フィードバックやアイデアを共有
📄 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細はLICENSEファイルを参照してください。
⭐ スター履歴
File: README.kr.md
DeepWiki-Open
DeepWiki는 제가 직접 구현한 프로젝트로, GitHub, GitLab 또는 BitBucket 저장소에 대해 아름답고 대화형 위키를 자동 생성합니다! 저장소 이름만 입력하면 DeepWiki가 다음을 수행합니다:
- 코드 구조 분석
- 포괄적인 문서 생성
- 모든 작동 방식을 설명하는 시각적 다이어그램 생성
- 이를 쉽게 탐색할 수 있는 위키로 정리
- 코드 중심의 가이드 투어를 위한 코드맵 생성
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ 주요 기능
- 즉시 문서화: 어떤 GitHub, GitLab 또는 BitBucket 저장소든 몇 초 만에 위키로 변환
- 비공개 저장소 지원: 개인 액세스 토큰으로 비공개 저장소 안전하게 접근
- 스마트 분석: AI 기반 코드 구조 및 관계 이해
- 아름다운 다이어그램: 아키텍처와 데이터 흐름을 시각화하는 자동 Mermaid 다이어그램
- 쉬운 탐색: 간단하고 직관적인 인터페이스로 위키 탐색 가능
- Ask 기능: RAG 기반 AI와 저장소에 대해 대화하며 정확한 답변 얻기
- DeepResearch: 복잡한 주제를 철저히 조사하는 다중 턴 연구 프로세스
- 다양한 모델 제공자 지원: Google Gemini, OpenAI, OpenRouter, 로컬 Ollama 모델 지원
🚀 빠른 시작 (초간단!)
옵션 1: Docker 사용
# 저장소 클론
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# API 키를 포함한 .env 파일 생성
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# 선택 사항: OpenRouter 모델 사용 시 API 키 추가
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# Docker Compose로 실행
docker-compose up💡 API 키는 어디서 얻나요:
- Google AI Studio에서 Google API 키 받기
- OpenAI 플랫폼에서 OpenAI API 키 받기
옵션 2: 수동 설정 (권장)
1단계: API 키 설정
프로젝트 루트에 .env 파일을 만들고 다음 키들을 추가하세요:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# 선택 사항: OpenRouter 모델 사용 시 추가
OPENROUTER_API_KEY=your_openrouter_api_key2단계: 백엔드 시작
# Python 의존성 설치
python -m pip install poetry==2.0.1 && poetry install -C api
# API 서버 실행
python -m api.main3단계: 프론트엔드 시작
# JavaScript 의존성 설치
npm install
# 또는
yarn install
# 웹 앱 실행
npm run dev
# 또는
yarn dev4단계: DeepWiki 사용하기!
- 브라우저에서 http://localhost:3000 열기
- GitHub, GitLab 또는 Bitbucket 저장소 입력 (예:
https://github.com/openai/codex,https://github.com/microsoft/autogen,https://gitlab.com/gitlab-org/gitlab,https://bitbucket.org/redradish/atlassian_app_versions) - 비공개 저장소인 경우 "+ 액세스 토큰 추가" 클릭 후 GitHub 또는 GitLab 개인 액세스 토큰 입력
- "Generate Wiki" 클릭 후 마법을 지켜보기!
🔍 작동 방식
DeepWiki는 AI를 사용하여 다음을 수행합니다:
- GitHub, GitLab 또는 Bitbucket 저장소 복제 및 분석 (토큰 인증이 필요한 비공개 저장소 포함)
- 스마트 검색을 위한 코드 임베딩 생성
- 문맥 인지 AI로 문서 생성 (Google Gemini, OpenAI, OpenRouter 또는 로컬 Ollama 모델 사용)
- 코드 관계를 설명하는 시각적 다이어그램 생성
- 모든 것을 구조화된 위키로 정리
- Ask 기능을 통한 저장소와의 지능형 Q&A 지원
- DeepResearch로 심층 연구 기능 제공
graph TD
A[사용자가 GitHub/GitLab/Bitbucket 저장소 입력] --> 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로 생성]
E1 --> E[문서 생성]
E2 --> E
E3 --> E
E4 --> 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 process;
class H result;🛠️ 프로젝트 구조
deepwiki/
├── api/ # 백엔드 API 서버
│ ├── main.py # API 진입점
│ ├── api.py # FastAPI 구현
│ ├── rag.py # Retrieval Augmented Generation
│ ├── data_pipeline.py # 데이터 처리 유틸리티
│ └── requirements.txt # Python 의존성
│
├── src/ # 프론트엔드 Next.js 앱
│ ├── app/ # Next.js 앱 디렉토리
│ │ └── page.tsx # 메인 애플리케이션 페이지
│ └── components/ # React 컴포넌트
│ └── Mermaid.tsx # Mermaid 다이어그램 렌더러
│
├── public/ # 정적 자산
├── package.json # JavaScript 의존성
└── .env # 환경 변수 (직접 생성)🛠️ 고급 설정
환경 변수
| 변수명 | 설명 | 필수 | 비고 |
|---|---|---|---|
GOOGLE_API_KEY |
AI 생성용 Google Gemini API 키 | 예 | |
OPENAI_API_KEY |
임베딩용 OpenAI API 키 | 예 | |
OPENROUTER_API_KEY |
대체 모델용 OpenRouter API 키 | 아니오 | OpenRouter 모델 사용 시 필요 |
PORT |
API 서버 포트 (기본값: 8001) | 아니오 | API와 프론트엔드를 같은 머신에서 호스팅 시 SERVER_BASE_URL의 포트도 변경 필요 |
SERVER_BASE_URL |
API 서버 기본 URL (기본값: http://localhost:8001) | 아니오 |
설정 파일
DeepWiki는 시스템의 다양한 측면을 관리하기 위해 JSON 설정 파일을 사용합니다:
generator.json: 텍스트 생성 모델 설정- 사용 가능한 모델 제공자(Google, OpenAI, OpenRouter, Ollama) 정의
- 각 제공자의 기본 및 사용 가능한 모델 지정
- temperature와 top_p 같은 모델별 매개변수 포함
embedder.json: 임베딩 모델 및 텍스트 처리 설정- 벡터 저장소용 임베딩 모델 정의
- RAG를 위한 검색기 설정 포함
- 문서 청킹을 위한 텍스트 분할기 설정 지정
repo.json: 저장소 처리 설정- 특정 파일 및 디렉토리를 제외하는 파일 필터 포함
- 저장소 크기 제한 및 처리 규칙 정의
기본적으로 이러한 파일은 api/config/ 디렉토리에 위치합니다. DEEPWIKI_CONFIG_DIR 환경 변수를 사용하여 위치를 사용자 정의할 수 있습니다.
Docker 설정
Docker를 사용하여 DeepWiki를 실행할 수 있습니다:
# GitHub 컨테이너 레지스트리에서 이미지 가져오기
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
# 환경 변수와 함께 컨테이너 실행
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latest이 명령어는 또한 호스트의 ~/.adalflow를 컨테이너의 /root/.adalflow에 마운트합니다. 이 경로는 다음을 저장하는 데 사용됩니다:
- 복제된 저장소 (
~/.adalflow/repos/) - 해당 저장소의 임베딩 및 인덱스 (
~/.adalflow/databases/) - 생성된 위키의 캐시 (
~/.adalflow/wikicache/)
이를 통해 컨테이너가 중지되거나 제거되어도 데이터가 유지됩니다.
또는 제공된 docker-compose.yml 파일을 사용하세요:
# API 키가 포함된 .env 파일을 먼저 편집
docker-compose up(docker-compose.yml 파일은 위의 docker run 명령어와 유사하게 데이터 지속성을 위해 ~/.adalflow를 마운트하도록 미리 구성되어 있습니다.)
Docker에서 .env 파일 사용하기
.env 파일을 컨테이너에 마운트할 수도 있습니다:
# API 키가 포함된 .env 파일 생성
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# .env 파일을 마운트하여 컨테이너 실행
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latest이 명령어는 또한 호스트의 ~/.adalflow를 컨테이너의 /root/.adalflow에 마운트합니다. 이 경로는 다음을 저장하는 데 사용됩니다:
- 복제된 저장소 (
~/.adalflow/repos/) - 해당 저장소의 임베딩 및 인덱스 (
~/.adalflow/databases/) - 생성된 위키의 캐시 (
~/.adalflow/wikicache/)
이를 통해 컨테이너가 중지되거나 제거되어도 데이터가 유지됩니다.
로컬에서 Docker 이미지 빌드하기
로컬에서 Docker 이미지를 빌드하려면:
# 저장소 클론
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Docker 이미지 빌드
docker build -t deepwiki-open .
# 컨테이너 실행
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
deepwiki-openAPI 서버 상세 정보
API 서버는 다음을 제공합니다:
- 저장소 복제 및 인덱싱
- RAG (Retrieval Augmented Generation)
- 스트리밍 채팅 완성
자세한 내용은 API README를 참조하세요.
🤖 제공자 기반 모델 선택 시스템
DeepWiki는 이제 여러 LLM 제공자를 지원하는 유연한 제공자 기반 모델 선택 시스템을 구현했습니다:
지원되는 제공자 및 모델
- Google: 기본값
gemini-2.5-flash, 또한gemini-2.5-flash-lite,gemini-2.5-pro등도 지원 - OpenAI: 기본값
gpt-5-nano, 또한gpt-5,4o등도 지원 - OpenRouter: Claude, Llama, Mistral 등 통합 API를 통해 다양한 모델 접근 가능
- Ollama:
llama3와 같은 로컬에서 실행되는 오픈소스 모델 지원
환경 변수
각 제공자는 해당 API 키 환경 변수가 필요합니다:
# API 키
GOOGLE_API_KEY=귀하의_구글_API_키 # Google Gemini 모델에 필요
OPENAI_API_KEY=귀하의_OpenAI_키 # OpenAI 모델에 필요
OPENROUTER_API_KEY=귀하의_OpenRouter_키 # OpenRouter 모델에 필요
# OpenAI API 기본 URL 구성
OPENAI_BASE_URL=https://사용자정의_API_엔드포인트.com/v1 # 선택 사항, 사용자 정의 OpenAI API 엔드포인트용서비스 제공자를 위한 사용자 정의 모델 선택
사용자 정의 모델 선택 기능은 다음이 필요한 서비스 제공자를 위해 특별히 설계되었습니다:
- 귀하는 조직 내 사용자에게 다양한 AI 모델 선택 옵션을 제공할 수 있습니다
- 귀하는 코드 변경 없이 빠르게 진화하는 LLM 환경에 신속하게 적응할 수 있습니다
- 귀하는 사전 정의된 목록에 없는 특수하거나 미세 조정된 모델을 지원할 수 있습니다
서비스 제공자는 사전 정의된 옵션에서 선택하거나 프론트엔드 인터페이스에서 사용자 정의 모델 식별자를 입력하여 모델 제공을 구현할 수 있습니다.
기업 전용 채널을 위한 기본 URL 구성
OpenAI 클라이언트의 base_url 구성은 주로 비공개 API 채널이 있는 기업 사용자를 위해 설계되었습니다. 이 기능은:
- 비공개 또는 기업 전용 API 엔드포인트 연결 가능
- 조직이 자체 호스팅되거나 사용자 정의 배포된 LLM 서비스 사용 가능
- 서드파티 OpenAI API 호환 서비스와의 통합 지원
출시 예정: 향후 업데이트에서 DeepWiki는 사용자가 요청에서 자신의 API 키를 제공해야 하는 모드를 지원할 예정입니다. 이를 통해 비공개 채널이 있는 기업 고객은 DeepWiki 배포와 자격 증명을 공유하지 않고도 기존 API 구성을 사용할 수 있습니다.
🔌 OpenRouter 통합
DeepWiki는 이제 OpenRouter를 모델 제공자로 지원하여, 단일 API를 통해 수백 개의 AI 모델에 접근할 수 있습니다:
- 다양한 모델 옵션: OpenAI, Anthropic, Google, Meta, Mistral 등 다양한 모델 이용 가능
- 간편한 설정: OpenRouter API 키만 추가하고 원하는 모델 선택
- 비용 효율성: 예산과 성능에 맞는 모델 선택 가능
- 손쉬운 전환: 코드 변경 없이 다양한 모델 간 전환 가능
DeepWiki에서 OpenRouter 사용법
- API 키 받기: OpenRouter 가입 후 API 키 획득
- 환경 변수 추가:
.env파일에OPENROUTER_API_KEY=your_key추가 - UI에서 활성화: 홈페이지에서 "Use OpenRouter API" 옵션 체크
- 모델 선택: GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 등 인기 모델 선택
OpenRouter는 특히 다음과 같은 경우 유용합니다:
- 여러 서비스에 가입하지 않고 다양한 모델 시도
- 지역 제한이 있는 모델 접근
- 모델 제공자별 성능 비교
- 비용과 성능 최적화
🤖 Ask 및 DeepResearch 기능
Ask 기능
Ask 기능은 Retrieval Augmented Generation (RAG)을 사용해 저장소와 대화할 수 있습니다:
- 문맥 인지 답변: 저장소 내 실제 코드 기반으로 정확한 답변 제공
- RAG 기반: 관련 코드 조각을 검색해 근거 있는 답변 생성
- 실시간 스트리밍: 답변 생성 과정을 실시간으로 확인 가능
- 대화 기록 유지: 질문 간 문맥을 유지해 더 일관된 대화 가능
DeepResearch 기능
DeepResearch는 다중 턴 연구 프로세스를 통해 저장소 분석을 한층 심화합니다:
- 심층 조사: 여러 연구 반복을 통해 복잡한 주제 철저히 탐구
- 구조화된 프로세스: 연구 계획, 업데이트, 최종 결론 단계로 진행
- 자동 연속 진행: AI가 최대 5회 반복해 연구를 계속 진행
- 연구 단계:
- 연구 계획: 접근법과 초기 발견 사항 개요 작성
- 연구 업데이트: 이전 반복 내용을 바탕으로 새로운 통찰 추가
- 최종 결론: 모든 반복을 종합한 포괄적 답변 제공
DeepResearch를 사용하려면 질문 제출 전 Ask 인터페이스에서 "Deep Research" 스위치를 켜세요.
📱 스크린샷
DeepWiki의 메인 인터페이스
개인 액세스 토큰으로 비공개 저장소 접근
DeepResearch는 복잡한 주제에 대해 다중 턴 조사를 수행
Codemap
데모 영상
DeepWiki 작동 영상 보기!
❓ 문제 해결
API 키 문제
- "환경 변수 누락":
.env파일이 프로젝트 루트에 있고 필요한 API 키가 포함되어 있는지 확인 - "API 키가 유효하지 않음": 키를 정확히 복사했는지, 공백이 없는지 확인
- "OpenRouter API 오류": OpenRouter API 키가 유효하고 충분한 크레딧이 있는지 확인
연결 문제
- "API 서버에 연결할 수 없음": API 서버가 포트 8001에서 실행 중인지 확인
- "CORS 오류": API가 모든 출처를 허용하도록 설정되어 있지만 문제가 있으면 프론트엔드와 백엔드를 같은 머신에서 실행해 보세요
생성 문제
- "위키 생성 오류": 아주 큰 저장소는 먼저 작은 저장소로 시도해 보세요
- "잘못된 저장소 형식": 유효한 GitHub, GitLab 또는 Bitbucket URL 형식인지 확인
- "저장소 구조를 가져올 수 없음": 비공개 저장소라면 적절한 권한의 개인 액세스 토큰을 입력했는지 확인
- "다이어그램 렌더링 오류": 앱이 자동으로 다이어그램 오류를 수정하려 시도합니다
일반적인 해결법
- 서버 둘 다 재시작: 간단한 재시작으로 대부분 문제 해결
- 콘솔 로그 확인: 브라우저 개발자 도구에서 자바스크립트 오류 확인
- API 로그 확인: API 실행 터미널에서 Python 오류 확인
🤝 기여
기여를 환영합니다! 다음을 자유롭게 해주세요:
- 버그나 기능 요청을 위한 이슈 열기
- 코드 개선을 위한 풀 리퀘스트 제출
- 피드백과 아이디어 공유
📄 라이선스
이 프로젝트는 MIT 라이선스 하에 있습니다 - 자세한 내용은 LICENSE 파일 참고.
⭐ 스타 히스토리
File: README.pt-br.md
DeepWiki-Open
DeepWiki é minha própria tentativa de implementação do DeepWiki, que cria automaticamente wikis bonitas e interativas para qualquer repositório GitHub, GitLab ou BitBucket! Basta inserir o nome de um repositório, e o DeepWiki irá:
- Analisar a estrutura do código
- Gerar documentação abrangente
- Criar diagramas visuais para explicar como tudo funciona
- Organizar tudo em uma wiki fácil de navegar
- Gerar um codemap para tours guiados centrados no código
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ Recursos
- Documentação Instantânea: Transforme qualquer repositório GitHub, GitLab ou BitBucket em uma wiki em segundos
- Suporte a Repositórios Privados: Acesse repositórios privados com segurança usando tokens de acesso pessoal
- Análise Inteligente: Compreensão da estrutura e relacionamentos do código com IA
- Diagramas Bonitos: Diagramas Mermaid automáticos para visualizar arquitetura e fluxo de dados
- Navegação Fácil: Interface simples e intuitiva para explorar a wiki
- Recurso de Perguntas: Converse com seu repositório usando IA com RAG para obter respostas precisas
- DeepResearch: Processo de pesquisa em várias etapas que investiga minuciosamente tópicos complexos
- Múltiplos Provedores de Modelos: Suporte para Google Gemini, OpenAI, OpenRouter e modelos locais Ollama
🚀 Início Rápido (Super Fácil!)
Opção 1: Usando Docker
# Clone o repositório
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Crie um arquivo .env com suas chaves de API
echo "GOOGLE_API_KEY=sua_chave_api_google" > .env
echo "OPENAI_API_KEY=sua_chave_api_openai" >> .env
# Opcional: Adicione a chave API OpenRouter se quiser usar modelos OpenRouter
echo "OPENROUTER_API_KEY=sua_chave_api_openrouter" >> .env
# Opcional: Adicione o host Ollama se não for local. padrão: http://localhost:11434
echo "OLLAMA_HOST=seu_host_ollama" >> .env
# Execute com Docker Compose
docker-compose upPara instruções detalhadas sobre como usar o DeepWiki com Ollama e Docker, veja Instruções do Ollama (em inglês).
💡 Onde obter essas chaves:
- Obtenha uma chave API Google no Google AI Studio
- Obtenha uma chave API OpenAI na Plataforma OpenAI
Opção 2: Configuração Manual (Recomendada)
Passo 1: Configure Suas Chaves API
Crie um arquivo .env na raiz do projeto com estas chaves:
GOOGLE_API_KEY=sua_chave_api_google
OPENAI_API_KEY=sua_chave_api_openai
# Opcional: Adicione isso se quiser usar modelos OpenRouter
OPENROUTER_API_KEY=sua_chave_api_openrouter
# Opcional: Adicione o host Ollama se não for local. padrão: http://localhost:11434
OLLAMA_HOST=seu_host_ollamaPasso 2: Inicie o Backend
# Instale as dependências Python
python -m pip install poetry==2.0.1 && poetry install -C api
# Inicie o servidor API
python -m api.mainPasso 3: Inicie o Frontend
# Instale as dependências JavaScript
npm install
# ou
yarn install
# Inicie o aplicativo web
npm run dev
# ou
yarn devPasso 4: Use o DeepWiki!
- Abra http://localhost:3000 no seu navegador
- Insira um repositório GitHub, GitLab ou Bitbucket (como
https://github.com/openai/codex,https://github.com/microsoft/autogen,https://gitlab.com/gitlab-org/gitlab, ouhttps://bitbucket.org/redradish/atlassian_app_versions) - Para repositórios privados, clique em "+ Adicionar tokens de acesso" e insira seu token de acesso pessoal do GitHub ou GitLab
- Clique em "Gerar Wiki" e veja a mágica acontecer!
🔍 Como Funciona
O DeepWiki usa IA para:
- Clonar e analisar o repositório GitHub, GitLab ou Bitbucket (incluindo repositórios privados com autenticação por token)
- Criar embeddings do código para recuperação inteligente
- Gerar documentação com IA contextual (usando modelos Google Gemini, OpenAI, OpenRouter ou Ollama local)
- Criar diagramas visuais para explicar relações de código
- Organizar tudo em uma wiki estruturada
- Permitir perguntas e respostas inteligentes com o repositório através do recurso de Perguntas
- Fornecer capacidades de pesquisa aprofundada com DeepResearch
graph TD
A[Usuário insere repo GitHub/GitLab/Bitbucket] --> AA{Repo privado?}
AA -->|Sim| AB[Adicionar token de acesso]
AA -->|Não| B[Clonar Repositório]
AB --> B
B --> C[Analisar Estrutura do Código]
C --> D[Criar Embeddings do Código]
D --> M{Selecionar Provedor de Modelo}
M -->|Google Gemini| E1[Gerar com Gemini]
M -->|OpenAI| E2[Gerar com OpenAI]
M -->|OpenRouter| E3[Gerar com OpenRouter]
M -->|Ollama Local| E4[Gerar com Ollama]
E1 --> E[Gerar Documentação]
E2 --> E
E3 --> E
E4 --> E
D --> F[Criar Diagramas Visuais]
E --> G[Organizar como Wiki]
F --> G
G --> H[DeepWiki Interativo]
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 process;
class H result;🛠️ Estrutura do Projeto
deepwiki/
├── api/ # Servidor API backend
│ ├── main.py # Ponto de entrada da API
│ ├── api.py # Implementação FastAPI
│ ├── rag.py # Retrieval Augmented Generation
│ ├── data_pipeline.py # Utilitários de processamento de dados
│ └── requirements.txt # Dependências Python
│
├── src/ # Aplicativo Next.js frontend
│ ├── app/ # Diretório do aplicativo Next.js
│ │ └── page.tsx # Página principal do aplicativo
│ └── components/ # Componentes React
│ └── Mermaid.tsx # Renderizador de diagramas Mermaid
│
├── public/ # Ativos estáticos
├── package.json # Dependências JavaScript
└── .env # Variáveis de ambiente (crie este arquivo)🤖 Sistema de Seleção de Modelos Baseado em Provedores
O DeepWiki agora implementa um sistema flexível de seleção de modelos baseado em provedores, suportando múltiplos provedores de LLM:
Provedores e Modelos Suportados
- Google: Padrão
gemini-2.5-flash, também suportagemini-2.5-flash-lite,gemini-2.5-pro, etc. - OpenAI: Padrão
gpt-5-nano, também suportagpt-5,4o, etc. - OpenRouter: Acesso a múltiplos modelos via uma API unificada, incluindo Claude, Llama, Mistral, etc.
- Ollama: Suporte para modelos de código aberto executados localmente como
llama3
Variáveis de Ambiente
Cada provedor requer suas variáveis de ambiente de chave API correspondentes:
# Chaves API
GOOGLE_API_KEY=sua_chave_api_google # Necessária para modelos Google Gemini
OPENAI_API_KEY=sua_chave_api_openai # Necessária para modelos OpenAI
OPENROUTER_API_KEY=sua_chave_api_openrouter # Necessária para modelos OpenRouter
# Configuração de URL Base da API OpenAI
OPENAI_BASE_URL=https://endpoint-api-personalizado.com/v1 # Opcional, para endpoints de API OpenAI personalizados
# Host Ollama
OLLAMA_HOST=seu_host_ollama # Opcional, se Ollama não for local. padrão: http://localhost:11434
# Diretório de Configuração
DEEPWIKI_CONFIG_DIR=/caminho/para/dir/config/personalizado # Opcional, para localização personalizada de arquivos de configuraçãoArquivos de Configuração
O DeepWiki usa arquivos de configuração JSON para gerenciar vários aspectos do sistema:
generator.json: Configuração para modelos de geração de texto- Define provedores de modelos disponíveis (Google, OpenAI, OpenRouter, Ollama)
- Especifica modelos padrão e disponíveis para cada provedor
- Contém parâmetros específicos de modelo como temperatura e top_p
embedder.json: Configuração para modelos de embedding e processamento de texto- Define modelos de embedding para armazenamento de vetores
- Contém configuração do recuperador para RAG
- Especifica configurações do divisor de texto para divisão de documentos
repo.json: Configuração para manipulação de repositórios- Contém filtros de arquivos para excluir certos arquivos e diretórios
- Define limites de tamanho de repositório e regras de processamento
Por padrão, esses arquivos estão localizados no diretório api/config/. Você pode personalizar sua localização usando a variável de ambiente DEEPWIKI_CONFIG_DIR.
Seleção de Modelo Personalizado para Provedores de Serviço
O recurso de seleção de modelo personalizado é especificamente projetado para provedores de serviço que precisam:
- Oferecer múltiplas opções de modelo de IA para usuários dentro de sua organização
- Adaptar-se rapidamente ao panorama de LLM em rápida evolução sem mudanças de código
- Suportar modelos especializados ou ajustados que não estão na lista predefinida
Provedores de serviço podem implementar suas ofertas de modelo selecionando entre as opções predefinidas ou inserindo identificadores de modelo personalizados na interface do frontend.
Configuração de URL Base para Canais Privados Empresariais
A configuração base_url do Cliente OpenAI é projetada principalmente para usuários empresariais com canais de API privados. Este recurso:
- Permite conexão a endpoints de API privados ou específicos da empresa
- Permite que organizações usem seus próprios serviços LLM auto-hospedados ou implantados personalizados
- Suporta integração com serviços compatíveis com a API OpenAI de terceiros
Em Breve: Em atualizações futuras, o DeepWiki suportará um modo onde os usuários precisam fornecer suas próprias chaves API nas solicitações. Isso permitirá que clientes empresariais com canais privados usem seus arranjos de API existentes sem compartilhar credenciais com a implantação do DeepWiki.
🤩 Usando Modelos de Embedding Compatíveis com OpenAI (ex., Alibaba Qwen)
Se você deseja usar modelos de embedding compatíveis com a API OpenAI (como Alibaba Qwen), siga estas etapas:
- Substitua o conteúdo de
api/config/embedder.jsonpelo deapi/config/embedder_openai_compatible.json. - No arquivo
.envda raiz do seu projeto, defina as variáveis de ambiente relevantes, por exemplo:textOPENAI_API_KEY=sua_chave_api OPENAI_BASE_URL=seu_endpoint_compativel_openai - O programa substituirá automaticamente os espaços reservados em embedder.json pelos valores de suas variáveis de ambiente.
Isso permite que você mude perfeitamente para qualquer serviço de embedding compatível com OpenAI sem mudanças de código.
Logging
O DeepWiki usa o módulo logging integrado do Python para saída de diagnóstico. Você pode configurar a verbosidade e o destino do arquivo de log via variáveis de ambiente:
| Variável | Descrição | Padrão |
|---|---|---|
LOG_LEVEL |
Nível de logging (DEBUG, INFO, WARNING, ERROR, CRITICAL). | INFO |
LOG_FILE_PATH |
Caminho para o arquivo de log. Se definido, logs serão escritos neste arquivo. | api/logs/application.log |
Para habilitar logging de depuração e direcionar logs para um arquivo personalizado:
export LOG_LEVEL=DEBUG
export LOG_FILE_PATH=./debug.log
python -m api.mainOu com Docker Compose:
LOG_LEVEL=DEBUG LOG_FILE_PATH=./debug.log docker-compose upAo executar com Docker Compose, o diretório api/logs do container é montado em ./api/logs no seu host (veja a seção volumes em docker-compose.yml), garantindo que os arquivos de log persistam entre reinicializações.
Alternativamente, você pode armazenar essas configurações no seu arquivo .env:
LOG_LEVEL=DEBUG
LOG_FILE_PATH=./debug.logEntão simplesmente execute:
docker-compose upConsiderações de Segurança do Caminho de Logging: Em ambientes de produção, garanta que o diretório api/logs e qualquer caminho de arquivo de log personalizado estejam protegidos com permissões de sistema de arquivos e controles de acesso apropriados. O aplicativo impõe que LOG_FILE_PATH resida dentro do diretório api/logs do projeto para evitar travessia de caminho ou escritas não autorizadas.
🔧 Configuração Avançada
Variáveis de Ambiente
| Variável | Descrição | Obrigatória | Observação |
|---|---|---|---|
GOOGLE_API_KEY |
Chave API Google Gemini para geração com IA | Não | Necessária apenas se você quiser usar modelos Google Gemini |
OPENAI_API_KEY |
Chave API OpenAI para embeddings | Sim | Nota: Isso é necessário mesmo se você não estiver usando modelos OpenAI, pois é usado para embeddings. |
OPENROUTER_API_KEY |
Chave API OpenRouter para modelos alternativos | Não | Necessária apenas se você quiser usar modelos OpenRouter |
OLLAMA_HOST |
Host Ollama (padrão: http://localhost:11434) | Não | Necessária apenas se você quiser usar servidor Ollama externo |
PORT |
Porta para o servidor API (padrão: 8001) | Não | Se você hospedar API e frontend na mesma máquina, certifique-se de alterar a porta de SERVER_BASE_URL de acordo |
SERVER_BASE_URL |
URL base para o servidor API (padrão: http://localhost:8001) | Não | |
DEEPWIKI_AUTH_MODE |
Defina como true ou 1 para habilitar o modo de autorização. |
Não | Padrão é false. Se habilitado, DEEPWIKI_AUTH_CODE é necessário. |
DEEPWIKI_AUTH_CODE |
O código secreto necessário para geração de wiki quando DEEPWIKI_AUTH_MODE está habilitado. |
Não | Usado apenas se DEEPWIKI_AUTH_MODE for true ou 1. |
Se você não estiver usando o modo ollama, você precisa configurar uma chave API OpenAI para embeddings. Outras chaves API são necessárias apenas ao configurar e usar modelos dos provedores correspondentes.
Modo de Autorização
O DeepWiki pode ser configurado para executar em um modo de autorização, onde a geração de wiki requer um código de autorização válido. Isso é útil se você quiser controlar quem pode usar o recurso de geração.
Restringe a iniciação do frontend e protege a exclusão de cache, mas não impede completamente a geração de backend se os endpoints da API forem acessados diretamente.
Para habilitar o modo de autorização, defina as seguintes variáveis de ambiente:
DEEPWIKI_AUTH_MODE: Defina comotrueou1. Quando habilitado, o frontend exibirá um campo de entrada para o código de autorização.DEEPWIKI_AUTH_CODE: Defina como o código secreto desejado. Restringe a iniciação do frontend e protege a exclusão de cache, mas não impede completamente a geração de backend se os endpoints da API forem acessados diretamente.
Se DEEPWIKI_AUTH_MODE não estiver definido ou estiver definido como false (ou qualquer outro valor diferente de true/1), o recurso de autorização será desativado, e nenhum código será necessário.
Configuração Docker
Você pode usar Docker para executar o DeepWiki:
# Baixe a imagem do GitHub Container Registry
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
# Execute o container com variáveis de ambiente
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=sua_chave_api_google \
-e OPENAI_API_KEY=sua_chave_api_openai \
-e OPENROUTER_API_KEY=sua_chave_api_openrouter \
-e OLLAMA_HOST=seu_host_ollama \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestEste comando também monta ~/.adalflow no seu host para /root/.adalflow no container. Este caminho é usado para armazenar:
- Repositórios clonados (
~/.adalflow/repos/) - Seus embeddings e índices (
~/.adalflow/databases/) - Conteúdo de wiki gerado em cache (
~/.adalflow/wikicache/)
Isso garante que seus dados persistam mesmo se o container for parado ou removido.
Ou use o arquivo docker-compose.yml fornecido:
# Edite o arquivo .env com suas chaves API primeiro
docker-compose up(O arquivo docker-compose.yml é pré-configurado para montar ~/.adalflow para persistência de dados, similar ao comando docker run acima.)
Usando um arquivo .env com Docker
Você também pode montar um arquivo .env no container:
# Crie um arquivo .env com suas chaves API
echo "GOOGLE_API_KEY=sua_chave_api_google" > .env
echo "OPENAI_API_KEY=sua_chave_api_openai" >> .env
echo "OPENROUTER_API_KEY=sua_chave_api_openrouter" >> .env
echo "OLLAMA_HOST=seu_host_ollama" >> .env
# Execute o container com o arquivo .env montado
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestEste comando também monta ~/.adalflow no seu host para /root/.adalflow no container. Este caminho é usado para armazenar:
- Repositórios clonados (
~/.adalflow/repos/) - Seus embeddings e índices (
~/.adalflow/databases/) - Conteúdo de wiki gerado em cache (
~/.adalflow/wikicache/)
Isso garante que seus dados persistam mesmo se o container for parado ou removido.
Construindo a imagem Docker localmente
Se você quiser construir a imagem Docker localmente:
# Clone o repositório
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Construa a imagem Docker
docker build -t deepwiki-open .
# Execute o container
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=sua_chave_api_google \
-e OPENAI_API_KEY=sua_chave_api_openai \
-e OPENROUTER_API_KEY=sua_chave_api_openrouter \
-e OLLAMA_HOST=seu_host_ollama \
deepwiki-openDetalhes do Servidor API
O servidor API fornece:
- Clonagem e indexação de repositórios
- RAG (Retrieval Augmented Generation)
- Completions de chat com streaming
Para mais detalhes, veja o README da API.
🔌 Integração com OpenRouter
O DeepWiki agora suporta OpenRouter como provedor de modelos, dando acesso a centenas de modelos de IA através de uma única API:
- Múltiplas Opções de Modelos: Acesse modelos da OpenAI, Anthropic, Google, Meta, Mistral e mais
- Configuração Simples: Apenas adicione sua chave API OpenRouter e selecione o modelo que deseja usar
- Eficiência de Custo: Escolha modelos que se adequem ao seu orçamento e necessidades de desempenho
- Troca Fácil: Alterne entre diferentes modelos sem alterar seu código
Como Usar o OpenRouter com DeepWiki
- Obtenha uma Chave API: Cadastre-se no OpenRouter e obtenha sua chave API
- Adicione ao Ambiente: Adicione
OPENROUTER_API_KEY=sua_chaveao seu arquivo.env - Habilite na UI: Marque a opção "Usar API OpenRouter" na página inicial
- Selecione o Modelo: Escolha entre modelos populares como GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 e mais
O OpenRouter é particularmente útil se você quiser:
- Experimentar diferentes modelos sem se cadastrar em múltiplos serviços
- Acessar modelos que podem estar restritos em sua região
- Comparar desempenho entre diferentes provedores de modelos
- Otimizar custo vs. desempenho com base em suas necessidades
🤖 Recursos de Perguntas & DeepResearch
Recurso de Perguntas
O recurso de Perguntas permite que você converse com seu repositório usando Retrieval Augmented Generation (RAG):
- Respostas Contextuais: Obtenha respostas precisas baseadas no código real em seu repositório
- Alimentado por RAG: O sistema recupera trechos de código relevantes para fornecer respostas fundamentadas
- Streaming em Tempo Real: Veja as respostas conforme são geradas para uma experiência mais interativa
- Histórico de Conversação: O sistema mantém contexto entre perguntas para interações mais coerentes
Recurso DeepResearch
O DeepResearch leva a análise de repositórios a um novo nível com um processo de pesquisa em várias etapas:
- Investigação Aprofundada: Explora minuciosamente tópicos complexos através de múltiplas iterações de pesquisa
- Processo Estruturado: Segue um plano de pesquisa claro com atualizações e uma conclusão abrangente
- Continuação Automática: A IA continua automaticamente a pesquisa até chegar a uma conclusão (até 5 iterações)
- Estágios de Pesquisa:
- Plano de Pesquisa: Descreve a abordagem e descobertas iniciais
- Atualizações de Pesquisa: Construído sobre iterações anteriores com novos insights
- Conclusão Final: Fornece uma resposta abrangente baseada em todas as iterações
Para usar o DeepResearch, simplesmente alterne o interruptor "Pesquisa Aprofundada" na interface de Perguntas antes de enviar sua pergunta.
📱 Capturas de Tela
A interface principal do DeepWiki
Acesse repositórios privados com tokens de acesso pessoal
DeepResearch conduz investigações em várias etapas para tópicos complexos
Codemap
Vídeo de Demonstração
Veja o DeepWiki em ação!
❓ Solução de Problemas
Problemas com Chaves API
- "Variáveis de ambiente ausentes": Certifique-se de que seu arquivo
.envestá na raiz do projeto e contém as chaves API necessárias - "Chave API não válida": Verifique se você copiou a chave completa corretamente sem espaços extras
- "Erro de API OpenRouter": Verifique se sua chave API OpenRouter é válida e tem créditos suficientes
Problemas de Conexão
- "Não é possível conectar ao servidor API": Certifique-se de que o servidor API está em execução na porta 8001
- "Erro CORS": A API está configurada para permitir todas as origens, mas se você estiver tendo problemas, tente executar frontend e backend na mesma máquina
Problemas de Geração
- "Erro ao gerar wiki": Para repositórios muito grandes, tente um menor primeiro
- "Formato de repositório inválido": Certifique-se de que está usando um formato de URL GitHub, GitLab ou Bitbucket válido
- "Não foi possível buscar a estrutura do repositório": Para repositórios privados, certifique-se de ter inserido um token de acesso pessoal válido com as permissões apropriadas
- "Erro de renderização de diagrama": O aplicativo tentará corrigir automaticamente diagramas quebrados
Soluções Comuns
- Reinicie ambos os servidores: Às vezes um simples reinicio resolve a maioria dos problemas
- Verifique os logs do console: Abra as ferramentas de desenvolvedor do navegador para ver quaisquer erros JavaScript
- Verifique os logs da API: Olhe o terminal onde a API está em execução para erros Python
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para:
- Abrir issues para bugs ou solicitações de recursos
- Enviar pull requests para melhorar o código
- Compartilhar seu feedback e ideias
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
⭐ Histórico de Estrelas
File: README.ru.md
DeepWiki-Open
DeepWiki — это моя собственная реализация DeepWiki, автоматически создающая красивые, интерактивные вики по любому репозиторию на GitHub, GitLab или BitBucket! Просто укажите название репозитория, и DeepWiki выполнит:
- Анализ структуры кода
- Генерацию полноценной документации
- Построение визуальных диаграмм, объясняющих работу системы
- Организацию всего в удобную и структурированную вики
- Создание карты кода (codemap) для пошаговых экскурсий по коду
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ Возможности
- Мгновенная документация: Превращение любого репозитория в вики за считанные секунды
- Поддержка приватных репозиториев: Безопасный доступ с помощью персональных токенов
- Умный анализ: Понимание структуры и взаимосвязей в коде с помощью ИИ
- Красивые диаграммы: Автоматическая генерация диаграмм Mermaid для отображения архитектуры и потоков данных
- Простая навигация: Интуитивный интерфейс для изучения вики
- Функция “Спросить”: Общение с репозиторием через ИИ, основанный на RAG, для получения точных ответов
- DeepResearch: Многошаговое исследование для глубокого анализа сложных тем
- Поддержка различных провайдеров моделей: Google Gemini, OpenAI, OpenRouter и локальные модели Ollama
🚀 Быстрый старт (максимально просто!)
Вариант 1: С использованием Docker
# Клонируйте репозиторий
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:
Вариант 2: Ручная установка (рекомендуется)
Шаг 1: Установка ключей API
Создайте файл .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Шаг 2: Запуск backend-сервера
# Установка зависимостей
python -m pip install poetry==2.0.1 && poetry install -C api
# Запуск API
python -m api.mainШаг 3: Запуск frontend-интерфейса
# Установка JS-зависимостей
npm install
# или
yarn install
# Запуск веб-интерфейса
npm run dev
# или
yarn devШаг 4: Используйте DeepWiki!
- Откройте http://localhost:3000 в браузере
- Введите URL репозитория (например,
https://github.com/openai/codex) - Для приватных репозиториев нажмите “+ Add access tokens” и введите токен
- Нажмите “Generate Wiki” и наблюдайте за магией!
🔍 Как это работает
DeepWiki использует искусственный интеллект, чтобы:
- Клонировать и проанализировать репозиторий GitHub, GitLab или Bitbucket (включая приватные — с использованием токенов)
- Создать эмбеддинги кода для интеллектуального поиска
- Сгенерировать документацию с учетом контекста (с помощью Google Gemini, OpenAI, OpenRouter, Azure OpenAI или локальных моделей Ollama)
- Построить визуальные диаграммы для отображения связей в коде
- Организовать всё в структурированную вики
- Включить интеллектуальное взаимодействие через функцию "Спросить"
- Обеспечить углубленный анализ через DeepResearch
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 поддерживает гибкую систему выбора моделей от разных поставщиков:
Поддерживаемые провайдеры и модели
- Google: По умолчанию
gemini-2.5-flash, также доступныgemini-2.5-flash-lite,gemini-2.5-pro, и др. - OpenAI: По умолчанию
gpt-5-nano, также поддерживаетgpt-5,4oи другие - OpenRouter: Доступ к множеству моделей через единый API (Claude, Llama, Mistral и др.)
- Azure OpenAI: По умолчанию
gpt-4o, поддерживаются и другие - Ollama: Локальные open-source модели, например
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.
Кастомизация для сервис-провайдеров
Функция выбора модели позволяет:
- Предоставлять выбор моделей пользователям вашей системы
- Легко адаптироваться к новым LLM без изменения кода
- Поддерживать кастомные или специализированные модели
Пользователи могут выбрать модель через интерфейс или указать свой идентификатор.
Настройка OpenAI base_url для корпоративных клиентов
Позволяет:
- Использовать приватные API OpenAI
- Подключаться к self-hosted решениям
- Интегрироваться с совместимыми сторонними сервисами
Скоро: DeepWiki получит режим, в котором пользователи будут указывать свои API-ключи напрямую в запросах — удобно для корпоративных решений.
🧩 Использование совместимых с OpenAI моделей (например, Alibaba Qwen)
Чтобы использовать модели эмбеддингов, совместимые с 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:
Запуск контейнера
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Каталог ~/.adalflow содержит:
- Клонированные репозитории
- Эмбеддинги и индексы
- Сгенерированные кэшированные вики
Docker Compose
# Убедитесь, что .env заполнен
docker-compose upИспользование .env
echo "GOOGLE_API_KEY=..." > .env
...
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestЛокальная сборка Docker-образа
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
docker build -t deepwiki-open .
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=... \
-e OPENAI_API_KEY=... \
... \
deepwiki-openСамоподписанные сертификаты
- Создайте каталог
certs(или свой) - Поместите сертификаты
.crtили.pem - Соберите образ:
docker build --build-arg CUSTOM_CERT_DIR=certs .Описание API
Сервер API:
- Клонирует и индексирует репозитории
- Реализует RAG
- Поддерживает потоковую генерацию
См. подробности в API README
🔌 Интеграция с OpenRouter
Платформа OpenRouter предоставляет доступ ко множеству моделей:
- Много моделей: OpenAI, Anthropic, Google, Meta и др.
- Простая настройка: достаточно API-ключа
- Гибкость и экономия: выбирайте модели по цене и производительности
- Быстрое переключение: без изменения кода
Как использовать
- Получите ключ на OpenRouter
- Добавьте
OPENROUTER_API_KEY=...в.env - Активируйте в интерфейсе
- Выберите модель (например GPT-4o, Claude 3.5, Gemini 2.0 и др.)
Подходит для:
- Тестирования разных моделей без регистрации в каждом сервисе
- Доступа к моделям в регионах с ограничениями
- Сравнения производительности
- Оптимизации затрат
🤖 Возможности Ask и DeepResearch
Ask
- Ответы по коду: AI использует содержимое репозитория
- RAG: подбираются релевантные фрагменты
- Потоковая генерация: ответы формируются в реальном времени
- История общения: поддерживается контекст
DeepResearch
Функция глубокого анализа:
- Многошаговый подход: AI сам исследует тему
- Этапы исследования:
- План
- Промежуточные результаты
- Итоговый вывод
Активируется переключателем "Deep Research".
📱 Скриншоты
Основной интерфейс DeepWiki
Доступ к приватным репозиториям
DeepResearch анализирует сложные темы
Codemap
Видео-демо
❓ Решение проблем
Проблемы с API-ключами
- “Отсутствуют переменные окружения” — проверьте
.env - “Неверный ключ” — уберите пробелы
- “Ошибка OpenRouter API” — проверьте ключ и баланс
- “Ошибка Azure API” — проверьте ключ, endpoint и версию
Проблемы с подключением
- “Нет подключения к API” — убедитесь, что сервер запущен на 8001
- “CORS ошибка” — пробуйте запускать frontend и backend на одной машине
Ошибки генерации
- “Ошибка генерации вики” — попробуйте меньший репозиторий
- “Неверный формат ссылки” — используйте корректные ссылки
- “Нет структуры репозитория” — проверьте токен доступа
- “Ошибка диаграмм” — система попытается автоматически исправить
Универсальные советы
- Перезапустите frontend и backend
- Проверьте консоль браузера
- Проверьте логи API
🤝 Участие
Вы можете:
- Заводить issues
- Отправлять pull requests
- Делиться идеями
📄 Лицензия
Проект распространяется под лицензией MIT. См. файл LICENSE
⭐ История звёзд
File: README.vi.md
DeepWiki-Open
Open DeepWiki là 1 triển khai thay thế cho DeepWiki, tự động tạo ra các trang wiki cho bất kỳ Repository nào trên GitHub, GitLab hoặc BitBucket! Chỉ cần nhập đường dẫn Repository, và DeepWiki sẽ:
- Phân tích cấu trúc mã nguồn
- Tạo tài liệu đầy đủ và chi tiết
- Tạo sơ đồ trực quan để giải thích cách mọi thứ hoạt động
- Sắp xếp tất cả documents thành một wiki dễ hiểu
- Tạo codemap cho các chuyến tham quan có hướng dẫn tập trung vào mã nguồn
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ Tính năng
- Tạo Tài liệu tức thì: Biến bất kỳ Repository GitHub, GitLab hoặc BitBucket nào thành wiki chỉ trong vài giây
- Hỗ trợ Private Repository: Truy cập Private Repository một cách an toàn với personal access tokens
- Phân tích thông minh: Hiểu cấu trúc và mối quan hệ của source codes nhờ AI
- Tự động tạo Sơ đồ: Tự động tạo sơ đồ Mermaid để trực quan hóa kiến trúc và luồng dữ liệu
- Dễ dàng thao tác:Giao diện wiki đơn giản, trực quan để khám phá
- Trò chuyện với repository: Trò chuyện với repo của bạn bằng AI (tích hợp RAG) để nhận câu trả lời chính xác
- DeepResearch:Quy trình Deep Research nhiều bước giúp phân tích kỹ lưỡng các chủ đề phức tạp
- Hỗ trợ nhiều mô hình: Hỗ trợ Google Gemini, OpenAI, OpenRouter, và local Ollama models
🚀 Bắt đầu (Siêu dễ :))
Option 1: Sử dụng Docker
# Clone repository
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Tạo .env file với API keys
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# Optional: Thêm OpenRouter API key nếu bạn muốn OpenRouter models
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# Run với Docker Compose
docker-compose up💡 Hướng dẫn lấy Keys
- Lấy Google API key từ Google AI Studio
- Lấy OpenAI API key từ OpenAI Platform
Option 2: Setup thủ công (Khuyên dùng)
Bước 1: Set Up API Keys
Tạo .env file trong thư mục gốc của project với những keys vừa tạo:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# Optional: Thêm OpenRouter API key nếu bạn muốn OpenRouter models
OPENROUTER_API_KEY=your_openrouter_api_keyBước 2: Bắt đầu với Backend
# Cài đặt Python dependencies
python -m pip install poetry==2.0.1 && poetry install -C api
# Chạy API server
python -m api.mainBước 3: Bắt đầu với Frontend
# Cài đặt JavaScript dependencies
npm install
# Hoặc
yarn install
# Chạy the web app
npm run dev
# Hoặc
yarn devBước 4: Dùng DeepWiki!
- Mở http://localhost:3000 trên trình duyệt
- Nhập đường dẫn GitHub, GitLab, hoặt Bitbucket repository (ví dụ như
https://github.com/openai/codex,https://github.com/microsoft/autogen,https://gitlab.com/gitlab-org/gitlab, hayhttps://bitbucket.org/redradish/atlassian_app_versions) - Cho private repositories, Nhấn "+ Add access tokens" và nhập your GitHub hoặt GitLab personal access token
- Click "Generate Wiki" và xem kết quả!
🔍 Cách Open Deepwiki hoạt động
DeepWiki dùng AI để:
- Clone và phân tích GitHub, GitLab, hoặc Bitbucket repository (bao gồm private repos với token authentication)
- Tạo embeddings cho code (Rag support)
- Tạo documentation với context-aware AI (dùng Google Gemini, OpenAI, OpenRouter, hay local Ollama models)
- Tạo diagrams để giải thích code relationships
- Organize thông tin thành 1 trang wiki
- Cho phép Q&A với repository
- Cung cấp khả năng DeepResearch
graph TD
A[User inputs GitHub/GitLab/Bitbucket repo] --> AA{Private repo?}
AA -->|Yes| AB[Add access token]
AA -->|No| B[Clone Repository]
AB --> B
B --> C[Analyze Code Structure]
C --> D[Create Code Embeddings]
D --> M{Select Model Provider}
M -->|Google Gemini| E1[Generate with Gemini]
M -->|OpenAI| E2[Generate with OpenAI]
M -->|OpenRouter| E3[Generate with OpenRouter]
M -->|Local Ollama| E4[Generate with Ollama]
E1 --> E[Generate Documentation]
E2 --> E
E3 --> E
E4 --> E
D --> F[Create Visual Diagrams]
E --> G[Organize as Wiki]
F --> G
G --> H[Interactive 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 process;
class H result;🛠️ Cấu trúc dự án
deepwiki/
├── api/ # Backend API server
│ ├── main.py # API
│ ├── api.py # FastAPI
│ ├── rag.py # Retrieval Augmented Generation (RAG)
│ ├── data_pipeline.py # Data processing utilities
│ └── requirements.txt # Python dependencies
│
├── src/ # Frontend Next.js app
│ ├── app/ # Next.js app directory
│ │ └── page.tsx # Main application page
│ └── components/ # React components
│ └── Mermaid.tsx # Mermaid diagram renderer
│
├── public/ # Static assets
├── package.json # JavaScript dependencies
└── .env # Environment variables (create this)🛠️ Cài đặt nâng cao
Biến môi trường
| Biến môi trường | Mô tả | bắt buộc | ghi chú |
|---|---|---|---|
GOOGLE_API_KEY |
Google Gemini API key | Có | |
OPENAI_API_KEY |
OpenAI API key | có | |
OPENROUTER_API_KEY |
OpenRouter API key | không | Yêu cầu nếu bạn muốn dùng OpenRouter models |
PORT |
Port của API server (mặc định: 8001) | không | Nếu bạn muốn chạy API và frontend trên cùng 1 máy, hãy điều chỉnh Port SERVER_BASE_URL |
SERVER_BASE_URL |
Đường dẫnn mặt định của API server (mặc định: http://localhost:8001) | không |
Cài Đặt với Docker
Bạn có thể dùng Docker để run DeepWiki:
# Pull Docker image từ GitHub Container Registry
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
# Chạy container với biến môi trường
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestHoặc đơn giản hơn, sử dụng docker-compose.yml :
# Edit the .env file with your API keys first
docker-compose upSử dụng .env file với Docker
Bạn có thể "mount" .env file vào container:
# Tạo .env file với your API keys
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# Run container với .env file
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latestBạn có thể Building the Docker image trên máy cục bộ
# Clone repository
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# Build Docker image
docker build -t deepwiki-open .
# Chạy container
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-e OPENROUTER_API_KEY=your_openrouter_api_key \
deepwiki-openChi tiết API Server
API server cung cấp:
- Repository cloning và indexing
- RAG (Retrieval Augmented Generation)
- Trò chuyện liên tục
Biết thêm chi tiết truy cập API README.
🤖 Hệ thống lựa chọn mô hình dựa trên nhà cung cấp
DeepWiki hiện đã triển khai một hệ thống lựa chọn mô hình linh hoạt dựa trên nhiều nhà cung cấp LLM:
Các nhà cung cấp và mô hình được hỗ trợ
- Google: Mặc định là
gemini-2.5-flash, cũng hỗ trợgemini-2.5-flash-lite,gemini-2.5-pro, v.v. - OpenAI: Mặc định là
gpt-5-nano, cũng hỗ trợgpt-5,4o, v.v. - OpenRouter: Truy cập nhiều mô hình qua một API thống nhất, bao gồm Claude, Llama, Mistral, v.v.
- Ollama: Hỗ trợ các mô hình mã nguồn mở chạy cục bộ như
llama3
Biến môi trường
Mỗi nhà cung cấp yêu cầu các biến môi trường API key tương ứng:
# API Keys
GOOGLE_API_KEY=google_api_key_của_bạn # Bắt buộc cho các mô hình Google Gemini
OPENAI_API_KEY=openai_key_của_bạn # Bắt buộc cho các mô hình OpenAI
OPENROUTER_API_KEY=openrouter_key_của_bạn # Bắt buộc cho các mô hình OpenRouter
# Cấu hình URL cơ sở cho OpenAI API
OPENAI_BASE_URL=https://endpoint-tùy-chỉnh.com/v1 # Tùy chọn, cho các điểm cuối API OpenAI tùy chỉnh
# Thư mục cấu hình
DEEPWIKI_CONFIG_DIR=/đường/dẫn/đến/thư_mục/cấu_hình # Tùy chọn, cho vị trí tệp cấu hình tùy chỉnhTệp cấu hình
DeepWiki sử dụng các tệp cấu hình JSON để quản lý các khía cạnh khác nhau của hệ thống:
generator.json: Cấu hình cho các mô hình tạo văn bản- Xác định các nhà cung cấp mô hình có sẵn (Google, OpenAI, OpenRouter, Ollama)
- Chỉ định các mô hình mặc định và có sẵn cho mỗi nhà cung cấp
- Chứa các tham số đặc thù cho mô hình như temperature và top_p
embedder.json: Cấu hình cho mô hình embedding và xử lý văn bản- Xác định mô hình embedding cho lưu trữ vector
- Chứa cấu hình bộ truy xuất cho RAG
- Chỉ định cài đặt trình chia văn bản để phân đoạn tài liệu
repo.json: Cấu hình xử lý repository- Chứa bộ lọc tệp để loại trừ một số tệp và thư mục nhất định
- Xác định giới hạn kích thước repository và quy tắc xử lý
Mặc định, các tệp này nằm trong thư mục api/config/. Bạn có thể tùy chỉnh vị trí của chúng bằng biến môi trường DEEPWIKI_CONFIG_DIR.
Lựa chọn mô hình tùy chỉnh cho nhà cung cấp dịch vụ
Tính năng lựa chọn mô hình tùy chỉnh được thiết kế đặc biệt cho các nhà cung cấp dịch vụ cần:
- Bạn có thể cung cấp cho người dùng trong tổ chức của mình nhiều lựa chọn mô hình AI khác nhau
- Bạn có thể thích ứng nhanh chóng với môi trường LLM đang phát triển nhanh chóng mà không cần thay đổi mã
- Bạn có thể hỗ trợ các mô hình chuyên biệt hoặc được tinh chỉnh không có trong danh sách định nghĩa trước
Bạn có thể triển khai các mô hình cung cấp bằng cách chọn từ các tùy chọn định nghĩa trước hoặc nhập định danh mô hình tùy chỉnh trong giao diện người dùng.
Cấu hình URL cơ sở cho các kênh riêng doanh nghiệp
Cấu hình base_url của OpenAI Client được thiết kế chủ yếu cho người dùng doanh nghiệp có các kênh API riêng. Tính năng này:
- Cho phép kết nối với các điểm cuối API riêng hoặc dành riêng cho doanh nghiệp
- Cho phép các tổ chức sử dụng dịch vụ LLM tự lưu trữ hoặc triển khai tùy chỉnh
- Hỗ trợ tích hợp với các dịch vụ tương thích API OpenAI của bên thứ ba
Sắp ra mắt: Trong các bản cập nhật tương lai, DeepWiki sẽ hỗ trợ chế độ mà người dùng cần cung cấp API key của riêng họ trong các yêu cầu. Điều này sẽ cho phép khách hàng doanh nghiệp có kênh riêng sử dụng cấu hình API hiện có mà không cần chia sẻ thông tin đăng nhập với triển khai DeepWiki.
🔌 Tích hợp OpenRouter
DeepWiki hiện đã hỗ trợ OpenRouter làm nhà cung cấp mô hình, cho phép bạn truy cập hàng trăm mô hình AI thông qua một API duy nhất:
- Nhiều tùy chọn mô hình: Truy cập các mô hình từ OpenAI, Anthropic, Google, Meta, Mistral và nhiều nhà cung cấp khác
- Cấu hình đơn giản: Chỉ cần thêm khóa API của bạn từ OpenRouter và chọn mô hình bạn muốn sử dụng
- Tiết kiệm chi phí: Lựa chọn mô hình phù hợp với ngân sách và nhu cầu hiệu suất của bạn
- Chuyển đổi dễ dàng: Chuyển đổi giữa các mô hình khác nhau mà không cần thay đổi mã nguồn
Cách sử dụng OpenRouter với DeepWiki
- Lấy API Key: Đăng ký tại OpenRouter và lấy khóa API
- Thêm vào biến môi trường: Thêm
OPENROUTER_API_KEY=your_keyvào file.env - Bật trong giao diện: Chọn "Use OpenRouter API" trên trang chủ
- Chọn mô hình: Lựa chọn từ các mô hình phổ biến như GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 và nhiều hơn nữa
OpenRouter đặc biệt hữu ích nếu bạn muốn:
- Thử nhiều mô hình khác nhau mà không cần đăng ký nhiều dịch vụ
- Truy cập các mô hình có thể bị giới hạn tại khu vực của bạn
- So sánh hiệu năng giữa các nhà cung cấp mô hình khác nhau
- Tối ưu hóa chi phí so với hiệu suất dựa trên nhu cầu của bạn
🤖 Tính năng Hỏi & Nghiên cứu Sâu (DeepResearch)
Tính năng Hỏi (Ask)
Tính năng Hỏi cho phép bạn trò chuyện với kho mã của mình bằng cách sử dụng kỹ thuật RAG (Retrieval Augmented Generation):
- Phản hồi theo ngữ cảnh: Nhận câu trả lời chính xác dựa trên mã thực tế trong kho của bạn
- Ứng dụng RAG: Hệ thống truy xuất các đoạn mã liên quan để tạo ra câu trả lời có cơ sở
- Phản hồi theo thởi gian thực: Xem câu trả lời được tạo ra trực tiếp, mang lại trải nghiệm tương tác hơn
- Lưu lịch sử cuộc trò chuyện: Hệ thống duy trì ngữ cảnh giữa các câu hỏi để cuộc đối thoại liền mạch hơn
Tính năng DeepResearch
DeepResearch nâng tầm phân tích kho mã với quy trình nghiện cứu nhiểu vòng:
- Ngieen cứu chuyên sâu: Khám phá kỹ lưỡng các chủ đề phức tạp thông qua nhiểu vòng nghiện cứu
- Quy trình có cấu trúc: Tuân theo kế hoạch nghiện cứu rõ ràng với các bản cập nhật và kết luận tổng thể
- Tự động tiếp tục: AI sẽ tự động tiếp tục quá trình nghiện cứu cho đến khi đưa ra kết luận (tối đa 5 vòng)
- Các giai đoạn nghiện cứu:
- Kế hoạch nghiện cứu: Phác thảo phương pháp và những phát hiện ban đầu
- Cập nhật nghiện cứu: Bổ sung kiến thức mới qua từng vòng lặp
- Kết luận cuối cùng: Đưa ra câu trả lời toàn diện dựa trên tất cả các vòng nghiện cứu
Để sử dụng DeepResearch, chỉ cần bật công tắc "Deep Research" trong giao diện Hỏi (Ask) trước khi gửi câu hỏi của bạn.
📱 Ảnh chụp màng hình
Giao diện chính của DeepWiki
Truy cập kho riêng tư bằng Personal Access Token
DeepResearch thực hiện nghiện cứu nhiểu vòng cho các chủ đề phức tạp
Codemap
Demo Video
❓ Khắc phục sự cố
Vấn đề với API Key
- "Thiếu biến môi trường": Đảm bảo rằng file
.envcủa bạn nằm ở thư mục gốc của dự án và chứa các API key cần thiết - "API key không hợp lệ": Kiểm tra lại xem bạn đã sao chép đầy đủ API key mà không có khoảng trắng thừa chưa
- "Lỗi API OpenRouter": Xác minh rằng API key của OpenRouter là hợp lệ và có đủ tín dụng
Vấn đề kết nối
- "Không thể kết nối với máy chủ API": Đảm bảo máy chủ API đang chạy trên cổng 8001
- "Lỗi CORS": API được cấu hình để cho phép tất cả các nguồn gốc, nhưng nếu gặp sự cố, thử chạy cả frontend và backend trên cùng một máy tính
Vấn đề khi tạo nội dung
- "Lỗi khi tạo wiki": Với các kho mã rất lớn, hãy thử trước với kho mã nhỏ hơn
- "Định dạng kho mã không hợp lệ": Đảm bảo bạn đang sử dụng định dạng URL hợp lệ cho GitHub, GitLab hoặc Bitbucket
- "Không thể lấy cấu trúc kho mã": Với các kho mã riêng tư, hãy đảm bảo bạn đã nhập token truy cập cá nhân hợp lệ và có quyền truy cập phù hợp
- "Lỗi khi render sơ đồ": Ứng dụng sẽ tự động thử khắc phục các sơ đồ bị lỗi
Các giải pháp phổ biến
- Khởi động lại cả hai máy chủ: Đôi khi, một lần khởi động lại đơn giản có thể giải quyết hầu hết các vấn đề
- Kiểm tra nhật ký trình duyệt: Mở công cụ phát triển của trình duyệt để xem các lỗi JavaScript
- Kiểm tra nhật ký API: Xem các lỗi Python trong terminal nơi API đang chạy
🤝 Đóng góp
Chúng tôi hoan nghênh mọi đóng góp! Bạn có thể:
- Mở các vấn đề (issues) để báo lỗi hoặc yêu cầu tính năng
- Gửi pull request để cải thiện mã nguồn
- Chia sẻ phản hồi và ý tưởng của bạn
📄 Giấy phép
Dự án này được cấp phép theo Giấy phép MIT - xem file LICENSE để biết chi tiết.
⭐ Lịch sử
File: README.zh.md
DeepWiki-Open
DeepWiki可以为任何GitHub、GitLab或BitBucket代码仓库自动创建美观、交互式的Wiki!只需输入仓库名称,DeepWiki将:
- 分析代码结构
- 生成全面的文档
- 创建可视化图表解释一切如何运作
- 将所有内容整理成易于导航的Wiki
- 生成代码地图,提供以代码为中心的引导式导览
English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский
✨ 特点
- 即时文档:几秒钟内将任何GitHub、GitLab或BitBucket仓库转换为Wiki
- 私有仓库支持:使用个人访问令牌安全访问私有仓库
- 智能分析:AI驱动的代码结构和关系理解
- 精美图表:自动生成Mermaid图表可视化架构和数据流
- 简易导航:简单、直观的界面探索Wiki
- 提问功能:使用RAG驱动的AI与您的仓库聊天,获取准确答案
- 深度研究:多轮研究过程,彻底调查复杂主题
- 多模型提供商:支持Google Gemini、OpenAI、OpenRouter和本地Ollama模型
🚀 快速开始(超级简单!)
选项1:使用Docker
# 克隆仓库
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
# 创建包含API密钥的.env文件
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# 可选:如果您想使用OpenRouter模型,添加OpenRouter API密钥
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# 使用Docker Compose运行
docker-compose up(上述 Docker 命令以及 docker-compose.yml 配置会挂载您主机上的 ~/.adalflow 目录到容器内的 /root/.adalflow。此路径用于存储:
- 克隆的仓库 (
~/.adalflow/repos/) - 仓库的嵌入和索引 (
~/.adalflow/databases/) - 缓存的已生成 Wiki 内容 (
~/.adalflow/wikicache/)
这确保了即使容器停止或移除,您的数据也能持久保存。)
💡 获取这些密钥的地方:
- 从Google AI Studio获取Google API密钥
- 从OpenAI Platform获取OpenAI API密钥
选项2:手动设置(推荐)
步骤1:设置API密钥
在项目根目录创建一个.env文件,包含以下密钥:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# 可选:如果您想使用OpenRouter模型,添加此项
OPENROUTER_API_KEY=your_openrouter_api_key步骤2:启动后端
# 安装Python依赖
python -m pip install poetry==2.0.1 && poetry install -C api
# 启动API服务器
python -m api.main步骤3:启动前端
# 安装JavaScript依赖
npm install
# 或
yarn install
# 启动Web应用
npm run dev
# 或
yarn dev步骤4:使用DeepWiki!
- 在浏览器中打开http://localhost:3000
- 输入GitHub、GitLab或Bitbucket仓库(如
https://github.com/openai/codex、https://github.com/microsoft/autogen、https://gitlab.com/gitlab-org/gitlab或https://bitbucket.org/redradish/atlassian_app_versions) - 对于私有仓库,点击"+ 添加访问令牌"并输入您的GitHub或GitLab个人访问令牌
- 点击"生成Wiki",见证奇迹的发生!
🔍 工作原理
DeepWiki使用AI来:
- 克隆并分析GitHub、GitLab或Bitbucket仓库(包括使用令牌认证的私有仓库)
- 创建代码嵌入用于智能检索
- 使用上下文感知AI生成文档(使用Google Gemini、OpenAI、OpenRouter或本地Ollama模型)
- 创建可视化图表解释代码关系
- 将所有内容组织成结构化Wiki
- 通过提问功能实现与仓库的智能问答
- 通过深度研究功能提供深入研究能力
graph TD
A[用户输入GitHub/GitLab/Bitbucket仓库] --> 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生成]
E1 --> E[生成文档]
E2 --> E
E3 --> E
E4 --> E
D --> F[创建可视化图表]
E --> G[组织为Wiki]
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 process;
class H result;🛠️ 项目结构
deepwiki/
├── api/ # 后端API服务器
│ ├── main.py # API入口点
│ ├── api.py # FastAPI实现
│ ├── rag.py # 检索增强生成
│ ├── data_pipeline.py # 数据处理工具
│ └── requirements.txt # Python依赖
│
├── src/ # 前端Next.js应用
│ ├── app/ # Next.js应用目录
│ │ └── page.tsx # 主应用页面
│ └── components/ # React组件
│ └── Mermaid.tsx # Mermaid图表渲染器
│
├── public/ # 静态资源
├── package.json # JavaScript依赖
└── .env # 环境变量(需要创建)🤖 提问和深度研究功能
提问功能
提问功能允许您使用检索增强生成(RAG)与您的仓库聊天:
- 上下文感知响应:基于仓库中实际代码获取准确答案
- RAG驱动:系统检索相关代码片段,提供有根据的响应
- 实时流式传输:实时查看生成的响应,获得更交互式的体验
- 对话历史:系统在问题之间保持上下文,实现更连贯的交互
深度研究功能
深度研究通过多轮研究过程将仓库分析提升到新水平:
- 深入调查:通过多次研究迭代彻底探索复杂主题
- 结构化过程:遵循清晰的研究计划,包含更新和全面结论
- 自动继续:AI自动继续研究直到达成结论(最多5次迭代)
- 研究阶段:
- 研究计划:概述方法和初步发现
- 研究更新:在前一轮迭代基础上增加新见解
- 最终结论:基于所有迭代提供全面答案
要使用深度研究,只需在提交问题前在提问界面中切换"深度研究"开关。
📱 截图
DeepWiki的主界面
使用个人访问令牌访问私有仓库
深度研究为复杂主题进行多轮调查
代码地图
演示视频
观看DeepWiki实际操作!
❓ 故障排除
API密钥问题
- "缺少环境变量":确保您的
.env文件位于项目根目录并包含所需的API密钥 - "API密钥无效":检查您是否正确复制了完整密钥,没有多余空格
- "OpenRouter API错误":验证您的OpenRouter API密钥有效且有足够的额度
连接问题
- "无法连接到API服务器":确保API服务器在端口8001上运行
- "CORS错误":API配置为允许所有来源,但如果您遇到问题,请尝试在同一台机器上运行前端和后端
生成问题
- "生成Wiki时出错":对于非常大的仓库,请先尝试较小的仓库
- "无效的仓库格式":确保您使用有效的GitHub、GitLab或Bitbucket URL格式
- "无法获取仓库结构":对于私有仓库,确保您输入了具有适当权限的有效个人访问令牌
- "图表渲染错误":应用程序将自动尝试修复损坏的图表
常见解决方案
- 重启两个服务器:有时简单的重启可以解决大多数问题
- 检查控制台日志:打开浏览器开发者工具查看任何JavaScript错误
- 检查API日志:查看运行API的终端中的Python错误
🤝 贡献
欢迎贡献!随时:
- 为bug或功能请求开issue
- 提交pull request改进代码
- 分享您的反馈和想法
📄 许可证
本项目根据MIT许可证授权 - 详情请参阅LICENSE文件。
⭐ 星标历史
🤖 基于提供者的模型选择系统
DeepWiki 现在实现了灵活的基于提供者的模型选择系统,支持多种 LLM 提供商:
支持的提供商和模型
- Google: 默认使用
gemini-2.5-flash,还支持gemini-2.5-flash-lite、gemini-2.5-pro等 - OpenAI: 默认使用
gpt-5-nano,还支持gpt-5,4o等 - OpenRouter: 通过统一 API 访问多种模型,包括 Claude、Llama、Mistral 等
- Ollama: 支持本地运行的开源模型,如
llama3
环境变量
每个提供商需要相应的 API 密钥环境变量:
# API 密钥
GOOGLE_API_KEY=你的谷歌API密钥 # 使用 Google Gemini 模型必需
OPENAI_API_KEY=你的OpenAI密钥 # 使用 OpenAI 模型必需
OPENROUTER_API_KEY=你的OpenRouter密钥 # 使用 OpenRouter 模型必需
# OpenAI API 基础 URL 配置
OPENAI_BASE_URL=https://自定义API端点.com/v1 # 可选,用于自定义 OpenAI API 端点为服务提供者设计的自定义模型选择
自定义模型选择功能专为需要以下功能的服务提供者设计:
- 您可在您的组织内部为用户提供多种 AI 模型选择
- 您无需代码更改即可快速适应快速发展的 LLM 领域
- 您可支持预定义列表中没有的专业或微调模型
使用者可以通过从服务提供者预定义选项中选择或在前端界面中输入自定义模型标识符来实现其模型产品。
为企业私有渠道设计的基础 URL 配置
OpenAI 客户端的 base_url 配置主要为拥有私有 API 渠道的企业用户设计。此功能:
- 支持连接到私有或企业特定的 API 端点
- 允许组织使用自己的自托管或自定义部署的 LLM 服务
- 支持与第三方 OpenAI API 兼容服务的集成
即将推出:在未来的更新中,DeepWiki 将支持一种模式,用户需要在请求中提供自己的 API 密钥。这将允许拥有私有渠道的企业客户使用其现有的 API 安排,而不是与 DeepWiki 部署共享凭据。
环境变量
每个提供商需要其相应的API密钥环境变量:
# API密钥
GOOGLE_API_KEY=your_google_api_key # Google Gemini模型必需
OPENAI_API_KEY=your_openai_api_key # OpenAI模型必需
OPENROUTER_API_KEY=your_openrouter_api_key # OpenRouter模型必需
# OpenAI API基础URL配置
OPENAI_BASE_URL=https://custom-api-endpoint.com/v1 # 可选,用于自定义OpenAI API端点
# 配置目录
DEEPWIKI_CONFIG_DIR=/path/to/custom/config/dir # 可选,用于自定义配置文件位置
# 授权模式
DEEPWIKI_AUTH_MODE=true # 设置为 true 或 1 以启用授权模式
DEEPWIKI_AUTH_CODE=your_secret_code # 当 DEEPWIKI_AUTH_MODE 启用时所需的授权码如果不使用ollama模式,那么需要配置OpenAI API密钥用于embeddings。其他密钥只有配置并使用使用对应提供商的模型时才需要。
授权模式
DeepWiki 可以配置为在授权模式下运行,在该模式下,生成 Wiki 需要有效的授权码。如果您想控制谁可以使用生成功能,这将非常有用。
限制使用前端页面生成wiki并保护已生成页面的缓存删除,但无法完全阻止直接访问 API 端点生成wiki。主要目的是为了保护管理员已生成的wiki页面,防止被访问者重新生成。
要启用授权模式,请设置以下环境变量:
DEEPWIKI_AUTH_MODE: 将此设置为true或1。启用后,前端将显示一个用于输入授权码的字段。DEEPWIKI_AUTH_CODE: 将此设置为所需的密钥。限制使用前端页面生成wiki并保护已生成页面的缓存删除,但无法完全阻止直接访问 API 端点生成wiki。
如果未设置 DEEPWIKI_AUTH_MODE 或将其设置为 false(或除 true/1 之外的任何其他值),则授权功能将被禁用,并且不需要任何代码。
配置文件
DeepWiki使用JSON配置文件管理系统的各个方面:
generator.json:文本生成模型配置- 定义可用的模型提供商(Google、OpenAI、OpenRouter、Ollama)
- 指定每个提供商的默认和可用模型
- 包含特定模型的参数,如temperature和top_p
embedder.json:嵌入模型和文本处理配置- 定义用于向量存储的嵌入模型
- 包含用于RAG的检索器配置
- 指定文档分块的文本分割器设置
repo.json:仓库处理配置- 包含排除特定文件和目录的文件过滤器
- 定义仓库大小限制和处理规则
默认情况下,这些文件位于api/config/目录中。您可以使用DEEPWIKI_CONFIG_DIR环境变量自定义它们的位置。
面向服务提供商的自定义模型选择
自定义模型选择功能专为需要以下功能的服务提供者设计:
- 您可在您的组织内部为用户提供多种 AI 模型选择
- 您无需代码更改即可快速适应快速发展的 LLM 领域
- 您可支持预定义列表中没有的专业或微调模型
使用者可以通过从服务提供者预定义选项中选择或在前端界面中输入自定义模型标识符来实现其模型产品。
为企业私有渠道设计的基础 URL 配置
OpenAI 客户端的 base_url 配置主要为拥有私有 API 渠道的企业用户设计。此功能:
- 支持连接到私有或企业特定的 API 端点
- 允许组织使用自己的自托管或自定义部署的 LLM 服务
- 支持与第三方 OpenAI API 兼容服务的集成
即将推出:在未来的更新中,DeepWiki 将支持一种模式,用户需要在请求中提供自己的 API 密钥。这将允许拥有私有渠道的企业客户使用其现有的 API 安排,而不是与 DeepWiki 部署共享凭据。
🧩 使用 OpenAI 兼容的 Embedding 模型(如阿里巴巴 Qwen)
如果你希望使用 OpenAI 以外、但兼容 OpenAI 接口的 embedding 模型(如阿里巴巴 Qwen),请参考以下步骤:
- 用
api/config/embedder_openai_compatible.json的内容替换api/config/embedder.json。 - 在项目根目录的
.env文件中,配置相应的环境变量,例如:textOPENAI_API_KEY=你的_api_key OPENAI_BASE_URL=你的_openai_兼容接口地址 - 程序会自动用环境变量的值替换 embedder.json 里的占位符。
这样即可无缝切换到 OpenAI 兼容的 embedding 服务,无需修改代码。