Desarrollamos un Chatbot con Gemini Pro | Python | Gradio

00:20:19
https://www.youtube.com/watch?v=Nvd5FvDO9EM

Resumen

TLDREn este video, Fernando muestra el proceso de creación de un chatbot utilizando Gemini Pro. Comienza explicando cómo obtener la clave de API necesaria para obtener acceso al modelo Pro. Luego, detalla cómo codificar el script con tres componentes principales: inicializar el modelo, crear una función para manejar consultas y respuestas, y lanzar una interfaz utilizando Gradio. Todo se encapsula finalmente en un contenedor Docker para una fácil implementación. Durante el video, Fernando también hace demostraciones en vivo preguntándole al chatbot varias cuestiones para mostrar cómo interactúa y da respuestas formateadas de manera apropiada.

Para llevar

  • 🤖 Building a chatbot using Gemini Pro is demonstrated.
  • 🔑 API key acquisition and usage are discussed.
  • 🖥️ The script includes model initialization, query handling, and interface launching.
  • 📦 Deployment in Docker container is explained.
  • 🛠️ Gradio is used for the graphical interface, making it interactive and user-friendly.
  • 📜 The script is written in Python, utilizing libraries like os and gradio.
  • 🎯 Real-time interaction with the chatbot is shown through various queries.
  • ⚙️ Debugging is facilitated by mounting the script to avoid Docker image reconstruction.
  • 📜 Memoization and algorithm complexity are discussed during chatbot question-answering.
  • ✔️ Overall setup involves integration of AI models and web technologies.

Cronología

  • 00:00:00 - 00:05:00

    En este video, Fernando nos explica cómo construir un chatbot utilizando Gemini Pro y la librería de Google Generative AI. El proceso incluye la obtención de una API key para acceder al modelo Pro, y el desarrollo de un script con tres componentes principales: inicializar el modelo, recibir preguntas y regresar respuestas mediante inferencia, y lanzar una interfaz con Gradio.

  • 00:05:00 - 00:10:00

    Después de configurar la API y crear una instancia del modelo Gemini Pro, se desarrolla la función para manejar la interacción del chatbot. Esta función toma una pregunta del usuario y usa el método Send message para obtener una respuesta del modelo. La interacción se gestiona en una interfaz de Gradio, donde se agregan las preguntas y respuestas a una lista de 'conversation'.

  • 00:10:00 - 00:15:00

    Fernando explica cómo implementar la interfaz de Gradio para el chatbot, utilizando componentes como 'text boxes' y botones para manejar las interacciones del usuario. Al enviar una pregunta a través de un evento 'submit', el sistema captura la interrogante, llama a la función de respuesta, y muestra la conversación actualizada al usuario en la interfaz.

  • 00:15:00 - 00:20:19

    La construcción y ejecución del contenedor Docker es el último paso. Fernando construye una imagen Docker del chatbot y lo despliega. Prueba la funcionalidad del chatbot mediante varias preguntas, comprobando que el sistema interactúa adecuadamente y formatea las respuestas correctamente en la interfaz de Gradio. Concluye limpiando la conversación visual y agradeciendo a los espectadores.

Ver más

Mapa mental

Mind Map

Preguntas frecuentes

  • What is the video about?

    The video is about building a chatbot using Gemini Pro, Google Generative AI, and Gradio.

  • What library is used to access the Gemini Pro model?

    The Google Generative AI library is used.

  • How is the chatbot interface created?

    The interface is created using Gradio.

  • What are the main components of the script?

    The script consists of initializing the model, handling queries, and launching a Gradio interface.

  • What programming language is used for scripting?

    Python is used for scripting.

  • How is the setup deployed?

    The setup is deployed in a Docker container.

  • How does the chatbot respond to questions?

    It sends a query to the model and returns the response in an interactive Gradio interface.

  • What suggestions does Fernando give for writing a resume?

    Fernando asks for three tips to write a resume, although the video does not provide exact tips.

  • How does Gradio aid in creating chatbots?

    Gradio simplifies creating interactive web interfaces with few lines of code.

  • What additional feature does Fernando implement for easier debugging?

    He mounts the main script so it can be edited without rebuilding the Docker image.

Ver más resúmenes de vídeos

