Paso a paso como usar modelos IA con github y GRATIS!
S02:E02

Paso a paso como usar modelos IA con github y GRATIS!

Episode description

En este episodio de “Se nos va de las manos”, exploramos cómo crear una alternativa local y gratuita a ChatGPT utilizando herramientas accesibles como Docker y servicios gratuitos en la nube. Hablamos de modelos de inteligencia artificial compatibles con APIs de OpenAI, pero sin coste alguno, gracias a opciones como LiteLLM, un proxy que facilita la integración con modelos abiertos como GPT-4o de GitHub, Llama, Mistral y otros.

Explicamos paso a paso cómo instalar y configurar Open WebUI para interactuar con estos modelos, cómo gestionar las claves API necesarias y cómo sacar partido a modelos de texto y visión, incluyendo ejemplos divertidos como analizar imágenes de Regreso al futuro. También discutimos las limitaciones y ventajas de los modelos abiertos frente a las alternativas comerciales.

¿Quieres convertir tu PC en un laboratorio de IA sin gastar un euro?

Download transcript (.srt)
0:00

[Germán] Hola, bienvenidos a la nueva temporada de Se nos va de las manos. Vamos a

0:04

[Germán] hablar de inteligencia artificial low cost. Vamos a explicar cómo instalarnos

0:09

[Germán] en local un servicio que imita, que es muy, muy parecido a ChatGPT. Lo vamos a

0:17

[Germán] utilizar en local, pero no vamos a necesitar una tarjeta gráfica ni un

0:21

[Germán] superordenador porque vamos a estar tirando de APIs en la nube. APIs que,

0:27

[Germán] bueno, como sabéis, pues OpenAI. Bueno, hay diferentes servicios que

0:31

[Germán] tienen sus APIs disponibles, pero son APIs de pago. Pero en esta ocasión vamos

0:35

[Germán] a hablar de APIs gratuitas, ¿vale? Para que podamos montar nuestro sistema de

0:41

[Germán] ChatGPT, por hacerlo para que nos entendamos todos, de forma gratis, en

0:47

[Germán] local y todo controlado por nosotros, lógicamente utilizando estos servicios

0:51

[Germán] en la nube. Ayer estuvimos intentando grabar y nos topamos con problemas

0:58

[Germán] técnicos y es que queríamos haber explicado una herramienta que se llama

1:02

[Germán] Pinokio, de la cual ya os hablamos, pero por razones varias no conseguimos

1:08

[Germán] que funcionara. Bueno, no funciona, te da un error. Entonces, hemos tirado por

1:12

[Germán] otro camino. Vamos a instalarlo sobre Docker. Entonces, hemos preparado un

1:18

[Germán] Docker Compose muy sencillo, con el que se puede instalar todo sin tener que...

1:24

[Galileo] Enseña primero. Hay cientos de páginas que explican

1:31

[Galileo] cómo hacer la instalación de Docker.

1:32

[Germán] Sí, claro, vais a necesitar Docker. Entonces, tengo aquí una es la página de

1:40

[Germán] Docker, para quien nos esté escuchando, es docker.com, donde tenéis un producto

1:45

[Germán] que se llama Docker Desktop. Lo hay tanto para Windows como para Linux

1:49

[Germán] también. Lo que pasa, a mí me gusta más la versión normal de Docker en Linux,

1:54

[Germán] pero en Windows la mejor alternativa es ésta. Entonces, instaláis Docker

1:58

[Germán] Desktop. Bueno, si tenéis alguna duda, nos podéis contactar por redes sociales.

2:07

[Germán] Si estáis en Linux, pues también en docker.com buscáis cómo es la

2:11

[Germán] instalación en Linux y yo diría que es mucho más sencilla. Simplemente una

2:14

[Germán] línea de comandos que te hace todo. Entonces, vamos a asumir que ya tenemos

2:18

[Germán] instalado Docker. Y lo que vamos a instalar es un servicio que se llama

2:23

[Germán] Open WebUI. Open WebUI es, digamos, el interfaz web que nos permite interactuar

2:29

[Germán] con estos modelos, con estos modelos de inteligencia artificial. Normalmente van

2:34

[Germán] a ser modelos de lenguaje. Open WebUI es compatible con dos backend, dos

2:41

[Germán] servicios de modelos. Uno que es Ollama. Creo que de Ollama hablamos en la

2:47

[Germán] temporada anterior, que es un servicio para correr modelos en local,

2:51

[Germán] completamente local, pero en ese caso sí que hace falta una tarjeta gráfica, o

2:55

[Galileo] Se puede correr con CPU pero va muy lento.

2:55

[Germán] sea, un PC. Sí, bueno, hay algún modelo que sí que se puede correr en CPU, pero

