Git Product home page Git Product logo

basdonax-ai-rag's Introduction

Basdonax AI RAG v1.0

Este repositorio contiene todo lo necesario para poder crear tu propia secretaria hecha con Inteligencia Artificial, todo gracias al RAG de Basdonax AI, que utiliza los modelos open source de Meta y de Microsoft: Llama3-7b y Phi3-4b para de esta forma darte la posibilidad de subir tus documentos y hacer consultas a los mismos. Esto fue creado para poder facilitarle la vida a las personas con la IA.

Requisitos previos

Instalación

Elección del modelo de datos (LLM)

Antes de comenzar con la instalación, tenemos que analizar si tenemos o no una tarjeta gráfica capaz de utilizar Llama3-7b o no. Si tenemos una tarjeta gráfica capaz de utilizar este modelo de datos utilizaremos el archivo docker-compose.yml, si no contamos con esa posibilidad vamos a eliminar el docker-compose.yml y vamos a renombrar el archivo docker-compose_sin_gpu.yml por docker-compose.yml. La diferencia entre un archivo y otro es que el docker-compose_sin_gpu.yml utiliza el LLM Phi3-4b, que es mucho más ligero para correrlo en el procesador de tu PC, mientras que Llama3-7b es mucho más pesado y si bien puede correr en CPU, es más recomendable una gráfica. En el video voy a estar utilizando una RTX 4060 8GB.

Docker

Tenemos que tener Docker o Docker Desktop instalado, te recomiendo ver este video para instalar todo: https://www.youtube.com/watch?v=ZyBBv1JmnWQ

Una vez instalado y prendido el Docker Desktop si lo estamos utilizando, vamos a ejecutar en esta misma carpeta:

docker-compose up

La primera vez vamos a tener que esperar a que todo se instale correctamente, va a tardar unos cuantos minutos en ese paso.

