Skip to content

Comments

Create initial project structure with README.md, requirements.txt and .gitignore#3

Merged
alexcerezo merged 1 commit intomainfrom
copilot/fix-c114ad08-74ff-452d-a1b7-5afd81508d91
Jul 20, 2025
Merged

Create initial project structure with README.md, requirements.txt and .gitignore#3
alexcerezo merged 1 commit intomainfrom
copilot/fix-c114ad08-74ff-452d-a1b7-5afd81508d91

Conversation

Copy link

Copilot AI commented Jul 20, 2025

This PR creates the foundational structure for the Fine-Tuning Sign Language project by adding three essential files from scratch due to a conflict in the previous Pull Request.

Files Added

📖 README.md

Complete project documentation including:

  • Project Description: Fine-tuning Google Gemini to correct repeated characters from sign language recognition devices
  • Problem Statement: Addresses the issue where sign language recognizers produce words like "hhhhhhoooooollllllaaaaa" instead of "hola"
  • 4-Phase Roadmap: Detailed development plan with specific tasks for each phase
  • Setup Instructions: Complete configuration guide using Google API Key (not SDK/gcloud CLI)
  • Project Structure: Clear directory layout for the entire project
  • Usage Examples: Practical examples showing input/output transformations

📦 requirements.txt

Essential dependencies for the project:

  • google-generativeai>=0.3.0 - Google Gemini API client
  • python-dotenv>=1.0.0 - Environment variable management
  • Additional ML/data processing libraries (numpy, pandas, scikit-learn, etc.)

🔒 .gitignore

Comprehensive Python project gitignore including:

  • Environment variables and API keys (.env files)
  • Python cache and build artifacts
  • Virtual environments
  • IDE configuration files
  • Model and dataset directories
  • Temporary files

Problem Context

The sign language recognition device works correctly but generates text with excessive repeated characters. Some words can be ambiguous based on context:

  • "ppppeeeeerrrrrrrrrrrrraaaaaa" → could be "pera" (pear) or "perra" (female dog)

This project will use Google Gemini's fine-tuning capabilities to solve this text correction problem through a structured 4-phase approach.

Next Steps

Phase 1 is now complete with the basic project structure. The next phase will involve:

  • Developing data_generator.py for creating training datasets
  • Implementing text correction examples with context awareness

Fixes the repository structure needed to continue development following the established roadmap.

This pull request was created as a result of the following prompt from Copilot chat.

Necesito crear un nuevo README.md para el proyecto desde cero debido a un conflicto en la Pull Request anterior. El README debe incluir:

  1. Descripción del proyecto: Fine-Tuning de Google Gemini para corregir palabras con letras repetidas generadas por un reconocedor de lenguaje de signos
  2. Roadmap completo dividido en 4 fases con tareas específicas
  3. Configuración usando API Key de Google (no SDK ni gcloud CLI)
  4. Estructura del proyecto completa
  5. Instrucciones de uso básicas
  6. Archivos adicionales: requirements.txt y .gitignore

El contenido completo del README.md debe ser:

# Fine-Tuning de Gemini para Corrección de Lenguaje de Signos

Este proyecto tiene como objetivo utilizar el Fine-Tuning del modelo Google Gemini para corregir y transformar el texto generado por un dispositivo de reconocimiento de lenguaje de signos. El problema principal del reconocedor es que produce palabras con letras repetidas (ej: "hhhhhhoooooollllllaaaaa" en lugar de "hola"), y este proyecto busca solucionar ese problema.

## Descripción del Problema

El dispositivo reconocedor de lenguaje de signos funciona correctamente, pero genera palabras con caracteres repetidos excesivamente. Además, algunas palabras pueden ser ambiguas según el contexto, como "ppppeeeeerrrrrrrrrrrrraaaaaa" que puede interpretarse como "pera" o "perra" dependiendo del contexto de la frase.

## Roadmap del Proyecto

El proyecto se dividirá en varias fases, cada una implementada a través de una Pull Request para su validación.

### Fase 1: Configuración del Proyecto y Generación de Datos
- **Objetivo:** Establecer la estructura del proyecto y crear un generador de datos sintéticos para el entrenamiento.
- **Tareas:**
    - [x] Crear un fichero `README.md` con la descripción del proyecto, el roadmap y las instrucciones.
    - [ ] Desarrollar un script en Python (`data_generator.py`) para generar un dataset de entrenamiento. Este script creará pares de frases/palabras incorrectas (con letras repetidas) y su versión corregida. Se incluirán ejemplos para manejar la ambigüedad de contexto (ej: "pera" vs "perra").

