<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sebas Álvaro</title>
    <description>The latest articles on DEV Community by Sebas Álvaro (@alvarosdev).</description>
    <link>https://dev.to/alvarosdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1436853%2F859086a5-08c7-48b7-82cb-ce14c0aec60a.png</url>
      <title>DEV Community: Sebas Álvaro</title>
      <link>https://dev.to/alvarosdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alvarosdev"/>
    <language>en</language>
    <item>
      <title>Usando NextDNS CLI en tu red.</title>
      <dc:creator>Sebas Álvaro</dc:creator>
      <pubDate>Mon, 22 Apr 2024 00:45:51 +0000</pubDate>
      <link>https://dev.to/alvarosdev/usando-nextdns-cli-en-tu-red-1o6n</link>
      <guid>https://dev.to/alvarosdev/usando-nextdns-cli-en-tu-red-1o6n</guid>
      <description>&lt;p&gt;¡Hace más de dos años que empecé a usar &lt;a href="https://nextdns.io/"&gt;NextDNS&lt;/a&gt; para bloquear esos molestos anuncios en mi red doméstica! 🏡💻 Aunque puedo aprovechar las capacidades de bloqueo de anuncios de navegadores como Brave Browser o extensiones como uBlock Origin (las cuales uso regularmente), NextDNS ha demostrado ser una herramienta invaluable para mantener una experiencia de navegación limpia y libre de distracciones en todos mis dispositivos conectados a la red. 🚫📲&lt;/p&gt;

&lt;p&gt;Si te preguntas, ¿por qué no usar &lt;a href="https://adguard.com/es/adguard-home/overview.html"&gt;Adguard&lt;/a&gt; o &lt;a href="https://pi-hole.net/"&gt;Pihole&lt;/a&gt;? 🤔&lt;/p&gt;

&lt;p&gt;La razón es que NextDNS me ofrece ventajas que no me brindan las dos anteriores. Y, si llegaran a ofrecerlas, tomaría tiempo configurarlas y tendría que estar siempre atento a que estos servicios no se mueran cuando más los necesite. 😰&lt;/p&gt;

&lt;p&gt;La aplicación para Android y iOS funciona de manera excepcional, permitiéndome bloquear anuncios de forma eficiente en cualquier lugar, sin necesidad de configurar un túnel desde mi red local (como si tendría que hacerlo con pihole o adguard). 🌍✨&lt;/p&gt;

&lt;h2&gt;
  
  
  Y como estructuro mi red 🌐
&lt;/h2&gt;

&lt;p&gt;Actualmente, tengo la siguiente estructura: Mi Homelab se conecta a Internet para poder utilizar los servicios de NextDNS, mientras que sirve como un servidor DNS en el puerto 53 dentro de mi red local. Mi router está configurado para utilizar por defecto los DNS con la IP 192.168.X.X. De esta manera, cada vez que se conecta un dispositivo nuevo a la red, este automáticamente tendrá configurado los DNS apuntando a mi Homelab, que a su vez tiene montado un servidor DNS que apunta a los servicios de NextDNS. 🔄&lt;/p&gt;

&lt;p&gt;Esta configuración me permite tener un control centralizado sobre la resolución de nombres de dominio (DNS) en mi red local, al mismo tiempo que aprovecho los beneficios de un servicio externo como NextDNS, que ofrece funciones adicionales como bloqueo de anuncios, protección contra malware y filtrado de contenido. 🛡️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipz4ypghm2f967gp5q61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipz4ypghm2f967gp5q61.png" alt="Como tengo estructurada mi red" width="662" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalar NextDNS en mi Computadora 💻
&lt;/h2&gt;

&lt;p&gt;Aunque no profundizaré en cómo crear una cuenta en NextDNS, ya que es un proceso sencillo, sí te guiaré en cómo instalar la herramienta de línea de comandos (CLI) de NextDNS en tu computadora o servidor local. 🤓&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se recomienda utilizar Linux o WSL2 (Subsistema de Windows para Linux)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;La información detallada sobre la instalación y el uso de la CLI de NextDNS la puedes encontrar en el siguiente enlace: &lt;a href="https://github.com/nextdns/nextdns/wiki"&gt;NextDNS CLI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sin embargo, a continuación, te proporcionaré los pasos básicos para instalar la CLI de NextDNS en tu sistema:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Instalar las dependencias necesarias&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;En sistemas basados en Debian/Ubuntu: &lt;code&gt;sudo apt-get install -y curl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;En sistemas basados en RHEL/CentOS: &lt;code&gt;sudo yum install -y curl&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Descargar el script de instalación&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://nextdns.io/install | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configurar la CLI de NextDNS&lt;/strong&gt;:
Después de la instalación, se te solicitará ingresar tu ID de NextDNS (puedes encontrarlo en tu cuenta de NextDNS) y configurar otras opciones según tus preferencias.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8iyhposc3lf3qlm2yi7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8iyhposc3lf3qlm2yi7.png" alt="Cómo encontrar tu id de nextdns" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Genial, pero eso funciona solo en mi computadora 😕&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Entiendo tu preocupación. La instalación de la CLI de NextDNS en tu computadora es útil, pero no es suficiente si deseas que todos los dispositivos de tu red puedan beneficiarse del bloqueo de contenido y publicidad. 🤯&lt;/p&gt;

