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
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 APIecho"GOOGLE_API_KEY=your_google_api_key" > .envecho"OPENAI_API_KEY=your_openai_api_key" >> .env# Opcional: Añadir clave API de OpenRouter si quieres usar modelos de OpenRouterecho"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.)
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_key
Paso 2: Iniciar el Backend
# Instalar dependencias de Python
pip install -r api/requirements.txt
# Iniciar el servidor API
python -m api.main
Paso 3: Iniciar el Frontend
# Instalar dependencias de JavaScript
npm install
# o
yarn install
# Iniciar la aplicación web
npm run dev
# o
yarn dev
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, o https://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
🛠️ 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.0-flash, también soporta gemini-1.5-flash, gemini-1.0-pro, etc.
OpenAI: Predeterminado gpt-4o, también soporta o4-mini, 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ón
Archivos 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.json por el de api/config/embedder_openai_compatible.json.
En el archivo .env de la raíz del proyecto, configura las variables de entorno necesarias, por ejemplo:
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
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 .env esté 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.