### Fase 2: Script de Fine-Tuning
- **Objetivo:** Implementar el script que realizará el Fine-Tuning del modelo Gemini.
- **Tareas:**
    - [ ] Implementar un script (`finetune.py`) que utilice la API de Google Gemini para entrenar un modelo con el dataset generado.
    - [ ] Configurar los parámetros de entrenamiento siguiendo las mejores prácticas de la documentación de Google.

### Fase 3: Script de Inferencia y Corrección
- **Objetivo:** Crear una herramienta para utilizar el modelo entrenado.
- **Tareas:**
    - [ ] Crear un script (`corrector.py`) que cargue el modelo entrenado y lo utilice para corregir en tiempo real las palabras o frases de entrada.
    - [ ] Implementar una interfaz de línea de comandos para facilitar el uso.

### Fase 4: Evaluación del Modelo y Pruebas
- **Objetivo:** Evaluar el rendimiento del modelo y asegurar la calidad del código.
- **Tareas:**
    - [ ] Añadir funcionalidades para evaluar el rendimiento del modelo con un conjunto de datos de test y métricas de precisión.
    - [ ] Crear pruebas unitarias para los scripts principales.
    - [ ] Documentar los resultados y crear ejemplos de uso.

## Configuración del Entorno

### Requisitos Previos
- Python 3.8 o superior
- API Key de Google AI Studio

### Instalación

1. **Clonar el repositorio:**
   ```bash
   git clone https://github.com/alexcerezo/FineTuningSignLanguage.git
   cd FineTuningSignLanguage
   ```

2. **Crear un entorno virtual:**
   ```bash
   python -m venv venv
   source venv/bin/activate  # En Windows: venv\Scripts\activate
   ```

3. **Instalar las dependencias:**
   ```bash
   pip install -r requirements.txt
   ```

4. **Configurar la API Key de Google:**
   - Obtén tu API key de [Google AI Studio](https://aistudio.google.com/app/apikey)
   - Crea un archivo `.env` en la raíz del proyecto con tu API key:
     ```
     GOOGLE_API_KEY=tu_api_key_aqui
     ```
   - **Importante:** El archivo `.env` está incluido en `.gitignore` para proteger tu API key.

## Estructura del Proyecto

```
FineTuningSignLanguage/
├── README.md
├── requirements.txt
├── .env (no incluir en git)
├── .gitignore
├── data_generator.py
├── finetune.py
├── corrector.py
├── datasets/
│   ├── training_data.json
│   └── test_data.json
├── models/
│   └── (modelos entrenados)
└── tests/
    └── (pruebas unitarias)
```

## Uso del Proyecto

Una vez completado el desarrollo, el flujo de trabajo será:

1. **Generar datos de entrenamiento:**
   ```bash
   python data_generator.py --size 1000 --output datasets/training_data.json
   ```

2. **Entrenar el modelo:**
   ```bash
   python finetune.py --data datasets/training_data.json --model-name my-sign-corrector
   ```

3. **Corregir texto:**
   ```bash
   python corrector.py "hhhhhhoooooollllllaaaaa"
   # Output: hola
   
   python corrector.py "llllaaa ppppeeeeerrrrrrraaaaaa essssstttááááá mmmmaaaaddddduuuurrrrraaaa"
   # Output: la pera está madura
   ```

## Ejemplos de Casos de Uso

### Palabras Simples
- Input: "hhhhhhoooooollllllaaaaa" → Output: "hola"
- Input: "gggggrrrrraaaaaaccccciiiiiiaaaaaasssss" → Output: "gracias"

### Frases con Contexto
- Input: "llllaaa ppppeeeeerrrrrrraaaaaa essssstttááááá mmmmaaaaddddduuuurrrrraaaa" → Output: "la pera está madura"
- Input: "mmmmiiii ppppeeeeerrrrrrraaaaaa essssstttááááá llllaaaaadddddrrrrrraaaaaannnnndddddooooo" → Output: "mi perra está ladrando"

## Contribución

Este proyecto sigue un enfoque de desarrollo incremental. Cada fase se implementa a través de una Pull Request que debe ser revisada y aprobada antes de continuar con la siguiente fase.

## Licencia

Este proyecto está bajo la Licencia MIT.

También necesito crear los archivos requirements.txt y .gitignore apropiados.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@alexcerezo alexcerezo marked this pull request as ready for review July 20, 2025 08:53
@alexcerezo alexcerezo merged commit 7c68770 into main Jul 20, 2025
2 checks passed
Copilot AI changed the title [WIP] Crear README.md completo desde cero Create initial project structure with README.md, requirements.txt and .gitignore Jul 20, 2025
Copilot AI requested a review from alexcerezo July 20, 2025 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants