Instalación de Character AI en EasyPanel con Streamlit

Instalación de Character AI en EasyPanel con Streamlit
  • Save

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”

  • Save

– Selecciona Compose y escribe un nombre para tu servicio (por ejemplo, “character_ai”)

  • Save
  • Save

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.
  • Save

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

  • Save

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
  • Save

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.

  • Save
  • 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