&lt;p&gt;Para configurar NextDNS como un servicio al que puedan conectarse todos los dispositivos de tu red a través del puerto 53, debes seguir estos pasos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nextdns &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-profile&lt;/span&gt; &amp;lt;tu_id_de_nextdns&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-report-client-info&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-setup-router&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta línea de comando instalará NextDNS como un servicio en tu sistema y lo configurará para que actúe como un servidor DNS local. Además, incluye las siguientes opciones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-profile &amp;lt;tu_id_de_nextdns&amp;gt;&lt;/code&gt;: Reemplaza &lt;code&gt;&amp;lt;tu_id_de_nextdns&amp;gt;&lt;/code&gt; con tu identificador de NextDNS, que puedes encontrar en tu cuenta.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-report-client-info&lt;/code&gt;: Esta opción permite que NextDNS recopile información sobre los dispositivos conectados a tu red, lo que puede ser útil para fines de monitoreo y análisis.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-setup-router&lt;/code&gt;: Esta opción configura automáticamente tu router para que utilice el servidor DNS local proporcionado por NextDNS. Esto garantiza que todos los dispositivos conectados a tu red utilicen NextDNS para la resolución de nombres de dominio.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Una vez que hayas ejecutado este comando, NextDNS estará configurado como un servicio en tu sistema y actuará como un servidor DNS local. Todos los dispositivos conectados a tu red utilizarán automáticamente este servidor DNS (siempre y cuando lo configures en tu router), lo que les permitirá beneficiarse del bloqueo de contenido y publicidad proporcionado por NextDNS. 🎉&lt;/p&gt;

&lt;p&gt;Es importante tener en cuenta que esta configuración puede requerir algunos pasos adicionales, como la apertura del puerto 53 en tu cortafuegos y la configuración adecuada de tu router.&lt;/p&gt;

&lt;p&gt;Ahora solo necesitas apuntar tus dispositivos a la ip que te asignó tu router.&lt;/p&gt;

&lt;p&gt;Puedes comprobarla con&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ipconfig &lt;span class="c"&gt;# en windows &lt;/span&gt;

ip a &lt;span class="c"&gt;# en linux &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y luego en tus configuraciones asignarla &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncl19lwguo06elfgy9ph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncl19lwguo06elfgy9ph.png" alt="Cambiar dns en windows" width="771" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Genial, pero si mi pc está apagada ¿qué hago? 🤔&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué pasa si mi PC está apagada? 💤
&lt;/h2&gt;

&lt;p&gt;NextDNS ofrece varias opciones amigables para este escenario:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dispositivos móviles: Puedes utilizar la aplicación de NextDNS para Android o iOS sin problemas. 📱&lt;/li&gt;
&lt;li&gt;PC conectado a la red: Puedes configurar manualmente las direcciones IP de los servidores DNS de NextDNS. Sin embargo, NextDNS necesitará conocer tu dirección IP pública para aplicar la configuración correcta. (Si tienes IPv6, este problema no aplica, pero la mayoría de los usuarios aún no cuentan con IPv6).&lt;/li&gt;
&lt;li&gt;Dispositivo dedicado: Para un servicio DNS local 24/7, se recomienda instalar NextDNS en un dispositivo dedicado como una Raspberry Pi (se recomienda una Raspberry Pi 3 o superior). 🍓&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Existiendo tantas opciones, ¿Por qué CLI en mi red? 🤷‍♂️
&lt;/h2&gt;