3:02

[Germán] bueno, su utilidad es limitada porque son modelos muy pequeños. Entonces, uno

3:07

[Germán] de los servicios que soporta es Ollama, el segundo es OpenAI. Pero OpenAI, el

3:13

[Germán] problema que tiene es que es un servicio de pago, ¿vale? Que no es excesivamente

3:20

[Germán] caro, es muy barato. No me estoy refiriendo a ChatGPT, sino al acceso API

3:24

[Germán] de sus modelos. Pero, por ejemplo, ¿dónde podemos encontrar modelos gratis?

3:30

[Germán] Pues hace poco tiempo GitHub ha sacado una serie de modelos, entre los cuales

3:35

[Germán] está GPT4, los cuales tienen ciertas limitaciones, es decir, no podemos hacer

3:42

[Germán] muchísimas llamadas a lo largo del día, pero tienen un límite suficientemente

3:46

[Germán] alto para poder hacer un uso ocasional o un uso normal, como el que podemos

3:52

[Germán] utilizar, bueno, me refiero que no para una empresa se va a quedar pequeño, pero

3:57

[Germán] para jugar un poco con ellos es más que suficiente. Ahí veis que hay también

4:02

[Germán] otros modelos, el modelo de Microsoft, el Phi3.5, tenemos también modelos de

4:10

[Germán] Cohere, el modelo Llama, el Llama 3.290, que es un modelo de visión, o sea, es un

4:18

[Germán] modelo de texto y de visión, con lo cual le podemos enviar también imágenes para

4:22

[Germán] que las analice. También el modelo grande de Llama 3.1, o sea, todos estos

4:26

[Germán] modelos son de acceso gratuito, simplemente nos tenemos que identificar

4:30

[Germán] con una clave de GitHub. El problema que tenemos y el problema que nos

4:33

[Germán] encontramos también ayer es que OpenWeb UI no es compatible directamente con

4:37

[Germán] este API. Entonces, tenemos que poner algo en medio. Soporta API de OpenAI.

4:41

[Germán] Hace poco descubrí un servicio que se llama LiteLLM que es un

4:50

[Germán] proxy de modelos y traduce todos los modelos que soporta al API, al formato

4:56

[Germán] de API de OpenAI, de manera que cualquier aplicación que sea compatible

5:00

[Germán] con el API de OpenAI puede utilizar muchísimos modelos. Y ya os digo que hay

5:04

[Germán] muchos, muchos, muchos, de los cuales algunos son gratuitos, como este que os

5:09

[Germán] he enseñado, el de los de GitHub, que se pueden conectar a LiteLLM. También,

5:15

[Germán] ¿dónde más podemos encontrar modelos gratuitos? Pues los modelos de Mistral

5:19

[Germán] también se pueden conectar. Hay otros servicios como OpenRouter, que también

5:24

[Germán] tiene algunos servicios gratuitos. Si buscamos en su página, en la página

5:29

[Germán] donde se listan los modelos, buscamos free, pues nos encontramos que tiene,

5:36

[Germán] bueno, aquí no me salen, pero hay algunos modelos gratuitos. No me sale

5:42

[Germán] aquí. Vale. OpenRoute es el mismo concepto que LiteLLM, pero corriendo en

5:42

[Galileo] Y OpenRoute sería también como una especie de proxy, ¿no?

5:50

[Germán] la nube. También tiene formato, bueno, aquí nos vamos a centrar principalmente

5:55

[Germán] en, tanto en GitHub como en Mistral. Entonces vamos a explicar cómo

5:59

[Germán] instalarlo de forma muy, muy, muy, muy sencilla. Entonces, exactamente. Tenemos

6:01

[Galileo] Con el Docker Compose.

6:04

[Germán] instalado Docker. Vale, pues voy a cambiar la pantalla para que se vea

6:10

[Germán] a pantalla completa. Entonces, yo voy a arrancar Docker Compose, o sea, Docker

6:16

[Germán] Desktop. Lo tengo aquí funcionando, si no me equivoco. Entonces, ¿qué vamos a

6:22

[Germán] hacer? Bueno, lo primero que vamos a hacer es, nos vamos a crear un

6:28

[Germán] directorio. Pues, por ejemplo, lo vamos a hacer en el raíz. Un directorio que se

6:35

[Germán] llama Open WebUI. Y para que sea sencillo, he hecho, he publicado en

6:46

[Germán] GitHub una serie de archivos, que es entre los cuales hay un Docker Compose,

6:51

[Germán] que vamos a utilizar para levantar estos dos servicios, tanto OpenWeb UI como

6:56

[Germán] Lite LLM. Entonces, nos vamos a GitHub, la URL del repositorio, os la dejamos en

