{"id":15165935,"url":"https://github.com/ccxnu/rag-chatbot-ists","last_synced_at":"2026-01-19T23:34:45.658Z","repository":{"id":255433455,"uuid":"849604828","full_name":"ccxnu/rag-chatbot-ists","owner":"ccxnu","description":"Chatbot educativo desarrollado con Python, Flask, LangChain y Ollama, diseñado para ayudar a los estudiantes del ISTS.","archived":false,"fork":false,"pushed_at":"2024-08-29T23:26:16.000Z","size":314,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T16:54:03.601Z","etag":null,"topics":["chatbot","education","flask","langchain","ollama","python","rag"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ccxnu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-29T22:40:34.000Z","updated_at":"2024-08-29T23:26:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"c45feb66-7981-4474-bd5a-b4645cb3721f","html_url":"https://github.com/ccxnu/rag-chatbot-ists","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"524911900059022936877f3f20a3ca94aa378f53"},"previous_names":["ccxnu/rag-chatbot-ists"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ccxnu/rag-chatbot-ists","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccxnu%2Frag-chatbot-ists","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccxnu%2Frag-chatbot-ists/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccxnu%2Frag-chatbot-ists/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccxnu%2Frag-chatbot-ists/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ccxnu","download_url":"https://codeload.github.com/ccxnu/rag-chatbot-ists/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccxnu%2Frag-chatbot-ists/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28590194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatbot","education","flask","langchain","ollama","python","rag"],"created_at":"2024-09-27T04:20:42.598Z","updated_at":"2026-01-19T23:34:45.637Z","avatar_url":"https://github.com/ccxnu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RAG Chatbot ISTS\n\nEste repositorio contiene un chatbot basado en Retrieval-Augmented Generation (RAG)\ndesarrollado como parte de un proyecto del [ISTS](https://tecnologicosudamericano.edu.ec/).\nEl chatbot utiliza técnicas de recuperación de información y generación de lenguaje\nnatural para proporcionar respuestas basadas en la información disponible en una base de datos.\n\n## Características\n\n- **Retrieval-Augmented Generation (RAG)**: Combina modelos de lenguaje preentrenados\ncon técnicas de recuperación de documentos para mejorar la precisión y relevancia de las respuestas.\n- **Integración con fuentes de datos**: Recupera información relevante de una base\nde datos para enriquecer las respuestas del chatbot.\n- **Modelo de lenguaje avanzado**: Basado en modelos de lenguaje de última generación\npara la generación de respuestas coherentes y contextuales.\n\n## Requisitos\n\nAntes de ejecutar el proyecto, asegúrate de tener instaladas las siguientes dependencias:\n\n- [Python 3.8+](https://www.python.org/downloads/)\n- [pip](https://pip.pypa.io/en/stable/installation/)\n- [Flask](https://flask.palletsprojects.com/en/3.0.x/)\n- [Ollama](https://ollama.com/library/llama3.1)\n- [Langchain](https://python.langchain.com/v0.2/docs/introduction/)\n- Otros requisitos mencionados en `requirements.txt`\n\n## Instalación\n\n1. Clona este repositorio en tu máquina local:\n\n   ```bash\n   git clone https://github.com/ccxnu/rag-chatbot-ists.git\n   ```\n\n2. Navega al directorio del proyecto:\n\n   ```bash\n   cd rag-chatbot-ists\n   ```\n\n3. Crea un entorno virtual:\n\n   ```bash\n   python -m venv .venv\n   ```\n\n4. Activa el entorno virtual:\n\n   ```bash\n   source .venv/bin/activate\n   ```\n\n5. Instala las dependencias necesarias:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n## Uso\n\nPara ejecutar el chatbot, puedes usar el siguiente comando:\n\n```bash\npython app.py\n```\n\nEsto iniciará el servidor del chatbot que estará listo para recibir consultas y proporcionar respuestas basadas en la información recuperada.\nAsegurate de tener ollama server corriendo.\n\n## Estructura del Proyecto\n\n- `main.py`: Archivo principal para iniciar el chatbot.\n- `requirements.txt`: Lista de dependencias del proyecto.\n- `chroma/`: Directorio donde se almacenan los datos utilizados para la recuperación de información.\n- `pdf_files/`: Contiene los archivos pdf que se suben.\n\n## Endpoints\n\nEl proyecto ofrece varios endpoints para interactuar con el chatbot, extraer información de URLs y PDFs, y gestionar la base de datos.\n\n### 1. Preguntar al Chatbot\n\n- **URL**: `/preguntar_chatbot`\n- **Método**: `POST`\n- **Descripción**: Envía una pregunta al chatbot y recibe una respuesta basada en el contexto.\n- **Cuerpo de la Solicitud**:\n  ```json\n  {\n    \"question\": \"¿Cuál es la capital de Francia?\"\n  }\n  ```\n- **Respuesta**: La respuesta generada por el chatbot.\n\n### 2. Obtener Información desde una URL\n\n- **URL**: `/obtener_info_from_url`\n- **Método**: `POST`\n- **Descripción**: Extrae y guarda el contenido de un artículo desde una URL proporcionada.\n- **Cuerpo de la Solicitud**:\n  ```json\n  {\n    \"url\": \"https://example.com/article\"\n  }\n  ```\n- **Respuesta**:\n  ```json\n  {\n    \"url\": \"https://example.com/article\",\n    \"messages\": [\"Message 1\", \"Message 2\"]\n  }\n  ```\n\n### 3. Subir un Archivo PDF\n\n- **URL**: `/upload_pdf`\n- **Método**: `POST`\n- **Descripción**: Sube y guarda archivos PDF.\n- **Cuerpo de la Solicitud**: Un archivo PDF en el campo `file`.\n- **Respuesta**:\n  ```json\n  {\n    \"message\": \"Archivo nombre_archivo.pdf subido correctamente\",\n    \"file_path\": \"/ruta/al/archivo/nombre_archivo.pdf\"\n  }\n  ```\n\n### 4. Cargar Documentos desde PDFs\n\n- **URL**: `/load_documents`\n- **Método**: `POST`\n- **Descripción**: Carga documentos desde los archivos PDF subidos, los divide en fragmentos y los agrega a la base de datos Chroma.\n- **Respuesta**:\n  ```json\n  {\n    \"message\": \"Documents loaded and added to Chroma\"\n  }\n  ```\n\n### 5. Resetear la Base de Datos\n\n- **URL**: `/reset_database`\n- **Método**: `POST`\n- **Descripción**: Resetea la base de datos Chroma.\n- **Respuesta**:\n  ```json\n  {\n    \"message\": \"Database cleared successfully\"\n  }\n  ```\n\n## Contribuciones\n\nSi deseas contribuir al proyecto, por favor sigue los siguientes pasos:\n\n1. Haz un fork del repositorio.\n2. Crea una nueva rama (`git checkout -b feature/nueva-funcionalidad`).\n3. Realiza tus cambios y realiza commits descriptivos.\n4. Envía un pull request detallado para revisión.\n\n## Licencia\n\nEste proyecto está licenciado bajo la Licencia MIT. Consulta el archivo `LICENSE` para más detalles.\n\n## Contacto\n\nPara cualquier pregunta o comentario, puedes contactarme a través de correo electrónico [Pablo Cuenca](mailto:pacuencac@ists.edu.ec).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccxnu%2Frag-chatbot-ists","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccxnu%2Frag-chatbot-ists","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccxnu%2Frag-chatbot-ists/lists"}