&lt;p&gt;Ejecutar la CLI de NextDNS en mi red me brinda varias ventajas significativas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Caché de DNS&lt;/strong&gt;: Al almacenar en caché las solicitudes de DNS, puedo reducir la latencia y mejorar el rendimiento de la resolución de nombres de dominio en mi red local. ⚡&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dispositivos&lt;/strong&gt;: La capacidad de identificar mis dispositivos utilizando el archivo &lt;code&gt;/etc/hosts&lt;/code&gt;. 🖥️&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44fttkj2ifjkolmfmg21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44fttkj2ifjkolmfmg21.png" alt="etc hosts" width="518" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Independencia de la dirección IP&lt;/strong&gt;: Al no depender de una dirección IP estática, la CLI de NextDNS se adapta automáticamente a los cambios en mi dirección IP, lo que me evita tener que actualizar manualmente la configuración cada vez que se produzca un cambio. 🌐&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encriptación&lt;/strong&gt;: La comunicación entre la CLI de NextDNS y los servidores de NextDNS está encriptada, lo que garantiza la privacidad y seguridad de mis solicitudes de DNS. 🔒&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n1if6cep5li2sthn1sn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n1if6cep5li2sthn1sn.png" alt="Consultas encriptadas" width="574" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perfecto, ahora que la CLI de NextDNS se encuentra en un servidor de tu red local, solo debes apuntar tus dispositivos a la dirección IP asignada a la máquina que sirve NextDNS. Aún mejor, puedes modificar la configuración de DNS en tu router, así te aseguras de que todos los dispositivos conectados estarán utilizando tu servidor DNS sin publicidades de forma automática. 🙌&lt;/p&gt;

&lt;p&gt;Para complementar esta solución y disfrutar de una experiencia de navegación web aún más libre de anuncios molestos, te recomiendo utilizar un navegador web confiable como Firefox o Edge, junto con la extensión &lt;a href="https://ublockorigin.com/es"&gt;uBlock Origin&lt;/a&gt;. Esta combinación te mantendrá alejado de la mayoría de los anuncios y contenido no deseado. 🦊🌐&lt;/p&gt;

&lt;p&gt;Si utilizas navegadores como Brave u Opera, que ya incluyen bloqueadores de anuncios incorporados, no será necesario instalar extensiones adicionales. 👍&lt;/p&gt;

&lt;p&gt;Es importante desactivar la opción de "DNS sobre HTTPS" (DoH) o "DNS seguro" en la configuración de tu navegador web. Esto evitará que el navegador utilice sus propios servidores DNS y se "sobrescriba" la configuración del servidor DNS local que has establecido con NextDNS. 🔍&lt;/p&gt;

</description>
      <category>dns</category>
      <category>nextdns</category>
      <category>adblock</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Integra múltiples APIs de IA en una sola plataforma</title>
      <dc:creator>Sebas Álvaro</dc:creator>
      <pubDate>Fri, 19 Apr 2024 17:22:26 +0000</pubDate>
      <link>https://dev.to/alvarosdev/integra-multiples-apis-de-ia-en-una-sola-plataforma-3m5a</link>
      <guid>https://dev.to/alvarosdev/integra-multiples-apis-de-ia-en-una-sola-plataforma-3m5a</guid>
      <description>&lt;h1&gt;
  
  
  Mi Problema con OpenAi y la experiencia web
&lt;/h1&gt;

&lt;p&gt;En los últimos tiempos, he estado encantado con el servicio ChatGPT Plus de OpenAI. La velocidad de respuesta de los modelos gpt-3.5-turbo y gpt-4 es realmente impresionante, y la capacidad de obtener respuestas con información actualizada de la web (con los gpts personalizados del modelo 4) ha sido de gran ayuda en mis tareas diarias.&lt;/p&gt;

&lt;p&gt;Sin embargo, no todo ha sido perfecto. Desde el lanzamiento del modelo gpt-4, OpenAI ha limitado el número de chats que podemos tener con él a alrededor de 50 chats cada 3 horas. Esto significa que, si estás en medio de una conversación interesante con gpt-4, de repente te dirá que no puedes continuar durante 3 horas, incluso si intentas cambiar al modelo 3.5 para seguir interactuando.&lt;/p&gt;

&lt;p&gt;Intenté utilizar el chat de Bing, el cual es gratuito y aparentemente no tiene límites de uso. Sin embargo, en realidad sí tiene límites, aunque son bastante generosos por parte de Microsoft: 30 mensajes por chat.&lt;br&gt;
Quise ir un poco más allá y probar &lt;a href="https://www.microsoft.com/es-es/store/b/copilotpro"&gt;Copilot Pro&lt;/a&gt;, que cuesta aproximadamente $20 dólares al mes.&lt;/p&gt;

&lt;p&gt;Lamentablemente, no me convenció. La interfaz es la misma que la versión gratuita, solo que sin el límite de 30 mensajes por chat. Si bien la velocidad de respuesta mejora un poco, no lo suficiente como para justificar el gasto.&lt;/p&gt;