7:05

[Germán] las notas del episodio. Nos copiamos, nos descargamos aquí el zip dentro de

7:12

[Germán] GitHub. Y lo que vamos a hacer, a ver, lo bajamos aquí. Me voy a las descargas,

7:20

[Germán] abro el zip y el contenido lo voy a descomprimir dentro de este directorio

7:27

[Germán] que hemos creado. Open WebUI, todo. Todos los archivitos los descomprimimos.

7:33

[Germán] Entonces, ¿qué necesitamos antes de comenzar? Bueno, tenemos el fichero

7:40

[Germán] docker-compose.yaml, es un fichero que define los servicios. ¿Vale? Ahí dentro

7:46

[Germán] no tenéis que tocar nada, a no ser que estén ocupados los puertos que va a

7:51

[Germán] utilizar, que va a utilizar tanto Open WebUI como LiteLLM, que son el

7:58

[Germán] 3000 y el 4000. Si fuese otro, pues aquí lo podéis cambiar. El de Lite LLM

8:04

[Germán] no hace falta que lo cambies. Solamente este. Si tenéis alguna aplicación que

8:08

[Germán] utilice el puerto 3.000, pues le ponéis el 3001, el 3002, el que sea.

8:12

[Germán] Este, ya os digo, no hay que tocarlo. Siguiente. Hay un fichero .env que

8:19

[Germán] contiene, ¿vale? Que vais a ver que contiene un montón de claves API. Ahí he

8:24

[Germán] puesto las claves, bueno, digamos, los huecos para las claves API de muchos

8:30

[Germán] servicios, de todos los servicios que soporta LiteLLM. Lo primero que vamos a

8:36

[Germán] necesitar es nuestra clave de GitHub. Pues para ello nos vamos a ir a GitHub,

8:42

[Germán] ¿vale? Pulsamos en el icono con nuestra imagen, con nuestro perfil, y buscamos

8:47

[Germán] el enlace que pone Settings o no sé si en español lo traduce como

8:53

[Germán] configuración, ¿vale? Pero yo lo tengo en inglés. Entonces nos vamos a

8:57

[Germán] Settings. Dentro de Settings, o sea, nos aparece otra lista de opciones. Nos

9:02

[Germán] tenemos que ir al final del todo y pone Developer Settings. Dentro de Developer

9:07

[Germán] Settings nos aparece Personal Access Tokens. O sea, necesitamos una clave

9:12

[Germán] para identificarnos y nos vamos a Fine Grain Tokens. Vamos a generar, ¿me

9:17

[Germán] decías José algo?

9:18

[Galileo] No, no, que al final ahora vamos a generar el hash, el token, y el token es

9:24

[Galileo] un token que no da permiso a nada dentro de GitHub, sencillamente es un token de

9:28

[Galileo] identificación para que sepan que somos nosotros

9:29

[Germán] Sí. Eso es. Y el token solo lo vamos a utilizar dentro de LiteLLM. O sea, no

9:35

[Germán] se va a compartir con ningún servicio externo. Entonces, le damos aquí al

9:39

[Germán] botón de Generar Nuevo Token. Le ponemos un nombre. Lo vamos a llamar, por

9:43

[Germán] ejemplo, Lite LLM, aquí el nombre da igual. Le podéis poner un tiempo de

9:48

[Germán] expiración o directamente que no expire, ¿vale? Lo más cómodo es eso, pero lo más

9:53

[Germán] seguro, pues, es poner un tiempo de expiración. Pero sabéis que dentro de X

9:58

[Germán] días, pues, tendríais que volver a generar otro nuevo. Yo le voy a poner

10:00

[Germán] que no expire. Y no hay que hacer nada más, ¿vale? Porque no le vamos a dar

10:04

[Germán] ningún permiso. Entonces, esto, al dar abajo el botón de Generar Token, me

10:09

[Germán] aparece una cadena que es el token, ¿vale? Que puedo copiar. Viene bien

10:14

[Germán] guardar esta cadena porque una vez que salimos de esta pantalla ya no nos va a

10:20

[Germán] volver a aparecer, ¿vale? Entonces, si la hemos copiado, pues, la pegamos en el

10:25

[Germán] archivo, en el .env que decíamos antes, en el que pone GitHub API Key. Lo

10:32

[Germán] pegamos ahí al final. Como veis aquí, lo guardamos. Y aquí ya no tenemos que

10:37

[Germán] tocar nada más, ¿vale? Ya podemos salir de GitHub. Y nos vamos a aquí. Vale.

10:46

[Germán] Entonces, hay otro archivo que se llama litllmconfig.yaml, que ahí es donde

10:51

