An Interest In:
Web News this Week
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
Integra mltiples APIs de IA en una sola plataforma
Mi Problema con OpenAi y la experiencia web
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 informacin actualizada de la web (con los gpts personalizados del modelo 4) ha sido de gran ayuda en mis tareas diarias.
Sin embargo, no todo ha sido perfecto. Desde el lanzamiento del modelo gpt-4, OpenAI ha limitado el nmero de chats que podemos tener con l a alrededor de 50 chats cada 3 horas. Esto significa que, si ests en medio de una conversacin 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.
Intent utilizar el chat de Bing, el cual es gratuito y aparentemente no tiene lmites de uso. Sin embargo, en realidad s tiene lmites, aunque son bastante generosos por parte de Microsoft: 30 mensajes por chat.
Quise ir un poco ms all y probar Copilot Pro, que cuesta aproximadamente $20 dlares al mes.
Lamentablemente, no me convenci. La interfaz es la misma que la versin gratuita, solo que sin el lmite de 30 mensajes por chat. Si bien la velocidad de respuesta mejora un poco, no lo suficiente como para justificar el gasto.
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 pgina o cierro el chat por error.
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 generacin que pueden competir fcilmente con GPT-4 y 3.5. Sin embargo, cambiar entre diferentes chats o playgrounds no siempre resulta amigable para el usuario. Adems, algunas de estas alternativas, como Claude y Mistral, no permiten cargar documentos en sus interfaces web, lo que dificulta la interaccin.
Ya antes conoca BetterChatGpt, una interfaz gratuita para interactuar con la API de OpenAI. Sin embargo, nuevamente no me convenci completamente debido a la falta de opciones de personalizacin y la ausencia de soporte para otros modelos de IA.
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 Librechat, una plataforma que pareca ofrecer la solucin que estaba buscando.
Qu es LibreChat?
LibreChat es una plataforma de chat de IA gratuita y de cdigo abierto. Esta interfaz web ofrece una gran personalizacin, 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.
IAs Soportadas
Si buscas tener todos tus servicios en un solo lugar, Librechat ofrece compatibilidad con mltiples API, incluyendo algunas de las ms populares:
Nombre | Precio | Lmites y Otros Comentarios |
---|---|---|
OpenAI | Pay as you go | - |
Anthropic | Pay as you go | - |
Gemini | Gratis de momento | Posibles cobros en el futuro (no verificado) |
Mistral | Pay as you go | - |
OpenRouter | Ciertos Modelos Gratis / Pay as you go | - |
Groq | Gratis / Pay as you go | Puede tener ciertos lmites en la cantidad de solicitudes |
Ollama | Self-Hosted | - |
Integrando todos los servicios con OpenRouter
Como ya sabemos, algunos de los servicios que queremos utilizar ofrecen su API de forma pblica. 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 ms avanzados del mercado.
Imaginemos que tambin queremos usar los servicios de Anthropic, Mistral, Llama2, Gemini, pero no queremos estar pagando o proporcionando los datos de nuestras tarjetas de crdito a cada uno de ellos.
La solucin 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 lmites de uso.
OpenRouter nos ofrece modelos gratuitos con lmites bastante generosos, as como modelos de pago que nos permiten hacer uso de ellos prcticamente sin restricciones. Esto nos brinda flexibilidad y control sobre los recursos que utilizamos, sin tener que lidiar directamente con las polticas y limitaciones de cada proveedor por separado.
Primero lo primero, obtener nuestra clave de OpenRouter
Nos vamos a dirigir al sitio de OpenRouter y nos registraremos de forma gratuita. Si te acomoda usar tu cuenta de Google, puedes hacerlo.
Una vez con nuestra cuenta creada, vamos a la seccin de Key y le damos en Create Key
Podemos asignar un nombre y la cantidad de crditos que queremos destinar a cada servicio. Los crditos estn en dlares, por lo que es importante tener cuidado con la cantidad que asignamos.
Si no quieres gastar nada y deseas utilizar nicamente los modelos gratuitos, puedes asignarle 1 crdito o dejar el campo en blanco. Sin embargo, te recomiendo asignar 1 crdito, ya que dejar el campo en blanco significa que el servicio podr utilizar crditos de forma ilimitada, lo cual podra generar costos inesperados.
De esta manera, puedes tener un control ms preciso sobre los recursos que asignas a cada servicio, evitando gastos excesivos y manteniendo el uso de los modelos gratuitos cuando sea apropiado.
Una vez nos retorne nuestra key, debemos guardarla en un lugar seguro. No la compartas con nadie, ya que con ella podrn hacer uso de tus creditos. Adems que una vez cerrada la ventana, no podrs verla de nuevo.
No te preocupes si no tienes crditos, podrs usar los modelos gratuitos sin problemas.
Listo!, ya tenemos nuestra key. El siguiente paso, es instalar LibreChat!!
Instalando LibreChat
Este paso puede ser un poco ms avanzado. Si no te sientes cmodo usando Linux y Docker, o no tienes un servidor donde instalarlo, puedes optar por las alternativas de implementacin que se ofrecen en el repositorio de LibreChat.
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 solucin ms sencilla y lista para usar.
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 tcnicos ms complejos.
Requerimientos
- Docker
- Docker Compose
- Linux (o WSL en Windows)
- Git
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 este artculo.
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 automtico.
Si no tienes WSL y usas directamente Linux, puedes continuar directamente con la instalacin de Docker.
Instalamos Docker y Git
Una vez tengas WSL instalado, abre una terminal y ejecuta los siguientes comandos:
sudo apt-get updatesudo apt-get install git -y# Add Docker's official GPG key:sudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources:echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Seguimos los pasos post-instalacin de Docker:
sudo groupadd dockersudo usermod -aG docker $USERnewgrp docker
Y verificamos que todo est ok con:
docker run hello-world
Instalamos Docker Compose (Opcional)
Actualmente, no es necesario instalar Docker Compose por separado, ya que viene incluido en la instalacin de Docker. Sin embargo, si deseas instalarlo de forma independiente, puedes hacerlo utilizando los siguientes comandos:
sudo apt install docker-compose -y
Cabe mencionar que este proceso nos instalar una versin antigua de Docker Compose, la cual se ejecuta con el comando docker-compose
. En contraste, la versin ms reciente se ejecuta utilizando el comando docker compose
.
Creando Nuestro entorno para LibreChat
Una vez que todo est funcionando y hayamos confirmado que Docker est instalado, procederemos a obtener nuestro archivo docker-compose.yml
desde el repositorio de LibreChat.
git clone https://github.com/danny-avila/LibreChat.gitcd LibreChat
Ahora, crearemos nuestro archivo .env
con las variables de entorno necesarias para LibreChat.
cp .env.example .env
Una vez que tengamos nuestro archivo .env
creado, procederemos a levantar nuestros contenedores con el siguiente comando:
docker compose up -d
Obteniendo un resultado similar a:
docker compose up -dWARN[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
Excelente! Hemos completado un paso ms en nuestro proceso de experimentacin/instalacin.
Configurando LibreChat
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 direccin http://localhost:3080/login.
Procederemos a registrar una cuenta utilizando el correo electrnico que deseemos y una contrasea segura. Una vez completado este paso, se iniciar sesin de forma automtica.
Activando OpenRouter
Recordars que en los pasos anteriores guardamos la clave de OpenRouter. Ahora es el momento de utilizarla. Si revisas detenidamente la interfaz de LibreChat, no vers OpenRouter por ningn lado. Esto se debe a que debemos activarlo en nuestras variables de entorno.
Editamos nuestro .env
Recordars que anteriormente tambin hicimos una copia de nuestro archivo .env.example
y la renombramos como .env
. Ahora es el momento de editar este archivo e incluir nuestra clave de OpenRouter.
En la lnea 69
de nuestro archivo .env
, agregaremos nuestra clave de OpenRouter, asegurndote de eliminar el carcter #
al inicio de la lnea.
# SHUTTLEAI_KEY=OPENROUTER_KEY=sk-or-v1-707...d5f <---- aqu va nuestra key# MISTRAL_API_KEY=
En la linea 58
de nuestro archivo, vamos a agregar OpenRouter
al final de la lista, y vamos a quitar el #
al inicio de la linea.
ENDPOINTS=openAI,assistants,azureOpenAI,bingAI,google,gptPlugins,anthropic,OpenRouter <---- aqu agregamos OpenRouter
Luego, vamos a modificar nuestro archivo librechat.yaml
, el cual debemos obtener de librechat.yaml.example
:
cp librechat.yaml.example librechat.yaml
Abriremos nuestro archivo docker-compose.yml
y, en la lnea 30
, realizaremos las siguientes modificaciones:
volumes: - type: bind source: ./.env target: /app/.env - ./images:/app/client/public/images - ./logs:/app/api/logs - ./librechat.yaml:/app/librechat.yaml # <---- Agregamos esta linea
Ahora, accederemos a la URL http://localhost:3080/login y veremos que OpenRouter ya est disponible para su uso.
Dato importante: Si agregamos nuestra clave en la variable de entorno
OPENROUTER_API_KEY
, no ser necesario modificar los archivoslibrechat.yaml
nidocker-compose.yml
. Sin embargo, en este caso, no podremos utilizar los modelos de OpenAI si lo deseramos.
Si observamos detenidamente, tambin se han activado los endpoints de Mistral y Groq. Si deseamos utilizarlos, solo debemos agregar las claves correspondientes en el archivo .env
, de la misma manera que lo hicimos con OpenRouter.
Usando los modelos grtis de OpenRouter
Te has fijado en algo interesante? Tenemos a nuestra disposicin una cantidad impresionante de modelos, varios de los cuales son gratuitos. Si no tienes crditos en OpenRouter, puedes utilizar estos modelos sin problemas. Siempre y cuando no abusemos de ellos, no deberamos enfrentar inconvenientes.
Podemos encontrar los modelos gratuitos con el sufijo :free
en la lista de modelos disponibles.
Hagamos una pequea prueba. Utilizaremos el modelo google/gemma-7b-it:free
, el cual es un modelo de lenguaje de Google similar a GPT-3. En el men superior, al lado del nombre de OpenRouter, seleccionaremos google/gemma-7b-it:free
y escribiremos algo como "Hola, cmo ests?".
Ahora vamos a cambiar de modelo, sin perder el contexto de la conversacin. Seleccionamos mistralai/mistral-7b-instruct:free
y luego escribimos algo como Qu es un perro?
.
Notaremos que gran parte de los modelos gratuitos a veces pueden generar respuestas extraas, pero en general son bastante buenos. Si deseamos utilizar los modelos de pago, deberemos tener crditos en nuestra cuenta de OpenRouter.
Para ejemplificar, utilizaremos uno de los modelos de pago ms esperados de Google, google/gemini-pro-1.5
. Si seleccionamos este modelo, veremos que nos solicitar crditos para poder usarlo.
Bonus: Chateando con nuestros PDFs
Un dato interesante y no menos importante es que podemos interactuar con nuestros documentos, como PDFs e imgenes, a travs de LibreChat. Para ello, simplemente deberemos arrastrar y soltar el archivo en la interfaz de LibreChat.
Voy a utilizar un documento de prueba que he encontrado en este enlace.
Lamentablemente, para que LibreChat pueda procesar nuestros documentos, ser necesario contar con una clave de OpenAI (que incluya crditos). Sin embargo, esto nos brindar la ventaja de poder utilizar casi cualquier modelo para analizar nuestros documentos.
A diferencia de los modelos de texto, con los modelos compatibles con visin, como Claude3, Gemini Pro 1.5, GPT4V, entre otros, podremos analizar imgenes sin problemas y sin necesidad de contar con una clave de OpenAI.
Eso es todo...(?)
Mi experiencia con LibreChat ha sido realmente satisfactoria. Despus de lidiar con las limitaciones y problemas que enfrentaba con servicios como OpenAI y Bing, encontr en LibreChat la solucin que estaba buscando.
La interfaz es realmente amigable y personalizable. Puedo cambiar fcilmente entre diferentes modelos de IA sin perder el contexto de la conversacin, lo cual ha sido un gran alivio.
En general, LibreChat ha sido la solucin que necesitaba para gestionar de manera centralizada y eficiente mis interacciones con mltiples 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.
Un dato algo offtopic
El modelo Mistral8x7b, siendo muy ligero y "econmico", me ha sorprendido gratamente por su velocidad de respuesta y su capacidad para generar cdigo e interpretar documentos sin consumir tantos tokens.
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 precisin bastante interesante, e incluso comprender imgenes. Incluso han logrado entender memes!
Original Link: https://dev.to/alvarosdev/integra-multiples-apis-de-ia-en-una-sola-plataforma-3m5a
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To