Character AI usando EasyPanel y Streamlit. Esta solución te permitirá ejecutar tu propia instancia de IA de conversación en un entorno controlado y accesible desde tu servidor. Vamos paso a paso . Sigue nuestros pasos detallados para habilitar un potente asistente de IA en tu servidor, lo que te permitirá construir aplicaciones interactivas y personalizadas.
Requisitos
Para este tutorial, necesitarás:
– Una cuenta de Character AI
– Un servidor con EasyPanel instalado
– Docker instalado en tu servidor
Agregar una aplicación a EasyPanel
– Inicia sesión en EasyPanel y haz clic en “Agregar Aplicación”
– Selecciona Compose y escribe un nombre para tu servicio (por ejemplo, “character_ai”)
Configuración de Docker Compose
– En el campo Source, pega el siguiente código:
services:
gpt_api:
container_name: gpt_apis
image: atorber/gpt4free:latest
ports:
- "2000:2000"
restart: always
volumes:
- ./run:/usr/src/app/run
cap_add:
- "SYS_ADMIN"
environment:
- TZ=America/Bogota
networks:
- easypanel-pruebas
networks:
easypanel-pruebas:
external: true
Guarda los cambios (Save). Al hacerlo, es probable que aparezca un error indicando que hay problemas con la configuración de Docker Compose; este error suele relacionarse con el puerto, pero no es un inconveniente importante, puedes cambiarlo así – “2100:2100”.
Configuración de Dominio y Puertos:
- Ve a la sección de “Domains” en EasyPanel y agrega los puertos 5000 y 8501 al mismo servicio y servidor.
- Puedes añadir un dominio personalizado si ya tienes uno configurado y redirigido a tu servidor.
Para asegurar que el servicio esté en la red correcta, ejecuta el siguiente comando en tu terminal:
docker network ls
Asegúrate de seleccionar la red correspondiente al servicio creado. Por ejemplo, usa la red easypanel-servicios
si aparece listada debe ser la de tu servicio. en Docker Compose Service. debes seleccionar el que te aparezca ahí en mi caso gpt_api que fue el nombre que use en container name.
Recordatorio: debes elegir la red que corresponde a tu servicio cuando añadiste un servicio te salió el nombre donde verlo, parte izquierda nombre servicio / nombre de tu app COMPOSE
Despliegue de Character AI en EasyPanel
- Una vez configurado, haz clic en el botón Deploy. Si todo está bien, debería aparecer el mensaje:
Done 2 seconds / less than a minute ago
- Una vez finalizado el despliegue, abre la consola Bash del servicio para los siguientes pasos.
Configuración de Character AI con Python
Si no tienes instalado nano, puedes instalarlo con este comando
apk add nano
apt update -y && apt upgrade - y
apt install nano
Para obtener un token siga este video: https://www.youtube.com/watch?v=Wc97QvH_MNQ
Si ya tenemos el token, abrimos el archivo
nano ia.py
import asyncio
from flask import Flask, request, jsonify
from PyCharacterAI import Client
app = Flask(__name__)
token = 'su token' # Reemplaza con tu token de Character AI
def authenticate_client():
client = Client()
asyncio.run(client.authenticate_with_token(token))
return client
@app.route('/chat', methods=['POST'])
def chat():
try:
data = request.get_json(force=True)
if not data:
return jsonify({"error": "Invalid JSON"}), 400
character_id = data.get('character_id')
message = data.get('message')
if not character_id or not message:
return jsonify({"error": "character_id and message are required"}), 400
client = authenticate_client()
chat = asyncio.run(client.create_or_continue_chat(character_id))
answer = asyncio.run(chat.send_message(message))
return jsonify({
'name': answer.src_character_name,
'text': answer.text
})
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Guarda los cambios usando CTRL + X, luego presiona Y y Enter para confirmar
Crear archivo para la interfaz de usuario con Streamlit:
En la consola, crea y edita el archivo streamlit_app.py
. Elimina el contenido actual y pega el siguiente código:
import streamlit as st
import requests
flask_api_url = 'http://localhost:5000/chat'
def get_answer_from_flask(character_id, message):
try:
response = requests.post(
flask_api_url,
json={"character_id": character_id, "message": message}
)
if response.status_code == 200:
return response.json().get('text')
else:
return f"Error: {response.status_code} - {response.json().get('error')}"
except Exception as e:
return f"Error: {str(e)}"
st.header('ChatGPT Gratis GUI via Flask')
# Input de usuario para Character ID y mensaje
character_id = st.text_input('Character ID:', 'eFF8HAxAEVRyZ8SQPNg5Mrl26EdecfekXyJ6NxZQJxM')
question = st.text_area('Pregunta lo que quieras:')
if st.button('Preguntar'):
answer = get_answer_from_flask(character_id, question)
st.markdown(f"**Respuesta:** {answer}")
Guarda el archivo y vuelve a salir de nano con CTRL + X, Y y Enter.
Instalación de Flask y PyCharacterAI:
- Instala las dependencias necesarias para Flask y PyCharacterAI:
pip install flask
pip install PyCharacterAI
python ia.py
Al ejecutar python ia.py
, deberías ver un mensaje confirmando que la aplicación Flask se está ejecutando.
Prueba de Character AI en EasyPanel
Ahora puedes acceder a tu servidor usar la web con interfaz o realizar solicitudes HTTP POST hacia tu API de IA.
- URL de ejemplo:
POST https://sud.dominio/chat
- Headers:
Content-Type: application/json
- Body:
"character_id": "tu_character_id"
"message": "tu_pregunta"
Usar la web: https://streamly.streamlit.app/
Consideraciones Finales
Este servicio consumirá aproximadamente 242.4 MB de RAM por cada cliente conectado.
Preguntas de discusión:
- ¿Has utilizado Character AI antes? ¿Cómo ha sido tu experiencia?
- ¿En qué casos de uso ves potencial para integrar Character AI en aplicaciones?
- ¿Tienes alguna sugerencia para mejorar este tutorial?
Conclusiones:
Con esta guía, has aprendido a instalar e integrar Character AI en tu servidor con EasyPanel y Streamlit. Ahora puedes aprovechar el poder de la IA conversacional para crear aplicaciones interactivas y personalizadas que transformarán la experiencia del usuario.
Siguientes entradas en el blog:
- Explorar aplicaciones avanzadas de Character AI
- Optimizar el rendimiento de las aplicaciones integradas con Character AI
- Casos de estudio de empresas que utilizan Character AI
Keywords: Character AI, EasyPanel, Streamlit, Docker Compose