[Germán] definimos los modelos que vamos a utilizar. Entonces, yo he puesto uno en

10:56

[Germán] el cual he añado GPT4, ¿vale? Que es el modelo, digamos, de los modelos

11:02

[Germán] tradicionales, el más potente de OpenAI, pero que está conectado, está tirando de

11:07

[Germán] GitHub en vez de OpenAI. O sea, LiteLLM lo que tiene son proveedores. Uno de los

11:12

[Germán] proveedores es GitHub, otro proveedor es OpenAI. Entonces, hay que poner el

11:17

[Germán] nombre de ese proveedor aquí en el modelo. Entonces, el modelo se llama

11:20

[Germán] github/GPT-4o. Y luego, aquí iría el API Key, pero que lo tenemos

11:27

[Germán] definido como una variable. Entonces, en este archivo solamente tendríamos que

11:30

[Galileo] Vale

11:30

[Germán] tocar si queremos añadir modelos. Luego vamos a ver cómo se añaden modelos.

11:34

[Galileo] Hay que copiar en el env, tienes que copiar la clave

11:35

[Germán] Ahora, ¿qué? Sí, la clave ya la tengo copiada, ¿vale? Esta ya la tengo copiada

11:41

[Galileo] Vale, perfecto

11:43

[Germán] en GitHub API Key y he copiado la clave que me ha generado GitHub cuando la he

11:49

[Germán] configurado. Si quisiéramos.

11:50

[Galileo] Si hacéis el tutorial. Germán después la borrará porque

11:56

[Galileo] eso es un hash que identifica a Germán y lo puede utilizar otra persona para

11:59

[Germán] Exacto.

12:00

[Galileo] identificarse, entonces lo enseña ahora porque luego cuando salga este video,

12:04

[Galileo] eso ya no estará activo

12:05

[Germán] Exacto. Si utilizáis este cuando lo veáis, esto ya no va a funcionar, ¿vale?

12:09

[Galileo] O sea, no os pongáis ahí a escribirlo porque no va a funcionar.

12:13

[Germán] Exacto. Copiáis el que os da GitHub a cada uno de vosotros. Entonces, ahora

12:17

[Germán] nos vamos a ir al directorio que hemos creado. Abrimos una ventana de comando.

12:25

[Germán] Vemos que tenemos aquí estos archivos que habíamos dicho. Y no tenemos nada

12:29

[Germán] más que hacer docker compose, ejecutar docker compose up -d

12:39

[Germán] ¿Vale? Y eso lo que hace es poner en marcha todos los dos servicios, tanto

12:45

[Germán] Open WebUI como LiteLLM. Si nos vamos a la ventana de Docker Desktop, veremos

12:51

[Germán] que tenemos esos dos servicios funcionando. Este color que aparece

12:55

[Germán] aquí, vemos que están en verde los dos. Están los dos identificados en verde.

13:00

[Germán] Significa que están correctos. ¿Vale? Si no se pusieran en verde o se pusieran en

13:04

[Germán] rojo o se quedaran en blanco, significa que algo está mal. ¿Vale? Los archivos,

13:11

[Germán] estos archivos que hemos editado, pues hemos cometido algún error. Pero vamos,

13:14

[Germán] con las instrucciones que os he dado, veis que todo está funcionando ya. ¿Cómo

13:18

[Germán] accedemos a Open WebUI? Pues nos vamos a ir, vamos a abrir 127.0.0.1 que

13:28

[Germán] identifica a vuestra máquina local, todos los ordenadores tienen esa

13:34

[Germán] dirección, apuntan a sí mismos, al puerto 3000 que es el que tenemos

13:37

[Germán] compartido en Docker. ¿Vale? Entonces, entrando aquí, vais a ver que os aparece

13:43

[Germán] el logo de Open WebUI. Y ahora nos pide iniciar sesión. No tenemos cuenta porque

13:51

[Germán] se acaba de instalar. Entonces, veis que pone aquí abajo, no tienes una cuenta,

13:54

[Germán] crear una cuenta. Esto es como si estuvieramos accediendo a un servicio en

13:57

[Germán] la nube. Ingresamos nombre. Pues me pongo nombre Germán. Correo voy a poner

14:12

[Germán] lo va a utilizar para nada. Hay una contraseña que voy a poner 12345

14:15

[Germán] Vosotros podéis poner la contraseña que queráis.

14:19

[Germán] Tan segura como os dé la gana. Corre en local. Esto no lo tenemos conectado a internet.

14:20

[Galileo] Claro, porque esto corre en vuestro ordenador.

14:26

[Germán] Nadie de fuera de nuestra casa va a poder acceder aquí. Doy crear una

14:31