&lt;p&gt;Agradezco que Microsoft ofrezca esta "alternativa" a los modelos de lenguaje personalizados de OpenAI. Sin embargo, no es suficiente para mis necesidades, ya que no permite guardar mis chats anteriores con los asistentes personalizados. Esto resulta frustrante si recargo la página o cierro el chat por error.&lt;/p&gt;

&lt;p&gt;Afortunadamente, hay varias alternativas a OpenAI, como Claude de Anthropic, Mistral.ai, Gemini de Google, Llama2 de Meta, entre otras. Estas opciones ofrecen una amplia variedad de modelos de lenguaje de última generación que pueden competir fácilmente con GPT-4 y 3.5. Sin embargo, cambiar entre diferentes chats o playgrounds no siempre resulta amigable para el usuario. Además, algunas de estas alternativas, como Claude y Mistral, no permiten cargar documentos en sus interfaces web, lo que dificulta la interacción.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a-CUKWVp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/kQoCor9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a-CUKWVp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/kQoCor9.png" alt="" width="445" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ya antes conocía &lt;a href="https://bettergpt.chat/"&gt;BetterChatGpt&lt;/a&gt;, una interfaz gratuita para interactuar con la API de OpenAI. Sin embargo, nuevamente no me convenció completamente debido a la falta de opciones de personalización y la ausencia de soporte para otros modelos de IA.&lt;/p&gt;

&lt;p&gt;Fue entonces cuando surgió la idea de encontrar un lugar donde pudiera conectar todos estos servicios en un solo lugar. Gracias al poderoso y querido internet, me crucé con &lt;a href="https://librechat.ai/"&gt;Librechat&lt;/a&gt;, una plataforma que parecía ofrecer la solución que estaba buscando.&lt;/p&gt;
&lt;h1&gt;
  
  
  Qué es LibreChat?
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;LibreChat es una plataforma de chat de IA gratuita y de código abierto. Esta interfaz web ofrece una gran personalización, con soporte para numerosos proveedores, servicios e integraciones de IA. Brinda un único lugar para todas las conversaciones de IA, con una interfaz familiar y mejoras innovadoras, para tantos usuarios como se necesite.&lt;/p&gt;

&lt;p&gt;&lt;cite&gt;&lt;a href="https://librechat.ai/"&gt;LibreChat&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  IAs Soportadas
&lt;/h2&gt;

&lt;p&gt;Si buscas tener todos tus servicios en un solo lugar, Librechat ofrece compatibilidad con &lt;strong&gt;múltiples API&lt;/strong&gt;, incluyendo algunas de las más populares:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nombre&lt;/th&gt;
&lt;th&gt;Precio&lt;/th&gt;
&lt;th&gt;Límites y Otros Comentarios&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Pay as you go&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Pay as you go&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;Gratis de momento&lt;/td&gt;
&lt;td&gt;Posibles cobros en el futuro (no verificado)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral&lt;/td&gt;
&lt;td&gt;Pay as you go&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenRouter&lt;/td&gt;
&lt;td&gt;Ciertos Modelos Gratis / Pay as you go&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Groq&lt;/td&gt;
&lt;td&gt;Gratis / Pay as you go&lt;/td&gt;
&lt;td&gt;Puede tener ciertos límites en la cantidad de solicitudes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;td&gt;Self-Hosted&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  Integrando todos los servicios con OpenRouter
&lt;/h2&gt;

&lt;p&gt;Como ya sabemos, algunos de los servicios que queremos utilizar ofrecen su API de forma pública. Para acceder a ellos, necesitamos una clave de API. En este ejemplo, usaremos OpenRouter, que ofrece una amplia gama de modelos de inteligencia artificial, incluyendo algunos de los más avanzados del mercado.&lt;/p&gt;

&lt;p&gt;Imaginemos que también queremos usar los servicios de Anthropic, Mistral, Llama2, Gemini, pero no queremos estar pagando o proporcionando los datos de nuestras tarjetas de crédito a cada uno de ellos.&lt;/p&gt;

&lt;p&gt;La solución que OpenRouter ofrece es un servicio de proxy para las APIs de los otros proveedores. De esta forma, podemos usar OpenRouter como intermediario para acceder a los servicios de los otros proveedores sin tener que preocuparnos por los límites de uso.&lt;/p&gt;