Obtén acceso instantáneo a resúmenes gratuitos de vídeos de YouTube gracias a la IA.
Subtítulos
es
Desplazamiento automático:
  • 00:00:00
    Hola qué tal sean todos ustedes
  • 00:00:01
    Bienvenidos a un nuevo video Mi nombre
  • 00:00:04
    es Fernando y en este video vamos a
  • 00:00:06
    construir un chatbot utilizando gemini
  • 00:00:09
    Pro si no has visto cómo utilizar gemini
  • 00:00:12
    pro y gemini Pro Vision te dejo por acá
  • 00:00:14
    los links al video anterior en donde
  • 00:00:16
    explicamos todo eso así que cómo vamos a
  • 00:00:19
    hacer esto bien Vamos a utilizar la
  • 00:00:21
    librería de Google generative Ai vamos a
  • 00:00:25
    obtener nuestra picki con eso vamos a
  • 00:00:27
    poder tener acceso al modelo Pro luego
  • 00:00:31
    vamos a codear un Script este Script va
  • 00:00:33
    a tener tres componentes principales el
  • 00:00:35
    primero va a ser inicializar el modelo
  • 00:00:38
    el segundo va a ser una función la cual
  • 00:00:39
    va a recibir la pregunta y va a retornar
  • 00:00:42
    noos la respuesta la cual es básicamente
  • 00:00:44
    hace inferencia respecto a la
  • 00:00:46
    conversación y la tercera es un
  • 00:00:48
    componente que va a lanzar una interfaz
  • 00:00:50
    en gradio Y eso va a ser básicamente
  • 00:00:54
    todo así que sin más vamos a comenzar
  • 00:00:57
    primero vamos a ir a la documentación
  • 00:01:00
    como les comentaba vamos a utilizar
  • 00:01:02
    Google generative Ai y para esto voy a
  • 00:01:05
    ir en esta parte en un momento para
  • 00:01:07
    obtener mi Api Ke Así que primero vamos
  • 00:01:12
    a
  • 00:01:13
    crear un directorio yo aquí le llamo
  • 00:01:18
    chatbot y primero vamos a crear un
  • 00:01:20
    archivo pun el cual va a contener mi
  • 00:01:23
    llave
  • 00:01:25
    Google
  • 00:01:28
    p
  • 00:01:30
    y listo en este momento ya tenemos
  • 00:01:32
    nuestra apik ahora vamos a crear el
  • 00:01:35
    archivo principal el archivo Main voy a
  • 00:01:38
    primero desarrollar la aplicación y
  • 00:01:41
    después vamos a agregar los
  • 00:01:42
    requerimientos y finalmente vamos a
  • 00:01:44
    meter todo esto dentro de un contenedor
  • 00:01:46
    de docker Así que vamos primero con lo
  • 00:01:49
    principal lo más divertido y lo más
  • 00:01:50
    emocionante
  • 00:01:52
    Main este va a ser el Script principal
  • 00:01:55
    aquí yo voy a agregar mis librerías por
  • 00:01:56
    ejemplo
  • 00:01:58
    radio
  • 00:02:04
    voy a utilizar os la librería os para
  • 00:02:06
    poder cargar la variable de ambiente en
  • 00:02:08
    el Script y
  • 00:02:10
    finalmente únicamente utilizaré estas
  • 00:02:13
    tres librerías ahora vamos a comenzar
  • 00:02:16
    con nuestra clase dijimos que vamos a
  • 00:02:18
    tener tres componentes principales
  • 00:02:19
    entonces voy a utilizar tres funciones
  • 00:02:21
    vamos a llamar esta clase G
  • 00:02:28
    chatbot vamos tener nuestro
  • 00:02:33
    constructor y vamos a por por el momento
  • 00:02:36
    no hacer nada okay Por el momento no
  • 00:02:38
    haremos nada ahora la primer función la
  • 00:02:41
    que va a inicializar el chatbot vamos a
  • 00:02:45
    llamarle ahora qué es lo que voy a hacer
  • 00:02:47
    aquí lo que voy a hacer es setear
  • 00:02:49
    primero mi kei vamos a
  • 00:02:54
    hacerlo en esta línea hemos únicamente
  • 00:02:57
    seteado la piqui esto nos dará acceso
  • 00:03:00
    como ya lo comentamos al modelo ahora en
  • 00:03:02
    la siguiente línea yo voy a inicializar
  • 00:03:04
    G Pro vamos a
  • 00:03:06
    hacerlo en este momento hemos creado una
  • 00:03:09
    instancia del modelo gemini Pro ahora
  • 00:03:13
    voy a utilizar la capacidad de chatbot
  • 00:03:16
    para generar un atributo de la clase
  • 00:03:18
    llamada
  • 00:03:24
    chatbot resumiendo lo que hace esta
  • 00:03:26
    función es samos el Ke inicializa
  • 00:03:29
    generamos una instancia del modelo gm
  • 00:03:31
    Pro e inicializando un atributo llamado
  • 00:03:34
    chatbot eh que es básicamente un
  • 00:03:36
    componente de gemeni y listo con eso
  • 00:03:39
    tendríamos la parte de inicialización de
  • 00:03:42
    geminii chat Bot ahora lo que seguiría
  • 00:03:45
    es hacer una función la cual se va a
  • 00:03:47
    encargar de recibir la pregunta la
  • 00:03:50
    pregunta que le vamos a hacer a gemen y
  • 00:03:52
    cómo vamos a retornar la respuesta o
  • 00:03:54
    cómo la vamos a manejar en este caso
  • 00:03:56
    como quiero desplegarla en una interfaz
  • 00:03:57
    de gradio voy a utilizar un componente
  • 00:04:00
    que se llama conversación que es una
  • 00:04:01
    lista en la cual vamos a ir agregando
  • 00:04:04
    toda la conversación y al mismo tiempo
  • 00:04:06
    voy a ir por la respuesta y Lo agrego la
  • 00:04:08
    conversación Así que vamos a
  • 00:04:12
    hacerlo perfecto en la línea 15 lo que
  • 00:04:16
    hemos hecho es dada una pregunta dado un
  • 00:04:18
    question en este caso que es un String
  • 00:04:21
    se lo pasamos al método Send message de
  • 00:04:23
    nuestro de nuestro atributo es s pun
  • 00:04:26
    chatbot se llama chatbot entonces
  • 00:04:29
    chatbot Send message me va a retornar un
  • 00:04:32
    response luego lo que yo tengo que hacer
  • 00:04:35
    para poder gestionar Cómo se va a ir
  • 00:04:37
    viendo esta conversación en gradio es
  • 00:04:40
    utilizar conversation que conversation
  • 00:04:42
    va a ser un componente de gradio que
  • 00:04:43
    vamos a ver más adelante Así que yo
  • 00:04:46
    únicamente tengo que agregar a
  • 00:04:48
    conversation la tupla de la pregunta y
  • 00:04:50
    la
  • 00:04:53
    respuesta como ya lo vimos en el video
  • 00:04:56
    anterior eh el response contiene
  • 00:04:59
    diferentes atributos para los cuales yo
  • 00:05:02
    únicamente quiero el text lo cual
  • 00:05:03
    contiene la respuesta que voy a utilizar
  • 00:05:06
    entonces en esta parte hemos generado
  • 00:05:09
    una instancia de la conversación la cual
  • 00:05:12
    se va a ir agregando a esta lista y
  • 00:05:14
    finalmente tengo que
  • 00:05:16
    retornar voy a hacer esto y ahorita
  • 00:05:19
    explico por
  • 00:05:22
    qué retornamos dos componentes retorno
  • 00:05:26
    una Stream un Stream vacío y retorno
  • 00:05:28
    conversación Eh Esto es básicamente
  • 00:05:31
    porque en el comportamiento que quiero
  • 00:05:33
    manejar con gradio voy a recibir un
  • 00:05:36
    Stream vacío el cual va a suplir a lo
  • 00:05:39
    que yo escriba en un textbox cuando tú
  • 00:05:41
    escribes tu pregunta se va a borrar la
  • 00:05:43
    pregunta porque se va a mostrar ahora en
  • 00:05:44
    el chat y conversación porque quiero
  • 00:05:47
    mostrar la siguiente parte de la
  • 00:05:48
    conversación únicamente es por eso por
  • 00:05:51
    eso retornamos a estos dos componentes
  • 00:05:52
    que en la siguiente función tendrán más
  • 00:05:54
    sentido así que vamos a hacerlo de una
  • 00:05:57
    vez y justamente vamos a Ahora sí
  • 00:06:01
    codificar la parte de gradio que es por
  • 00:06:04
    eso me gusta mucho gradio es muy muy
  • 00:06:06
    sencillo de utilizar voy a utilizar un
  • 00:06:09
    componente que se llama de gradio que se
  • 00:06:10
    llaman blogs y con eso va a ser más que
  • 00:06:13
    suficiente para poder modelar nuestro
  • 00:06:15
    chatbot luego vamos a generar un
  • 00:06:18
    contexto una vez dentro del contexto
  • 00:06:21
    vamos a tener tres componentes el
  • 00:06:23
    chatbot como tal la pregunta que Vamos a
  • 00:06:26
    ingresar y un botón que limpie la
  • 00:06:28
    conversación así que vamos a utilizar
  • 00:06:30
    este grandioso componente chatbot se
  • 00:06:32
    llama chatbot es igual a este componente
  • 00:06:35
    me permite como ya lo comenté tener esta
  • 00:06:38
    este comportamiento tipo chatbot lo cual
  • 00:06:41
    es Genial question que es un textbox así
  • 00:06:46
    las
  • 00:06:48
    text
  • 00:06:50
    Box y le vamos a poner una etiqueta que
  • 00:06:53
    diga Pregúntame Ah sí Pregúntame y
  • 00:06:58
    finalmente un botón de Clear qué es lo
  • 00:07:01
    que va a limpiar este botón básicamente
  • 00:07:03
    va a limpiar question y va a limpiar
  • 00:07:07
    chatbot que chatbot nuevamente es el
  • 00:07:09
    componente que va a mostrar esta
  • 00:07:11
    conversación en una parte vamos a tener
  • 00:07:14
    la pregunta y en la otra la respuesta
  • 00:07:15
    pregunta respuesta en un momento vamos a
  • 00:07:17
    ver y listo una vez que tenemos estos
  • 00:07:21
    tres componentes cómo los manipulamos
  • 00:07:22
    Okay vamos a utilizar un evento llamado
  • 00:07:25
    soft meit que viene de question question
  • 00:07:28
    es un texto Box cuando demos enter en el
  • 00:07:31
    textbox es que estamos enviando la
  • 00:07:33
    pregunta en este momento se genera el
  • 00:07:35
    evento el cual va a llamar a la función
  • 00:07:38
    response le va a pasar el contenido de
  • 00:07:40
    question y va a
  • 00:07:42
    aceptar lo que nos retorne get response
  • 00:07:45
    que va va a ser la lista vacía y el
  • 00:07:48
    estado actual de la conversación vamos a
  • 00:07:49
    hacerlo la función que voy a llamar
  • 00:07:51
    self.get
  • 00:07:53
    response los inputs esta parte son los
  • 00:07:57
    inputs que van a ser pues
  • 00:08:00
    chatbot y lo que voy a recibir es el
  • 00:08:04
    siguiente es question que va a ser nada
  • 00:08:08
    y chatbot que va a ser el siguiente
  • 00:08:10
    estado cu se va a convertir en en un
  • 00:08:13
    Stream vacío para que cuando deamos
  • 00:08:15
    enter se limpia y el siguiente estado
  • 00:08:18
    actual del chatbot y una vez que tenemos
  • 00:08:21
    definido este comportamiento si vimos
  • 00:08:23
    fueron unas cuantas líneas para utilizar
  • 00:08:26
    gradio una vez que hemos hecho esto
  • 00:08:29
    basta con lanzar hacer un launch demo
  • 00:08:31
    that launch launch Okay y vamos a poner
  • 00:08:35
    on boog por si sale algún box de box
  • 00:08:39
    true vamos a poner el server name en
  • 00:08:43
    donde lo vamos a desplegar como va a ser
  • 00:08:46
    dentro de un contenedor tengo que
  • 00:08:47
    hacerlo esto tengo que hacerlo así si yo
  • 00:08:49
    le pongo local Host me va a tirar un
  • 00:08:51
    error
  • 00:08:52
    eh si no lo haces dentro de un
  • 00:08:54
    contenedor de docker puedes dejarle
  • 00:08:56
    local Host porque lo voy a hacer dentro
  • 00:08:58
    del contenedor yo le pongo este server
  • 00:09:00
    name y el puerto en el que va a
  • 00:09:01
    funcionar
  • 00:09:03
    server
  • 00:09:05
    Port es igual al 7860 me parece que es
  • 00:09:09
    el el que utilice y listo listo perfecto
  • 00:09:15
    okay ya tenemos nuestros tres
  • 00:09:17
    componentes nuestras tres funciones
  • 00:09:19
    inicialización del modelo obtener la
  • 00:09:21
    respuesta y gradio que básicamente esta
  • 00:09:23
    parte de gradio interactúa con get
  • 00:09:25
    response Okay ya está mi Script
  • 00:09:28
    únicamente necesito agregar mi If name y
  • 00:09:33
    lo que voy a hacer aquí es inicializar
  • 00:09:35
    la clase vamos a G C es igual a gemini
  • 00:09:41
    chatbot listo Ah una vez que hago esta
  • 00:09:44
    parte para que se inicialice vamos a
  • 00:09:47
    llamarle aquí self
  • 00:09:49
    init entonces en el constructor
  • 00:09:52
    inicializo y después lanzamos y. lch
  • 00:09:58
    gradio y esto sería básicamente todo
  • 00:10:03
    ahora ya tenemos el Script principal si
  • 00:10:05
    no hay ningún Bo por lo que sea debería
  • 00:10:09
    funcionar correctamente ahora vamos a
  • 00:10:11
    agregar requerimientos una vez que hemos
  • 00:10:14
    pasado la parte divertid vamos a ver
  • 00:10:16
    requerimientos
  • 00:10:21
    requirement bien eso los tengo por acá
  • 00:10:24
    vamos a hacer un copy and
  • 00:10:26
    paste y únicamente necesito estas dos
  • 00:10:29
    librerías necesito radio gradio Necesito
  • 00:10:33
    la librería de goog generative Ai y
  • 00:10:36
    listo ahora como dijimos que lo íbamos a
  • 00:10:39
    meter dentro de un contenedor de docker
  • 00:10:42
    como aquí nos gusta hacerlo eh vamos a
  • 00:10:44
    crear nuestra imagen de docker vamos a
  • 00:10:46
    crear un docker
  • 00:10:50
    file y dentro vamos a agregar unas
  • 00:10:54
    instrucciones listo estamos utilizando
  • 00:10:57
    python 3.11 desde el python 3.8 hacia
  • 00:11:00
    arriba podemos ocuparlo y ocupo el 11
  • 00:11:02
    genero mi eh archivo de trabajo mi
  • 00:11:04
    directorio de trabajo app copio los
  • 00:11:07
    requerimientos instalo todos los
  • 00:11:09
    requerimientos que como vimos son dos eh
  • 00:11:12
    comúnmente me gusta agregar un usuario
  • 00:11:14
    el cual tenga eh permisos de sudo lo cu
  • 00:11:17
    lo cual estoy haciendo acá y seteo el
  • 00:11:19
    usuario con el que voy a trabajar que es
  • 00:11:21
    a una vez hecho esto genero mi entry
  • 00:11:25
    Point que básicamente cuando corra el
  • 00:11:26
    contenedor va a ser el Script que se va
  • 00:11:28
    lanzar que va a ser básicamente m y eso
  • 00:11:31
    es básicamente todo ahora lo que yo
  • 00:11:34
    tendría que hacer solamente es construir
  • 00:11:36
    y correr el contenedor Así que vamos a
  • 00:11:38
    hacerlo Vamos vamos vamos vamos ahora lo
  • 00:11:40
    que vamos a hacer es Construir la imagen
  • 00:11:42
    docker bu vamos a llamarle gemini
  • 00:11:47
    chatbot y en el directorio actual
  • 00:11:50
    construimos la imagen y esperemos a que
  • 00:11:53
    se
  • 00:11:56
    [Música]
  • 00:11:57
    construya
  • 00:12:00
    Listo ya se construyó la imagen images
  • 00:12:04
    allí tenemos nuestra imagen y
  • 00:12:08
    chatbot ahí lo tenemos Okay ahora lo que
  • 00:12:11
    vamos a hacer es correr para correrlo
  • 00:12:13
    vamos a hacer un docker Run vamos a
  • 00:12:16
    hacer un menos y t en un detach Mode y
  • 00:12:22
    vamos a setear el archivo de
  • 00:12:24
    configuración recordemos que tenemos un
  • 00:12:26
    archivo de configuración en donde eh
  • 00:12:29
    tengo mi mi Google apq Entonces menos m
  • 00:12:33
    file es el archivo
  • 00:12:38
    punto luego comúnmente una práctica que
  • 00:12:42
    suelo hacer es montar el Script
  • 00:12:45
    principal por si suele ver algún Box
  • 00:12:47
    pueda manipularlo y que los cambios se
  • 00:12:49
    vean eh No tengan que reconstruir la
  • 00:12:51
    imagen entonces me gusta montar vamos a
  • 00:12:53
    hacer un menos B va entonces nuevamente
  • 00:12:58
    únicamente por si tengo tengo algún boj
  • 00:12:59
    algún typo pueda arreglarlo en ese
  • 00:13:01
    momento sin reconstruir la imagen y
  • 00:13:03
    finalmente Vamos a ponerle Cómo se va a
  • 00:13:05
    llamar mi contenedor menos name vamos a
  • 00:13:08
    llamarle
  • 00:13:11
    G chat Bot
  • 00:13:14
    container B1 ahora agregaré el puerto el
  • 00:13:18
    puerto que vamos a utilizar es el 78 70
  • 00:13:22
    78 60 dos puntos vamos a hacer un
  • 00:13:25
    Forward de este Puerto voy a expandir un
  • 00:13:27
    poquitito más para acá esto
  • 00:13:29
    Ah
  • 00:13:33
    7860 y la imagen se llama
  • 00:13:38
    jy
  • 00:13:40
    chatbot chatbot listo en detach Mode
  • 00:13:44
    vamos aar el archivo de
  • 00:13:46
    configuración montamos mi Script le
  • 00:13:49
    ponemos un
  • 00:13:51
    nombre hacemos Forward el puerto y listo
  • 00:13:55
    vamos a darle enter y parece que todo
  • 00:13:58
    viene a ver docker
  • 00:13:59
    [Música]
  • 00:14:02
    container sí está corriendo así que si
  • 00:14:05
    yo voy a mi eh local Host en el
  • 00:14:08
    7860 vamos a abrir
  • 00:14:11
    Chrome vamos a hacer un Sí y un local
  • 00:14:16
    Host 78 60 y allí tenemos nuestra
  • 00:14:19
    interfaz de gradio ahora sí vamos a
  • 00:14:23
    comenzar a preguntarle cosas al chatbot
  • 00:14:26
    aquí tenemos la parte esta es la sección
  • 00:14:28
    del chat Bot en donde vamos a ir viendo
  • 00:14:30
    ese ese comportamiento aquí tenemos la
  • 00:14:32
    parte de Pregúntame la cual se va a
  • 00:14:34
    limpiar una vez que le haga la pregunta
  • 00:14:36
    y un botón de Clear si ya tengo una
  • 00:14:38
    conversación muy larga hago un Clear Así
  • 00:14:40
    que vamos a decirle hola al chatbot
  • 00:14:44
    y muy bien fue muy rápido a ver s super
  • 00:14:47
    está yendo bien qué bueno que no hubo
  • 00:14:49
    ningún bg eh qué le preguntamos a ver
  • 00:14:51
    voy a preguntarle algo eh escribe una
  • 00:14:55
    función en python para calcular el
  • 00:14:59
    enésimo número de
  • 00:15:03
    fibonacci vamos a ver qué me dice gemini
  • 00:15:06
    Pro muy bien a ver vamos a rar Okay me
  • 00:15:11
    gusta me encanta O sea que te formatea
  • 00:15:14
    la parte del código se ve impresionante
  • 00:15:17
    Así que Okay vamos a ver escribe una
  • 00:15:19
    función en python para calcular el
  • 00:15:21
    número de
  • 00:15:22
    fibonacci muy bien Esto es la solución
  • 00:15:24
    eh Como clásica es recursiva esta esta
  • 00:15:29
    función no está
  • 00:15:32
    optimizada y el tiempo de complejidad
  • 00:15:34
    cabe mencionar es dos a la n creo que
  • 00:15:37
    por allí tenemos un video explicando
  • 00:15:39
    fimon Pero bueno Esta es recursiva y es
  • 00:15:42
    do a la
  • 00:15:45
    n Sí sí a ver deja le pregunto Cuál es
  • 00:15:51
    la
  • 00:15:53
    complejidad a
  • 00:15:55
    ver la complejidad de la
  • 00:15:59
    solución anterior en tiempo y espacio
  • 00:16:05
    tiene queir dos a la n y en espacio ha
  • 00:16:08
    de ser eh Ah constante vamos a ver qué
  • 00:16:13
    nos dice
  • 00:16:15
    eh Mira incluso la la optimizó la
  • 00:16:18
    complejidad es 2 a la n Okay eso lo que
  • 00:16:21
    justo comentamos eh Por lo tanto el
  • 00:16:24
    llamada el número de llamadas recursivas
  • 00:16:26
    crece exponencialmente lo cual es eh yo
  • 00:16:29
    había dicho constante la solución
  • 00:16:30
    espacio es es eh lineal Sí justamente
  • 00:16:34
    porque estamos generando el stack eh de
  • 00:16:37
    del del cálculo previo y estamos
  • 00:16:39
    haciendo una asignación de la variable
  • 00:16:41
    de forma
  • 00:16:42
    eh lineal conforme crece el número de
  • 00:16:45
    iteraciones
  • 00:16:46
    e Sí justamente yo le quería preguntar
  • 00:16:49
    cuál es la optimización y es con
  • 00:16:51
    programación dinámica con memoization Ah
  • 00:16:55
    Sí justo y aquí tenemos la utilización
  • 00:16:57
    de memoization que hay dos enfoques en
  • 00:17:01
    programación dinámica es bottom up o top
  • 00:17:04
    down eh y aquí nos está dando una de
  • 00:17:07
    estas y justamente se vuelve lineal
  • 00:17:09
    Ahora sí muy bien muy bien Ahora vamos a
  • 00:17:12
    decirle vamos a preguntarle qué le
  • 00:17:14
    podemos preguntar Dame tres Dame tres
  • 00:17:18
    consejos para escribir mi resume mi
  • 00:17:24
    cb vamos a esperar tres consejos para
  • 00:17:27
    escribir mi
  • 00:17:30
    curriculum
  • 00:17:32
    mm Okay muy bien Me encanta cómo cómo se
  • 00:17:36
    ve esta forma interactiva está muy buena
  • 00:17:38
    y esto es lo que les comentaba el
  • 00:17:40
    comportamiento chatbot que que te da
  • 00:17:42
    este gradio superb Okay Eh vamos a
  • 00:17:46
    preguntarle una última
  • 00:17:50
    cosa Quién es
  • 00:17:54
    squirtle de
  • 00:17:57
    Pokémon
  • 00:17:59
    sabrá no
  • 00:18:01
    sé está preguntando por las cosas
  • 00:18:04
    aleatorias a ver qui me
  • 00:18:09
    comenta es un Pokémon tipo agua que
  • 00:18:12
    justamente es
  • 00:18:14
    este Ok este un caparazón
  • 00:18:18
    claro listo Pues nada este vamos a ver
  • 00:18:21
    qué más tenemos por acá y y bueno vamos
  • 00:18:23
    a limpiar esto y se limpia todo vamos a
  • 00:18:26
    solamente testear lo que porque creo que
  • 00:18:29
    ya no lo resalt
  • 00:18:31
    este Qué es un gpu
  • 00:18:35
    eh Ah
  • 00:18:38
    Dímelo responde en
  • 00:18:41
    [Música]
  • 00:18:46
    viñetas se limpió aquí el texto vamos a
  • 00:18:49
    ver que va a haber aquí texto y va a
  • 00:18:51
    estar por acá Arribita pero a ver si lo
  • 00:18:53
    da viñ no
  • 00:18:57
    s puse viñetas este ah no sí Mira sí lo
  • 00:19:02
    organizó justamente y bueno lo que
  • 00:19:04
    quería Resaltar Es que aquí ya no
  • 00:19:05
    tenemos la pregunta la tenemos aquí
  • 00:19:07
    Arribita Y tenemos este comportamiento
  • 00:19:09
    de chada Así que listo listo listo listo
  • 00:19:12
    listo vamos a darle un Clear y sin más
  • 00:19:16
    sin más Hemos llegado a la parte final
  • 00:19:18
    del video espero les haya gustado les
  • 00:19:20
    haya encantado Mi nombre es Fernando y
  • 00:19:24
    nos vemos en el siguiente video Bye
  • 00:19:49
    [Música]
  • 00:20:17
    m
Etiquetas
  • chatbot
  • Gemini Pro
  • Google Generative AI
  • Gradio
  • API key
  • Python
  • Docker
  • AI
  • interactive interface
  • programming