[Germán] cuenta. Y ya he accedido. La próxima vez que accedáis, si damos aquí, ponéis el

14:45

[Germán] Y veis que entra. Aquí vemos, bueno, esta interfaz, si habéis

14:53

[Germán] utilizado ChagGPT, os sonará un montón, porque es prácticamente lo mismo. El

14:58

[Germán] problema que nos encontramos, pues, que seleccionamos un modelo y no hay

15:00

[Germán] modelos. ¿Por qué no hay modelos? Porque no tenemos conectado todavía, no tenemos

15:04

[Germán] configurado Open WebUI para conectarse al LiteLLM. Pero la configuración es

15:09

[Germán] súper sencilla. Si aquí intentamos poner, nos dejemos hola, pues, nos sale

15:13

[Germán] un error de que no hay un modelo. Vale, entonces, ¿cómo nos venimos? Pues, a la

15:14

[Galileo] Ah, que no está conectado, bien.

15:18

[Germán] derecha arriba nos aparece un icono con nuestro perfil. Aquí aparece mi letra G.

15:24

[Germán] Pulso ahí en la G. Me voy al panel de administración. Y de las tres opciones

15:29

[Germán] que sale, panel de control, evaluaciones y configuración, me voy a configuración.

15:35

[Germán] Entonces, me tengo que ir a conexiones. Es normal que aquí tarde un poco en

15:41

[Germán] arrancar, porque si no tenéis instalado Ollama, que no hace falta que lo tengáis,

15:46

[Germán] pues, lo va a intentar buscar y va a tardar, pues, unos segundos. No va a

15:49

[Germán] tardar ni un minuto ni dos. O sea, va a tardar unos segundos, pero se nota que

15:53

[Germán] la primera vez le cuesta. Entonces, lo primero que vamos a hacer es desactivar

15:56

[Germán] Ollama. Desactivamos Ollama. Y ahora tenemos que poner aquí, vamos a utilizar

16:04

[Germán] el API de OpenAI, pero a través del LiteLLM. Entonces, el LiteLLM está instalado

16:07

[Galileo] A través de LiteLLM.

16:10

[Germán] en Docker. Entonces, para acceder a él, ponemos http://litellm:4000

16:15

[Germán] ¿Y qué clave API ponemos? Pues, si os acordáis,

16:22

[Germán] aquí arriba, no sé si os habéis fijado, quien lo esté viendo por YouTube, en la

16:26

[Germán] primera línea pone LiteLLM Master Key y yo he puesto sk-1234

16:32

[Germán] Lo que pongáis aquí es la clave para acceder al API del LiteLLM. Pues,

16:37

[Germán] eso lo copiamos aquí. Esto lo guardamos. Y aquí hay un botón a la derecha del

16:43

[Germán] todo, que son como unas flechas en círculo, con la cual podemos verificar

16:49

[Germán] la conexión. Si esto lo pulsamos y aquí aparece un mensaje en verde que dice

16:52

[Germán] conexión del servidor verificada, es que ya está funcionando. Entonces, nos vamos

16:57

[Germán] a nuevo chat y vemos que pone ya LiteLLM GitHub/GPT-4o. Y, entonces, digo, puedo

17:06

[Germán] decir, hola, ¿quién eres?

17:12

[Germán] Y responde, hola, soy un modelo de lenguaje creado por OpenAI, diseñado

17:15

[Germán] para ayudarte a responder preguntas y proporcionar información en una variedad

17:18

[Germán] de temas en que puedo ayudarte hoy, ¿vale? O sea, que ya tenemos

17:21

[Galileo] Es súper, vamos, súper rápido.

17:22

[Germán] configurado. O sea, ya está configurado.

17:28

[Germán] Es súper rápido, está muy bien y es gratis. Es gratis. No tenemos que...

17:32

[Galileo] Hay unos límites. En la página de GitHub vienen los límites del número máximo de

17:37

[Galileo] queries que podemos hacer diarias u horarias

17:40

[Germán] Si entráis dentro de la página de GitHub en el Marketplace de modelos, aquí pone,

17:47

[Germán] aquí pone que... No sé dónde estaba. Yo la verdad no he visto, no he visto claro

17:55

[Germán] el límite que tiene, pero aquí ponía...

17:59

[Galileo] Por eso se identifican al usuario. Al final tiene un límite. Pero vamos que...

18:02

[Germán] Sí. Tiene un límite. Lógicamente, cuanto más avanzado, cuanto más pesado y

18:07

[Germán] avanzado sea un modelo, mayor límite va a tener. Pero, por ejemplo, podemos

18:11

[Germán] utilizar el modelo de visión de Llama3.2, ¿vale? Que vamos a ver cómo se

18:15

