From dde07bf14c93535c681ac10a74e29c6058d283e3 Mon Sep 17 00:00:00 2001 From: webbrain-one <295484252+webbrain-one@users.noreply.github.com> Date: Wed, 5 Aug 2026 22:02:12 +0300 Subject: [PATCH] docs: add Spanish README --- README.es-ES.md | 159 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 README.es-ES.md diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..260b16d --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,159 @@ + + +# DeepCode + +Analizador de repositorios de GitHub impulsado por LLM que lee un repositorio de abajo hacia arriba, resume archivos y directorios, y publica un documento estructurado en Lark (Feishu). + +Envía una URL de GitHub al bot de Lark, o analiza un clon local directamente desde Python. + +## Características + +- Resumen jerárquico: primero archivos, luego directorios, luego pros y contras a nivel de repositorio +- Carga concurrente de archivos y procesamiento por lotes con LLM con límites de workers configurables +- Cambio a modelos alternativos (fallback) a través de LiteLLM +- Tarjetas de progreso en tiempo real en el chat de Lark +- Filtros de archivos, proxy, endpoint de LLM y URL base de documentos de Lark configurables + +## Arquitectura + +```mermaid +graph LR + User[LarkUser] -->|GitHubURL| LarkWS[LarkWebSocket] + LarkWS --> Controller + Controller -->|Thread| Worker + Worker --> RepoProcessor + RepoProcessor -->|clone| GitHub + RepoProcessor -->|summarize| LLM + Worker --> MdProcessor + MdProcessor -->|render| MarkdownFile + Worker --> DocProcessor + DocProcessor -->|upload| LarkDrive + DocProcessor -->|convert| LarkDocx + LarkDocx -->|URL| User +``` + +## Flujo de Procesamiento + +```mermaid +sequenceDiagram + participant User + participant Controller + participant Worker + participant RepoProcessor + participant LLM + participant MdProcessor + participant DocProcessor + participant Lark + + User->>Controller: GitHub repo URL + Controller->>Worker: spawn background task + Worker->>RepoProcessor: clone and build file tree + RepoProcessor->>LLM: summarize files and directories + RepoProcessor->>LLM: analyze pros and cons + Worker->>MdProcessor: render Markdown + Worker->>DocProcessor: upload and convert + DocProcessor->>Lark: create cloud document + Worker->>User: send document link +``` + +## Inicio Rápido + +### 1. Instalación + +```bash +git clone +cd DeepCode +pip install -r requirements.txt +cp .env.example .env +``` + +### 2. Configurar `.env` + +Requeridos: + +- `LLM_API_KEY` — Clave API del proveedor de LLM +- `LARK_APP_ID` — ID de la aplicación de Lark +- `LARK_APP_SECRET` — Secreto de la aplicación de Lark +- `LARK_CLOUD_FOLDER_ID` — Token de la carpeta en la nube de Lark de destino + +Ajustes opcionales (valores predeterminados mostrados en `.env.example`): + +- `LLM_API_BASE` — endpoint predeterminado de Volcano Ark +- `LLM_MODEL` — nombre del modelo principal +- `LLM_FALLBACK_MODELS` — modelos de respaldo separados por comas +- `LLM_BATCH_SIZE` — tamaño del lote para resúmenes de archivos (predeterminado `32`) +- `LLM_NUM_RETRIES` — número de reintentos para límites de tasa (predeterminado `60`) +- `MAX_WORKERS` — tamaño del grupo de hilos (predeterminado `16`) +- `MAX_FILE_BYTES` — bytes máximos leídos por archivo (predeterminado `65536`) +- `TEMPORARY_DIR` — espacio de trabajo temporal (predeterminado `/tmp/`) +- `HTTP_PROXY` — proxy HTTP/HTTPS opcional para git clone +- `LARK_DOC_BASE_URL` — prefijo de URL del documento +- `FS_SUPPORTED_SUFFIX` — extensiones de archivo a analizar separadas por comas +- `FS_IGNORE_CHARS` — fragmentos de ruta a omitir (ej. archivos de prueba) +- `POLL_INTERVAL_SEC` / `POLL_TIMEOUT_SEC` — configuración de sondeo para importación de Lark + +### 3. Ejecutar + +Modo bot de Lark: + +```bash +python core/entrypoint.py +``` + +Modo repositorio local: + +```python +from core.worker import Worker + +worker = Worker() +worker.run_on_local_path("/path/to/local/repo") +``` + +## Estructura del Proyecto + +```text +DeepCode/ +├── core/ +│ ├── bus/ # DataBus y EventBus +│ ├── config/ # Configuración basada en entorno +│ ├── fs/ # Modelo de nodo del árbol de directorios +│ ├── model/ # Cliente LLM y prompts +│ ├── processor/ # Procesadores de repositorio, Markdown, documentos Lark y bot +│ ├── templates/ # Plantillas de documentos y tarjetas +│ ├── controller.py # Entrada de websocket de Lark +│ ├── worker.py # Orquesta la pipeline +│ └── entrypoint.py # Entrada CLI +├── tests/ # Suite pytest (APIs externas simuladas) +├── requirements.txt +├── pyproject.toml +└── README.md +``` + +## Desarrollo + +Ejecutar pruebas: + +```bash +pytest -q +``` + +Extender el análisis: + +- Prompts: editar `core/model/prompts.py` +- Filtrado de archivos: ajustar `FS_SUPPORTED_SUFFIX` / `FS_IGNORE_CHARS` en la configuración +- Formato de salida: editar `core/templates/document.md` +- Nueva etapa de pipeline: agregar un procesador y conectarlo en `core/worker.py` + +## Cómo Funciona + +1. Clonar el repositorio de GitHub (clonación superficial por defecto) +2. Construir un árbol de directorios y cargar archivos fuente compatibles en paralelo +3. Resumir archivos en lotes con LLM +4. Resumir directorios de abajo hacia arriba +5. Generar pros y contras del repositorio +6. Renderizar un informe en Markdown desde la plantilla +7. Subir a la nube de Lark y convertir a un documento docx + +## Licencia + +Este proyecto está licenciado bajo la [Licencia MIT](./LICENSE).