&lt;p&gt;OpenRouter nos ofrece modelos gratuitos con límites bastante generosos, así como modelos de pago que nos permiten hacer uso de ellos prácticamente sin restricciones. Esto nos brinda flexibilidad y control sobre los recursos que utilizamos, sin tener que lidiar directamente con las políticas y limitaciones de cada proveedor por separado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tZ-uJzKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/CKuzJgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tZ-uJzKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/CKuzJgc.png" alt="" width="321" height="315"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Primero lo primero, obtener nuestra clave de OpenRouter
&lt;/h2&gt;

&lt;p&gt;Nos vamos a dirigir al sitio de &lt;a href="https://openrouter.ai/"&gt;OpenRouter&lt;/a&gt; y nos registraremos de forma gratuita. Si te acomoda usar tu cuenta de Google, puedes hacerlo.&lt;br&gt;
Una vez con nuestra cuenta creada, vamos a la sección de &lt;a href="https://openrouter.ai/keys"&gt;Key&lt;/a&gt; y le damos en &lt;strong&gt;Create Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1YsQsSSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/mC6m2TL.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1YsQsSSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/mC6m2TL.png" alt="" width="403" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos asignar un nombre y la cantidad de créditos que queremos destinar a cada servicio. Los créditos están en dólares, por lo que es importante tener cuidado con la cantidad que asignamos.&lt;/p&gt;

&lt;p&gt;Si no quieres gastar nada y deseas utilizar únicamente los modelos gratuitos, puedes asignarle 1 crédito o dejar el campo en blanco. Sin embargo, te recomiendo asignar 1 crédito, ya que dejar el campo en blanco significa que el servicio podrá utilizar créditos de forma ilimitada, lo cual podría generar costos inesperados.&lt;/p&gt;

&lt;p&gt;De esta manera, puedes tener un control más preciso sobre los recursos que asignas a cada servicio, evitando gastos excesivos y manteniendo el uso de los modelos gratuitos cuando sea apropiado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NL_dZ4nv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/aXXwJWO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NL_dZ4nv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/aXXwJWO.png" alt="" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez nos retorne nuestra key, debemos guardarla en un lugar seguro. No la compartas con nadie, ya que con ella podrán hacer uso de tus creditos. Además que una vez cerrada la ventana, &lt;strong&gt;no podrás verla de nuevo.&lt;/strong&gt;&lt;br&gt;
No te preocupes si no tienes créditos, podrás usar los modelos gratuitos sin problemas.&lt;/p&gt;

&lt;p&gt;¡Listo!, ya tenemos nuestra key. El siguiente paso, es instalar ¡¡LibreChat!!&lt;/p&gt;
&lt;h1&gt;
  
  
  Instalando LibreChat 🎊
&lt;/h1&gt;

&lt;p&gt;Este paso puede ser un poco más avanzado. Si no te sientes cómodo usando Linux y Docker, o no tienes un servidor donde instalarlo, puedes optar por las alternativas de implementación que se ofrecen en el &lt;a href="https://github.com/danny-avila/LibreChat/blob/main/README.md"&gt;repositorio de LibreChat&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Estas opciones te permiten desplegar LibreChat sin necesidad de configurar un entorno Linux y Docker por tu cuenta. Esto puede ser especialmente útil si tienes experiencia limitada en estos ámbitos o si simplemente prefieres una solución más sencilla y lista para usar.&lt;/p&gt;

&lt;p&gt;Revisa las diferentes alternativas disponibles en el repositorio y elige la que mejor se adapte a tus necesidades y nivel de experiencia. Esto te permitirá disfrutar de los beneficios de LibreChat sin tener que lidiar con los detalles técnicos más complejos.&lt;/p&gt;
&lt;h2&gt;
  
  
  Requerimientos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docker &lt;/li&gt;
&lt;li&gt;Docker Compose&lt;/li&gt;
&lt;li&gt;Linux (o WSL en Windows)&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para nuestro caso, vamos a instalar LibreChat en una maquina virtual Linux con Docker bajo WSL 2. Si no sabes qué es WSL, te recomiendo leer &lt;a href="https://learn.microsoft.com/es-es/windows/wsl/about"&gt;este artículo&lt;/a&gt;.&lt;br&gt;
En la actualidad instalar WSL es tan sencillo como ir a la Store de Microsoft y buscar WSL o Ubuntu. El resto del proceso es bastante intuitivo y automático.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Si no tienes WSL y usas directamente Linux, puedes continuar directamente con la instalación de Docker.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Instalamos Docker y Git
&lt;/h2&gt;

&lt;p&gt;Una vez tengas WSL instalado, abre una terminal y ejecuta los siguientes comandos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;git &lt;span class="nt"&gt;-y&lt;/span&gt;