[Germán] configura. Nos vamos a ir al fichero del litellm_config.yaml, ¿vale? Voy a copiar

18:22

[Germán] todo esto que pone model name y lo duplico aquí, ¿vale? Creo uno nuevo y lo

18:30

[Germán] voy a llamar littlelm github

18:38

[Germán] llama3.290b vision. Este nombre, este nombre que pone junto a model name es el

18:46

[Germán] nombre que nos va a aparecer en Open WebUI. Entonces, aquí podéis poner lo que

18:49

[Germán] queráis. El importante es el que pone debajo model. Entonces, si no me

18:58

[Germán] equivoco, creo que hay que copiar esto.

19:04

[Germán] El llama3.2. No estoy seguro de que esto funcione, pero bueno, vamos a

19:10

[Germán] verlo. Vamos a probarlo. Yo creo que si recargamos ahora, si recargamos la

19:10

[Galileo] Vamos a probarlo

19:16

[Germán] página, no hay que reiniciarlo. Hay que reiniciarlo. Vale. Nos vamos, o sea,

19:18

[Galileo] Sí, para que lea el...

19:22

[Germán] cada vez que añadimos un modelo nuevo, nos vamos a LiteLLM, pulsamos en los

19:27

[Germán] tres puntos y le decimos restart. Ya se ha reiniciado, se reinicia súper rápido,

19:34

[Germán] súper rápido y ya simplemente

19:38

[Germán] actualizamos aquí, ¿vale? Ya nos sale, pero vamos a ver si funciona. Le digo

19:46

[Germán] hola.

19:50

[Germán] No. Pues hemos parado un momento y hemos encontrado ya cuál es el problema y

19:55

[Germán] bueno, tenemos dos problemas. Uno, que tengo los dedos un poco torpes hoy. Me

20:02

[Germán] había dejado esto aquí, ¿vale? Había puesto GPT4o/llama. No, el modelo

20:07

[Germán] se llama... Exactamente. El modelo se llama github/ y luego ponemos todo

20:07

[Galileo] Has mezclado dos cosas. El de OpenAI con el de Meta.

20:14

[Germán] en minúsculas. llama-3.2-90b-vision-instruct. ¿Vale? Ese

20:24

[Germán] es el nombre del modelo total. Esto me lo voy a copiar aquí en las notas del

20:30

[Germán] programa, ¿vale? Para tenerlo ahí y luego pegarlo. Entonces, esto lo

20:35

[Germán] guardamos. Nos vamos a LiteLLM. Reiniciamos. Y ahora recargamos o

20:44

[Germán] volvemos a generar y vemos que ahora sí. Me dice, hola, ¿cómo estás? ¿Necesitas

20:49

[Germán] ayuda con algo o simplemente quieres charlar? Estoy aquí para ti. Muy

20:54

[Germán] sugerente. Entonces, le digo, ¿cómo te llamas?

21:00

[Germán] Me llamo Llama. No tengo nombre. Dice, pero puedes llamarme asistente. A ver,

21:07

[Germán] ¿qué modelo eres? A ver si me quiere responder. ¿Soy un modelo de lenguaje?

21:13

[Germán] No dice quién es. Mi versión es la GPT 3.5. Ah, vale. Esto lo decían hace

21:18

[Germán] tiempo. Decían que Llama 3 lo habían entrenado con textos generados por GPT.

21:24

[Galileo] Y entonces se equivocaba

21:25

[Germán] Y se cree que es GPT 3.5. Pero bueno, es Llama. Entonces, ¿qué gracia tiene este

21:30

[Germán] modelo? Pues que le podemos... Es un modelo de visión. Es un modelo de

21:34

[Germán] visión. Entonces, podemos buscar una imagen en internet. Por ejemplo, ¿qué le

21:40

[Germán] podemos buscar? ¿Alguna imagen de alguna película? O dime algo.

21:49

[Germán] De regreso al futuro. Regreso al futuro.

21:52

[Galileo] Buena peli.

21:55

[Galileo] Esa misma foto. La primera de ahí de Marty y de Doc.

21:57

[Germán] Imágenes... Esta, por ejemplo. Vale. Pues copiamos la imagen. Y nos vamos a

22:04

[Germán] Open WebUI. No, lo tenemos aquí. Y pegamos la imagen. Vale. Con Control-V.

22:09

[Galileo] Y describe esta imagen.

22:12

[Germán] Describe esta imagen con todo detalle.

22:21

[Germán] Identifica quién aparece en la foto. Y nos dice, leo literalmente. La imagen

22:32

[Germán] muestra dos personajes masculinos de la película. Regreso al futuro. De 1985. El

22:35

[Galileo] Toma ya, qué bueno.

22:37