Ahora tenemos que instalarnos nuestro modelo LLM, si tenemos una GPU que pueda soportar vamos a ejecutar el comando para traernos Llama3, sino va a ser Phi3 (si queremos utilizar otro modelo, en esta pagina: https://ollama.com/library tenes la lista de todos los modelos open source posibles en esta página, recorda que seguramente vayas a tener que hacer cambios en la prompt si cambias el modelo), ejecutamos:

docker ps

Te va a aparecer algo como esto:

CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS              PORTS                    NAMES
696d2e45ce7c   ui                       "/bin/sh -c 'streaml…"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   ui-1
28cf32abee50   ollama/ollama:latest     "/bin/ollama serve"      About a minute ago   Up About a minute   11434/tcp                ollama-1
ec09714c3c86   chromadb/chroma:latest   "/docker_entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8000->8000/tcp   chroma-1

En esta parte tenés que copiar el CONTAINER ID de la imagen llamada ollama/ollama:latest y utilizarla para este comando:

docker exec [CONTAINER ID] ollama pull [nombredelmodelo]

Un ejemplo con Llama3-7b y mi CONTAINER ID

docker exec 28cf32abee50 ollama pull llama3

Un ejemplo con Phi3-4b y mi CONTAINER ID

docker exec 28cf32abee50 ollama pull phi3

Ahora vamos a tener que esperar a que se descargue el modelo, una vez hecho esto solo nos queda modificar la prompt:

Esto se va a hacer a nuestro gusto en el archivo ./app/common/assistant_prompt.py.

Una vez hecho todo lo anterior solo queda un paso: que entremos al siguiente link: http://localhost:8080 para poder utilizar el RAG.

¿Como ejecutarlo posteriormente instalado y una vez lo cerremos?

Tenemos que dejarnos en el escritorio el archivo de open_rag.bat si estamos en Windows y si estamos en Mac/Linux el open_rag.sh

Ahora tenemos que abrirlo y modificarlo, tenemos que agregar la ruta donde hicimos/tenemos el docker-compose.yml, por ejemplo mi ruta es:

C:\Users\fcore\OneDrive\Desktop\Basdonax\basdonax-rag>

Entonces en mi caso va a ser así el open_rag.bat (el .sh es lo mismo):

cd C:\Users\fcore\OneDrive\Desktop\Basdonax\basdonax-rag
docker-compose up -d

Ahora mientras que tengamos el Docker/Docker Desktop prendido y mientras que ejecutemos este archivo vamos a poder acceder al RAG en este link: http://localhost:8080

Próximo paso: disfrutar

basdonax-ai-rag's People

Contributors

fcori47 avatar

Stargazers

Jesús Acuña avatar Raúl Lz avatar Sérgio Vasquez avatar AntzUhl avatar Marco A. Gallegos avatar Yul Cardenas avatar Aldo Luna Bueno avatar Cyclotomic Fields avatar  avatar allen.hu avatar Elian Gonzalez avatar felipe avatar Manu Avalos avatar Cesar Alvarado P. avatar Zuriel Casco avatar Robert Arzola Castillo avatar Joel avatar Percy Herrera avatar Ro  avatar Adolfo Cuadros avatar Alejandro Cavallo avatar José Francisco Pedrero Sánchez avatar Jean Pierre avatar Anibal avatar Mario IC avatar Esteban Orrego avatar  avatar Nelson Zapata avatar Mario Ignacio Guerra avatar Lisandro Carnielli, MD avatar Carlos Villalobos avatar Luis Fernando Moreno Montoya avatar Pol avatar Fernando Ortiz de Mello avatar David Rodriguez avatar Marcelo Romero avatar JLPB-CODE avatar jeissonp avatar Miguel GP avatar Kevin Correa avatar  avatar tracydzf avatar  avatar  avatar Juan Quiceno avatar P10 avatar 爱可可-爱生活 avatar 我沒code 我沒code avatar Felipe Chaves avatar  avatar  avatar  avatar sayhi-x avatar  avatar tomato avatar Toan Tran avatar mutian avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar Sandalots avatar  avatar  avatar  avatar  avatar Vincent avatar  avatar  avatar  avatar TU. CHENG SHIN avatar  avatar  avatar  avatar  avatar  avatar Jairo Fernández avatar Oscar Riojas avatar Gregori Rivas avatar Alberto Montañola avatar Josep Sugrañes Riera avatar SylvesterStandallone avatar Eduardo avatar  avatar  avatar  avatar Sergio avatar Yordanis Martinez Ruiz avatar Juan David Escobar Quezada avatar Alfredo Duran avatar  avatar Teury Diaz avatar José Ángel Solano Kirk avatar

Watchers

Hernán Eduardo Calvo Camposano avatar Javier Reinaldo Almarales avatar Luis Fernando Moreno Montoya avatar Felipe Chaves avatar Robert Arzola Castillo avatar  avatar Fernando Ortiz de Mello avatar Zuriel Casco avatar Eduardo avatar  avatar

basdonax-ai-rag's Issues

PROBLEMA CON EL PULL OLLAMA

Buenas Facu,

Cuando hago esto me sale este error de memoria:
image
Sin embargo, tengo mucho espacio disponible en mi pc:
image
¿Te suena alguna forma de solventar esto?
Muchas gracias de antemano

instalar en ubuntu 23.10 en hyper-v nvidia gtx 1080

al tratar de instalar en docker-compose up -d (con sudo porque no me dejó hacerlo como usuario normal) luego de unos momentos llega a este error:

Removing intermediate container e46c5d8292ac
---> 2c88c60a7011
Successfully built 2c88c60a7011
Successfully tagged basdonax-ai-rag-master_ui:latest
WARNING: Image for service ui was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up --build.
Creating basdonax-ai-rag-master_chroma_1 ... done
Creating basdonax-ai-rag-master_nvidia_1 ... error
Creating basdonax-ai-rag-master_ollama_1 ...

ERROR: for basdonax-ai-rag-master_nvidia_1 Cannot start service nvidia: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: unable to load the nvml library: unknCreating basdonax-ai-rag-master_ollama_1 ... error

ERROR: for basdonax-ai-rag-master_ollama_1 Cannot start service ollama: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: unable to load the nvml library: unknown

ERROR: for nvidia Cannot start service nvidia: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: unable to load the nvml library: unknown

ERROR: for ollama Cannot start service ollama: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: unable to load the nvml library: unknown
ERROR: Encountered errors while bringing up the project.

luego no me permite proseguir, alguien tiene alguna idea de como solucionarlo?

Problem when "ollama pull llama 3"

Hola cuando trato de ejecutar el comando

docker exec "CONTAINERID" ollama pull llama 3 pulling 00e1317cbf74... 87% ▕█████████████ ▏ 4.0 GB/4.7 GB 39 MB/s 15s Error: write /ollama/models/blobs/sha256-00e1317cbf74d901080d7100f57580ba8dd8de57203072dc6f668324ba545f29-partial: no space left on device

Con phi-3 funciona pq la imagen pesa menos.
Como hago para incrementar el tamaño del volumen donde descarga la imagen?

Graciass

problema con carpeta compartida

Hola ! Yo uso MacOS (ultima version, y ultima version de docker desktop)

al ejecutar el compose tengo el error de que no se pudo montar la carpeta ollama/models

image

Al agregarla a las settngs del docker me da error

image

Alguna idea ?

Problema en Ubuntu 22.04 debido a versión de docker (host.docker.internal no funciona en 22.04)

Primero que nada, decir que escribo más para compartir la solución temporal que para pedir que lo arreglen.

Si tratan de hacer docker-compose up -d en Ubuntu 22.04, parecerá que todo funciona bien, hasta que le escriben "Hola" en el chat de la interfaz web. Entonces saldrá un error similar al siguiente:

/api/v1/collections (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x7d0c42875f90>: Failed to resolve 'host.docker.internal'

La clave para encontrar una solución temporal fueron los términos NameResolutionError y 'host.docker.internal'. Muchos proyectos de github tienen Issues con estos términos, y la conclusión a la que suelen llegar, es que Ubuntu no soporta 'host.docker.internal', por alguna extraña razón.

La solución temporal es, entonces, agregar extra_hosts: - "host.docker.internal:host-gateway" al final de los servicios chroma y ui, en el archivo docker-compose.yml. Debe quedar así:

version: '3.6'

services:
    ollama: 
      image: ollama/ollama:latest
      volumes:
        - /ollama/models:/ollama/models
      environment:
        - OLLAMA_MODELS=/ollama/models
 
    chroma:
      image: chromadb/chroma:latest
      volumes:
        - index_data:/chroma/.chroma/index
      ports:
        - 8000:8000
      networks:
        - net
      extra_hosts:
        - "host.docker.internal:host-gateway"
    
    ui:
      build: ./app
      ports:
        - 8080:8080
      volumes:
        - ./app:/app
      depends_on:
        - ollama
        - chroma
      environment:
        - MODEL=phi3
        - EMBEDDINGS_MODEL_NAME=all-MiniLM-L6-v2
        - TARGET_SOURCE_CHUNKS=5
      extra_hosts:
        - "host.docker.internal:host-gateway"

volumes:
  index_data:

networks:
  net:

De esta manera, "mapeamos" host.docker.internal a host-gateway, que sí funciona en Ubuntu.

Si yo entiendo bien lo que está ocurriendo aquí, la culpa es de Ubuntu, y no de este proyecto. Por lo que esto no debería ser integrado como parche jamás. Basta con dejarlo aquí para las personas que usen Ubuntu 22.04.

Problema con la ejecución de la instalación

Cumpliendo con los requerimientos de hardware y software. Además habiendo procesido tal cual el video de guía de la instalación, al ejecutar la instalación de powershell a través del comando "docker-compose up", el resultado no es tal cual a tu video. Agrego una copia del error, ojala puedan darme una mano para entender a que se debe:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.