# 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.