[Germán] personaje de la izquierda es Marty McFly. Interpretado por Michael J. Fox.

22:42

[Germán] Lleva una chaqueta de cuero roja. ¿Es de cuero? No, es un plumas. Es un plumas.

22:45

[Galileo] No es de cuero, pero bueno, es un plumas.

22:47

[Germán] Dice, una camisa de cuadros, efectivamente. Y pantalones azules. Que

22:50

[Germán] eso se lo está inventando. Porque no se ven los pantalones. El personaje de la

22:51

[Galileo] Porque no lo ve ahí.

22:55

[Germán] derecha es el Dr. Emmett Doc Brown. Interpretado por Christopher Joy. Lleva

22:59

[Germán] un traje blanco. Bueno, sí. Y un bolígrafo con luz en la mano.

23:02

[Galileo] Sí.

23:05

[Galileo] No, eso es que se mezcla, alucina un poco de algún

23:09

[Germán] Está alucinando con otras escenas de la película. Dice, en el fondo de la imagen

23:12

[Galileo] con otras escenas de la película.

23:14

[Germán] se ve un edificio blanco con techo azul. Bueno, sí que tiene un poco de tono

23:18

[Germán] azul. Y luces verdes y blancas. Sí que hay luces verdes. Sí. Vale. Aceptamos

23:25

[Galileo] Sí, pero lo bueno es que esto no es como Ollama, que al final puedes utilizar

23:26

[Germán] verdes, luces y blancas. La imagen.

23:31

[Galileo] Ollama para cargar modelos de lenguaje. Esto es un modo, es como si estuviéramos

23:36

[Galileo] conectándose directamente a ChatGPT.

23:38

[Germán] A Ollama también puede. Se le pueden dar imágenes. Pero le tienes que

23:43

[Germán] dar la ruta del archivo. En las últimas versiones se puede hacer. Pero esto,

23:46

[Galileo] No han añadido.

23:47

[Germán] ¿veis que es igual?, igual que ChagGPT. Si esta imagen, es decir, si esto lo hace.

23:54

[Galileo] Y pone voz, tiene un micrófono, ¿no? O sea, que también soporta voz.

23:56

[Germán] Sí, sí. Hoy no vamos a hablar de ello, pero también soporta voz con Whisper.

24:02

[Germán] Que es un modelo de transcripción de voz a texto. Y con generadores de texto a

24:08

[Germán] voz. Y lo podemos utilizar. O sea, tiene muchísimas opciones. O sea, si

24:12

[Germán] tuviéramos que hablar de Open We UI, nos tiraríamos aquí horas y horas. Lo

24:18

[Germán] que quería decir es, si seleccionamos un modelo, bueno, GPT también admite

24:22

[Germán] imágenes. Pero bueno, lo que quiero decir, si seleccionamos un modelo que no

24:24

[Galileo] Dale la misma imagen y probamos.

24:28

[Germán] admite imágenes, cuando le mandamos la imagen nos va a dar un error y nos va a

24:32

[Germán] aparecer aquí en rojo que ese modelo no admite imágenes. Pero este, vamos a

24:37

[Germán] copiar la misma pregunta. No puedo copiar la misma pregunta. Bueno,

24:45

[Germán] describe la imagen con todo detalle.

24:50

[Galileo] ¿E identifica ...?

24:53

[Germán] Identifica los personajes.

24:58

[Germán] Vale, y GPT4 nos dice, tarda más. Dice, la imagen muestra dos personas en un

25:05

[Germán] entorno nocturno. A la izquierda, una persona sostiene una videocámara, JVC.

25:10

[Galileo] Sí, sí.

25:10

[Germán] Ah, mira, sí, sí lo pone. Lleva una chaqueta acolchada con color naranja

25:14

[Germán] sobre una camisa de mezclilla. A la derecha, otra persona lleva un traje

25:20

[Germán] blanco de laboratorio. De laboratorio, ¿no? Bueno, sí, venga. Y sostiene un

25:22

[Galileo] Bueno, se puede entender.

25:25

[Germán] control remoto con la antena. Ambos están de pie en un amplio espacio

25:29

[Germán] exterior. Posiblemente un estacionamiento con un gran edificio al

25:32

[Germán] fondo iluminado con luces. Vemos que la respuesta que da GPT es mucho más

25:36

[Germán] ambigua, menos detallada y además no quiere identificar quiénes son. Bueno,

25:42

[Germán] probablemente lo sepa, pero los controles de privacidad de OpenAI entran

25:48

[Germán] en juego. A ver, vamos a intentar forzarle.

25:51

[Galileo] Que eso es lo bueno también de los modelos. Cuando utilizamos modelos

25:54

[Galileo] abiertos, no tienen ese tipo de bloqueos.

