Spaces:
Runtime error
Runtime error
| # Guía de Uso de la API Flask para Vector Store y RAG | |
| Esta API en flask permite gestionar un Vector Store para consultas de Recuperación Aumentada Generativa (RAG) y procesamiento de documentos. | |
| Ofrece endpoints para inicializar el Vector Store, cargar documentos, listar los archivos en el Vector Store, | |
| y realizar consultas con o sin historial de conversación. | |
| ## Requisitos previos | |
| 1. Instalar las dependencias: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 2. Asegurarse de que el servidor Flask esté corriendo: | |
| ```bash | |
| python app.py | |
| ``` | |
| 3. Configurar las credenciales necesarias: | |
| - Crear un archivo `.env` en la raíz del proyecto con la siguiente configuración: | |
| ``` | |
| OPENAI_API_KEY=your_openai_api_key | |
| ``` | |
| 4. Preparar el directorio `Docs` para inicializar el Vector Store con los documentos que desees procesar. | |
| --- | |
| ## Endpoints Disponibles | |
| ### **1. Inicializar el Vector Store** | |
| **Endpoint:** `POST /initialize-vs` | |
| **Descripción:** Inicializa el Vector Store con los archivos contenidos en el directorio `Docs`. | |
| **Ejemplo de Uso:** | |
| Enviar una solicitud `POST` sin cuerpo. | |
| **Respuesta Exitosa:** | |
| ```json | |
| { | |
| "message": "Vector Store inicializado con éxito desde el directorio Docs." | |
| } | |
| ``` | |
| --- | |
| ### **2. Listar Archivos en el Vector Store** | |
| **Endpoint:** `GET /list-files` | |
| **Descripción:** Lista los archivos procesados en el Vector Store. | |
| **Ejemplo de Uso:** | |
| Enviar una solicitud `GET` sin cuerpo. | |
| **Respuesta Exitosa:** | |
| ```json | |
| { | |
| "files": [ | |
| "documento1.txt", | |
| "documento2.pdf", | |
| "imagen.jpg" | |
| ] | |
| } | |
| ``` | |
| --- | |
| ### **3. Subir y Procesar un Archivo** | |
| **Endpoint:** `POST /upload-file` | |
| **Descripción:** Permite subir un archivo para procesarlo y añadirlo al Vector Store. | |
| **Ejemplo de Uso:** | |
| Configurar una solicitud `POST` con el archivo en formato `multipart/form-data`. | |
| **Respuesta Exitosa:** | |
| ```json | |
| { | |
| "message": "Archivo procesado y añadido al Vector Store con éxito." | |
| } | |
| ``` | |
| --- | |
| ### **4. Consultar RAG (sin historial de conversación)** | |
| **Endpoint:** `POST /rag-query` | |
| **Descripción:** Realiza una consulta en el Vector Store y genera una respuesta utilizando un LLM sin historial previo. | |
| **Ejemplo de Uso:** | |
| Cuerpo de la solicitud: | |
| ```json | |
| { | |
| "query": "¿Qué sabes de Amanda?" | |
| } | |
| ``` | |
| **Respuesta Exitosa:** | |
| ```json | |
| { | |
| "query": "¿Qué sabes de Amanda?", | |
| "response": "Amanda es conocida por sus aventuras en un pueblo costero..." | |
| } | |
| ``` | |
| --- | |
| ### **5. Consultar RAG (con historial de conversación)** | |
| **Endpoint:** `POST /rag-query` | |
| **Descripción:** Realiza una consulta en el Vector Store y genera una respuesta utilizando un LLM considerando el historial de conversación. | |
| **Ejemplo de Uso:** | |
| Cuerpo de la solicitud: | |
| ```json | |
| { | |
| "query": "¿Qué pasó con el museo que Amanda creó?", | |
| "conversation_history": [ | |
| { | |
| "user_input": "¿Qué sabes de Amanda?", | |
| "ai_response": "Amanda es conocida por sus aventuras en un pueblo costero..." | |
| } | |
| ] | |
| } | |
| ``` | |
| **Respuesta Exitosa:** | |
| ```json | |
| { | |
| "query": "¿Qué pasó con el museo que Amanda creó?", | |
| "response": "El museo que Amanda creó se convirtió en un punto importante para la comunidad..." | |
| } | |
| ``` | |
| ### 6. Obtener Archivos y Contenido | |
| **URL:** `/get-files` | |
| **Método:** `GET` | |
| **Descripción:** Devuelve cada archivo almacenado en el Vector Store en el formato `source: Content`. | |
| **Respuesta:** | |
| ```json | |
| { | |
| "documento1.txt": "Este es el contenido del documento 1...", | |
| "documento2.pdf": "Este es el contenido extraído del documento 2...", | |
| "imagen.jpg": "Texto extraído de la imagen..." | |
| } | |
| ``` | |
| --- | |
| ## Notas Finales | |
| - Asegúrate de que el directorio `Docs` contiene los documentos necesarios antes de inicializar el Vector Store. | |
| - El LLM utiliza el modelo `gpt-4o-mini` para las respuestas. | |
| - La API es extensible y puedes añadir nuevos endpoints según sea necesario. | |
| ¡Listo! Ahora puedes interactuar con la API Flask para gestionar tu Vector Store y realizar consultas RAG. | |