&lt;span class="c"&gt;# Add Docker's official GPG key:&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;ca-certificates curl
&lt;span class="nb"&gt;sudo install&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt; 0755 &lt;span class="nt"&gt;-d&lt;/span&gt; /etc/apt/keyrings
&lt;span class="nb"&gt;sudo &lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://download.docker.com/linux/ubuntu/gpg &lt;span class="nt"&gt;-o&lt;/span&gt; /etc/apt/keyrings/docker.asc
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;a+r /etc/apt/keyrings/docker.asc

&lt;span class="c"&gt;# Add the repository to Apt sources:&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"deb [arch=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;dpkg &lt;span class="nt"&gt;--print-architecture&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
  &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; /etc/os-release &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$VERSION_CODENAME&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; stable"&lt;/span&gt; | &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/apt/sources.list.d/docker.list &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Seguimos los pasos post-instalación de Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;groupadd docker
&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="nv"&gt;$USER&lt;/span&gt;
newgrp docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y verificamos que todo está ok con:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalamos Docker Compose (Opcional)
&lt;/h2&gt;

&lt;p&gt;Actualmente, no es necesario instalar Docker Compose por separado, ya que viene incluido en la instalación de Docker. Sin embargo, si deseas instalarlo de forma independiente, puedes hacerlo utilizando los siguientes comandos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;docker-compose &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cabe mencionar que este proceso nos instalará una versión antigua de Docker Compose, la cual se ejecuta con el comando &lt;code&gt;docker-compose&lt;/code&gt;. En contraste, la versión más reciente se ejecuta utilizando el comando &lt;code&gt;docker compose&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creando Nuestro entorno para LibreChat
&lt;/h2&gt;

&lt;p&gt;Una vez que todo esté funcionando y hayamos confirmado que Docker está instalado, procederemos a obtener nuestro archivo &lt;code&gt;docker-compose.yml&lt;/code&gt; desde el repositorio de LibreChat.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/danny-avila/LibreChat.git
&lt;span class="nb"&gt;cd &lt;/span&gt;LibreChat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora, crearemos nuestro archivo &lt;code&gt;.env&lt;/code&gt; con las variables de entorno necesarias para LibreChat.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez que tengamos nuestro archivo &lt;code&gt;.env&lt;/code&gt; creado, procederemos a levantar nuestros contenedores con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Obteniendo un resultado similar a:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;❯ docker compose up -d
WARN[0000] The "UID" variable is not set. Defaulting to a blank string.
WARN[0000] The "GID" variable is not set. Defaulting to a blank string.
WARN[0000] The "UID" variable is not set. Defaulting to a blank string.
WARN[0000] The "GID" variable is not set. Defaulting to a blank string.
WARN[0000] The "UID" variable is not set. Defaulting to a blank string.
WARN[0000] The "GID" variable is not set. Defaulting to a blank string.
WARN[0000] /home/alvarosdev/Repos/LibreChat/docker-compose.yml: `version` is obsolete
[+] Running 64/35
 ✔ rag_api Pulled                                                                                                                  26.9s
 ✔ mongodb Pulled                                                                                                                  30.0s
 ✔ meilisearch Pulled                                                                                                              23.9s
 ✔ api Pulled                                                                                                                      37.9s
 ✔ vectordb Pulled

 [+] Running 7/7
 ✔ Network librechat_default       Created                                                                                          0.1s
 ✔ Volume "librechat_pgdata2"      Created                                                                                          0.0s
 ✔ Container librechat-vectordb-1  Started                                                                                          0.6s
 ✔ Container chat-mongodb          Started                                                                                          0.6s
 ✔ Container chat-meilisearch      Started                                                                                          0.6s
 ✔ Container librechat-rag_api-1   Started                                                                                          0.0s
 ✔ Container LibreChat             Started                                                                                          0.0s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;¡Excelente! Hemos completado un paso más en nuestro proceso de experimentación/instalación.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando LibreChat
&lt;/h2&gt;

&lt;p&gt;LibreChat se está ejecutando en nuestro contenedor de Docker y está listo para que nos registremos. Para ello, abriremos nuestro navegador y accederemos a la dirección &lt;a href="http://localhost:3080/login"&gt;http://localhost:3080/login&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Procederemos a registrar una cuenta utilizando el correo electrónico que deseemos y una contraseña segura. Una vez completado este paso, se iniciará sesión de forma automática.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GlyVqA5q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/lZEUMhf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GlyVqA5q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/lZEUMhf.png" alt="" width="800" height="924"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fe_UgowW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/HXqrtjl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fe_UgowW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/HXqrtjl.png" alt="" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Activando OpenRouter
&lt;/h2&gt;