25:55

[Germán] Abiertos.

25:59

[Germán] Bueno, pueden tenerlos, porque hay... Llama también tiene, o sea, si le

26:04

[Germán] preguntas algo sobre algo ilegal, te va a decir que eso no te lo puede decir.

26:07

[Galileo] Que eso no te lo puede hacer.

26:12

[Germán] ¿Quiénes son los personajes?

26:18

[Germán] ¿Qué película es? Es que no me ha dicho que es una película. Que el modelo de

26:20

[Galileo] Podría ser.

26:24

[Germán] llama sí dijo que era una película. Y ahora sí me dice, la escena es de la

26:29

[Germán] película Volver al futuro o Regreso al futuro. Los personajes son Doc Brown,

26:33

[Germán] que está con el control remoto, y Marty Macfly, que es el que sostiene la

26:36

[Germán] videocamera. Bueno, o sea, que sí lo sabe, pero se ha hecho el remolón a la

26:37

[Galileo] Sí que lo saben, pero no lo quería decir al principio. A la hora de contarlo, sí.

26:40

[Germán] hora de decirlo. Pues nada, si os interesa... Bueno, otros modelos que

26:47

[Germán] podemos utilizar son, por ejemplo, los modelos de Mistral, que son modelos de

26:52

[Germán] pago, pero también los podemos utilizar gratis. En este caso se pueden utilizar

26:56

[Germán] todos, también con limitaciones, pero yo, por ejemplo, los he utilizado

27:00

[Germán] últimamente en programa y no he tenido nunca problemas de que se me hayan

27:07

[Germán] rechazado una petición, porque había saturado el número de consultas. Si os

27:15

[Germán] vais a la web de LiteLLM, tenéis aquí los documentos y hay una sección que

27:22

[Germán] habla de los proveedores. A ver, providers, aquí, que se llama Supported

27:32

[Germán] Models and Providers. Entonces, aquí tenéis todos los proveedores. Si buscáis

27:37

[Germán] Mistral, os dice un ejemplo de configuración. ¿Dónde está Mistral?

27:42

[Germán] Mistral. Nos vamos a la parte de abajo de la página, aquí, y veis que pone aquí

27:49

[Germán] un ejemplo de configuración. Entonces es Mistral, Mistral Small Latest, y aquí

27:54

[Germán] tiene el ejemplo para utilizar este modelo. Lo podemos copiar directamente,

27:59

[Germán] lo que pasa que no tenemos un API de Mistral, pero bueno, lo podemos enseñar

28:04

[Germán] a rodillas. O sea, lo copiaríamos aquí, en el litellm_config.yaml, tal como está,

28:12

[Germán] puede estar con comillas o sin ellas. Veis que antes lo hemos puesto sin

28:16

[Germán] comillas, da igual. Lo guardamos y en el .em nos iríamos aquí, a donde pone

28:23

[Germán] Mistral API Key. Aquí, nos iríamos a la página de Mistral, nos damos de alta,

28:27

[Germán] nos registramos, no hace falta que pongáis una tarjeta de crédito, porque

28:31

[Germán] lo vais a utilizar gratis. Generáis un API Key y lo pegáis aquí, y ya está. O

28:36

[Germán] sea, no hay que hacer nada más. Ahora mismo, si lo intentamos utilizar, el

28:41

[Germán] modelo creo que lo detectará. Reiniciamos LiteLLM, nos vamos a

28:47

[Germán] Open WebUI, ¿vale? Recargamos la página. Aquí ya sale el de Mistral, pero aquí,

28:54

[Germán] pues, le decimos hola. Nos va a decir que no existe, porque no le hemos dado

29:00

[Galileo] No no. Exacto.

29:00

[Germán] una API key.

29:03

[Galileo] Pero bueno. Así está bien. Como para hacerlo rapidito y que se entienda

29:07

[Galileo] Después en los comentarios nos vais diciendo si habéis tenido algún problema

29:10

[Galileo] Pero probamos a hacer la instalación con Python, que también es posible

29:15

[Galileo] Pero era bastante más lenta y más complicada.

29:18

[Galileo] Por eso al final decidimos tirar por Docker.

29:21

[Germán] Pero, bueno, ya que lo tenemos montado, pues, en otro programa, pues, hablaremos

29:25

[Germán] sobre más características que tiene Open WebUI. De momento, si no tienes más

29:31

[Germán] que, José, lo podemos dejar aquí. Pues, nada, ya tenéis ahí materia para

29:35

[Galileo] Yo creo que está perfecto.

29:39

[Germán] investigar y que no se os vaya de las manos. Un saludo. Hasta luego.

29:43

[Galileo] Chao, hasta la próxima.