&lt;p&gt;Recordarás que en los pasos anteriores guardamos la clave de OpenRouter. Ahora es el momento de utilizarla. Si revisas detenidamente la interfaz de LibreChat, no verás OpenRouter por ningún lado. Esto se debe a que debemos activarlo en nuestras variables de entorno.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v7YI_Ocy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/08UW1K7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v7YI_Ocy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/08UW1K7.png" alt="" width="573" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Editamos nuestro .env
&lt;/h3&gt;

&lt;p&gt;Recordarás que anteriormente también hicimos una copia de nuestro archivo &lt;code&gt;.env.example&lt;/code&gt; y la renombramos como &lt;code&gt;.env&lt;/code&gt;. Ahora es el momento de editar este archivo e incluir nuestra clave de OpenRouter.&lt;/p&gt;

&lt;p&gt;En la línea &lt;code&gt;69&lt;/code&gt; de nuestro archivo &lt;code&gt;.env&lt;/code&gt;, agregaremos nuestra clave de OpenRouter, asegurándote de eliminar el carácter &lt;code&gt;#&lt;/code&gt; al inicio de la línea.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# SHUTTLEAI_KEY=
OPENROUTER_KEY=sk-or-v1-707...d5f   &amp;lt;---- aquí va nuestra key
# MISTRAL_API_KEY=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la linea &lt;code&gt;58&lt;/code&gt; de nuestro archivo, vamos a agregar &lt;code&gt;OpenRouter&lt;/code&gt; al final de la lista, y vamos a quitar el &lt;code&gt;#&lt;/code&gt; al inicio de la linea.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ENDPOINTS=openAI,assistants,azureOpenAI,bingAI,google,gptPlugins,anthropic,OpenRouter   &amp;lt;---- aquí agregamos OpenRouter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego, vamos a modificar nuestro archivo &lt;code&gt;librechat.yaml&lt;/code&gt;, el cual debemos obtener de &lt;code&gt;librechat.yaml.example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;librechat.yaml.example librechat.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Abriremos nuestro archivo &lt;code&gt;docker-compose.yml&lt;/code&gt; y, en la línea &lt;code&gt;30&lt;/code&gt;, realizaremos las siguientes modificaciones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bind&lt;/span&gt;
        &lt;span class="s"&gt;source&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./.env&lt;/span&gt;
        &lt;span class="s"&gt;target&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/app/.env&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./images:/app/client/public/images&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./logs:/app/api/logs&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./librechat.yaml:/app/librechat.yaml&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;---- Agregamos esta linea&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora, accederemos a la URL &lt;a href="http://localhost:3080/login"&gt;http://localhost:3080/login&lt;/a&gt; y veremos que OpenRouter ya está disponible para su uso.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t8L8yWlj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/WBSOskM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t8L8yWlj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/WBSOskM.png" alt="" width="646" height="958"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dato importante: Si agregamos nuestra clave en la variable de entorno &lt;code&gt;OPENROUTER_API_KEY&lt;/code&gt;, no será necesario modificar los archivos &lt;code&gt;librechat.yaml&lt;/code&gt; ni &lt;code&gt;docker-compose.yml&lt;/code&gt;. Sin embargo, en este caso, no podremos utilizar los modelos de OpenAI si lo deseáramos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si observamos detenidamente, también se han activado los endpoints de Mistral y Groq. Si deseamos utilizarlos, solo debemos agregar las claves correspondientes en el archivo &lt;code&gt;.env&lt;/code&gt;, de la misma manera que lo hicimos con OpenRouter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usando los modelos grátis de OpenRouter
&lt;/h2&gt;

&lt;p&gt;¿Te has fijado en algo interesante? Tenemos a nuestra disposición una cantidad impresionante de modelos, varios de los cuales son gratuitos. Si no tienes créditos en OpenRouter, puedes utilizar estos modelos sin problemas. Siempre y cuando no abusemos de ellos, no deberíamos enfrentar inconvenientes.&lt;/p&gt;

&lt;p&gt;Podemos encontrar los modelos gratuitos con el sufijo &lt;code&gt;:free&lt;/code&gt; en la lista de modelos disponibles. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0VeHFGZM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/d5Gov0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0VeHFGZM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/d5Gov0a.png" alt="" width="719" height="790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hagamos una pequeña prueba. Utilizaremos el modelo &lt;code&gt;google/gemma-7b-it:free&lt;/code&gt;, el cual es un modelo de lenguaje de Google similar a GPT-3. En el menú superior, al lado del nombre de OpenRouter, seleccionaremos &lt;code&gt;google/gemma-7b-it:free&lt;/code&gt; y escribiremos algo como "Hola, ¿cómo estás?".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r1eNTwNU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/HjofqVn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r1eNTwNU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/HjofqVn.png" alt="" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora vamos a cambiar de modelo, sin perder el contexto de la conversación. Seleccionamos &lt;code&gt;mistralai/mistral-7b-instruct:free&lt;/code&gt; y luego escribimos algo como &lt;code&gt;¿Qué es un perro?&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6L7bjwCi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/ITAptVh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6L7bjwCi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/ITAptVh.png" alt="" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notaremos que gran parte de los modelos gratuitos a veces pueden generar respuestas extrañas, pero en general son bastante buenos. Si deseamos utilizar los modelos de pago, deberemos tener créditos en nuestra cuenta de OpenRouter.&lt;/p&gt;

&lt;p&gt;Para ejemplificar, utilizaremos uno de los modelos de pago más esperados de Google, &lt;code&gt;google/gemini-pro-1.5&lt;/code&gt;. Si seleccionamos este modelo, veremos que nos solicitará créditos para poder usarlo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KVhPM-LJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/fa7ue0W.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KVhPM-LJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/fa7ue0W.png" alt="" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: Chateando con nuestros PDFs
&lt;/h2&gt;

&lt;p&gt;Un dato interesante y no menos importante es que podemos interactuar con nuestros documentos, como PDFs e imágenes, a través de LibreChat. Para ello, simplemente deberemos arrastrar y soltar el archivo en la interfaz de LibreChat.&lt;/p&gt;

&lt;p&gt;Voy a utilizar un documento de prueba que he encontrado en &lt;a href="https://obtienearchivo.bcn.cl/obtienearchivo?id=repositorio/10221/28751/1/BCN_Neutralidad_de_la_Red_y_zero_rating_edPM.pdf"&gt;este enlace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lamentablemente, para que LibreChat pueda procesar nuestros documentos, será necesario contar con una clave de OpenAI 😢 (que incluya créditos). Sin embargo, esto nos brindará la ventaja de poder utilizar casi cualquier modelo para analizar nuestros documentos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uIj5FyEo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/AotdnpG.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uIj5FyEo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/AotdnpG.png" alt="" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A diferencia de los modelos de texto, con los modelos compatibles con visión, como Claude3, Gemini Pro 1.5, GPT4V, entre otros, podremos analizar imágenes sin problemas y sin necesidad de contar con una clave de OpenAI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7JmBJufc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/kRmzGXs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7JmBJufc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/kRmzGXs.png" alt="" width="800" height="1002"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Eso es todo...(?)
&lt;/h1&gt;

&lt;p&gt;Mi experiencia con LibreChat ha sido realmente satisfactoria. Después de lidiar con las limitaciones y problemas que enfrentaba con servicios como OpenAI y Bing, encontré en LibreChat la solución que estaba buscando.&lt;/p&gt;

&lt;p&gt;La interfaz es realmente amigable y personalizable. Puedo cambiar fácilmente entre diferentes modelos de IA sin perder el contexto de la conversación, lo cual ha sido un gran alivio.&lt;/p&gt;

&lt;p&gt;En general, LibreChat ha sido la solución que necesitaba para gestionar de manera centralizada y eficiente mis interacciones con múltiples asistentes de IA. Estoy realmente satisfecho con los resultados y lo recomiendo encarecidamente a cualquiera que esté buscando una plataforma integral y conveniente para sus necesidades de IA.&lt;/p&gt;

&lt;h1&gt;
  
  
  Un dato algo offtopic
&lt;/h1&gt;

&lt;p&gt;El modelo Mistral8x7b, siendo muy ligero y "económico", me ha sorprendido gratamente por su velocidad de respuesta y su capacidad para generar código e interpretar documentos sin consumir tantos tokens.&lt;/p&gt;

&lt;p&gt;Por otro lado, los modelos de Anthropic, Claude 3 en sus versiones Haiku, Sonnet y Opus, son simplemente impresionantes. Estos tres modelos tienen la habilidad de generar texto de alta calidad, interpretar documentos con una precisión bastante interesante, e incluso comprender imágenes. ¡Incluso han logrado entender memes! 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8L5STvaH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/eFwH51G.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8L5STvaH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/eFwH51G.png" alt="" width="800" height="861"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>web</category>
      <category>chat</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
