Aisyah AI es un poderoso bot de telegrama construido con trabajadores de la nube que combina múltiples capacidades de IA. Puede navegar por la web, establecer recordatorios, hablar, predecir el clima, analizar imágenes y comprender los mensajes de voz. El bot mantiene el contexto en las conversaciones a través de Redis, lo que lo hace perfecto para chats privados e interacciones grupales.
? Capacidades avanzadas de IA
Herramientas inteligentes
☁️ Arquitectura moderna
? Integraciones de API
Hemos elegido apoyar exclusivamente modelos Operai (particularmente GPT-3.5-Turbo y GPT-4O-Mini) por varias razones:
Nota: Entendemos el interés en modelos y proveedores alternativos (como OpenRouter, antrópico, etc.). Sin embargo, para mantener la simplicidad del código y garantizar un comportamiento de bot constante, hemos decidido centrarnos en las ofertas de OpenAI. Si necesita usar diferentes modelos, deberá desembolsar el proyecto y modificar las configuraciones del modelo en consecuencia.
/start
: comience la interacción con el bot/settings
- Configurar configuraciones de bot (modelo LLM, personalidad, voz, etc.)/help
: obtenga ayuda sobre los comandos disponiblesNota : Este es un proyecto personal diseñado para fines de aprendizaje y experimentación.
El proyecto está organizado en varios microservicios:
aisyah-ai-telegraph
: orquestador principal que maneja las interacciones de telegramaaisyah-ai-agent
: agente de IA central que procesa las solicitudesaisyah-ai-explorer
: capacidad de navegación webaisyah-ai-reminder
: gestión de recordatorioaisyah-ai-sonata
: servicio de texto a vozaisyah-ai-storm
: predicción meteorológicaaisyah-ai-vision
: análisis de imágenesaisyah-ai-whisper
: servicio de voz a texto Clon el repositorio:
git clone https://github.com/husniadil/aisyah-ai.git
cd aisyah-ai
Instalar dependencias:
yarn install
Configurar Cloudflare: Primero, obtenga su token de la API de CloudFlare:
export CLOUDFLARE_API_TOKEN=your_api_token_here
echo ' export CLOUDFLARE_API_TOKEN=your_api_token_here ' >> ~ /.zshrc
Nota: No use wrangler login
, ya que entra en conflicto con el método de autenticación de token API.
Configurar archivos de entorno:
# Copy Cloudflare configuration files
cp packages/aisyah-ai-agent/wrangler.toml.example packages/aisyah-ai-agent/wrangler.toml
cp packages/aisyah-ai-explorer/wrangler.toml.example packages/aisyah-ai-explorer/wrangler.toml
cp packages/aisyah-ai-reminder/wrangler.toml.example packages/aisyah-ai-reminder/wrangler.toml
cp packages/aisyah-ai-sonata/wrangler.toml.example packages/aisyah-ai-sonata/wrangler.toml
cp packages/aisyah-ai-storm/wrangler.toml.example packages/aisyah-ai-storm/wrangler.toml
cp packages/aisyah-ai-telegraph/wrangler.toml.example packages/aisyah-ai-telegraph/wrangler.toml
cp packages/aisyah-ai-vision/wrangler.toml.example packages/aisyah-ai-vision/wrangler.toml
cp packages/aisyah-ai-whisper/wrangler.toml.example packages/aisyah-ai-whisper/wrangler.toml
# Copy environment variables
cp packages/aisyah-ai-agent/.dev.vars.example packages/aisyah-ai-agent/.dev.vars
cp packages/aisyah-ai-explorer/.dev.vars.example packages/aisyah-ai-explorer/.dev.vars
cp packages/aisyah-ai-reminder/.dev.vars.example packages/aisyah-ai-reminder/.dev.vars
cp packages/aisyah-ai-sonata/.dev.vars.example packages/aisyah-ai-sonata/.dev.vars
cp packages/aisyah-ai-storm/.dev.vars.example packages/aisyah-ai-storm/.dev.vars
cp packages/aisyah-ai-telegraph/.dev.vars.example packages/aisyah-ai-telegraph/.dev.vars
cp packages/aisyah-ai-vision/.dev.vars.example packages/aisyah-ai-vision/.dev.vars
cp packages/aisyah-ai-whisper/.dev.vars.example packages/aisyah-ai-whisper/.dev.vars
Configurar configuraciones específicas del paquete:
Cree los espacios de nombres KV requeridos y tome nota de sus ID:
# For settings storage
yarn w aisyah-ai-agent wrangler kv:namespace create SETTINGS
# For chat history
yarn w aisyah-ai-telegraph wrangler kv:namespace create CHAT_HISTORY
# For reminders
yarn w aisyah-ai-reminder wrangler kv:namespace create REMINDERS
# In packages/aisyah-ai-telegraph/.dev.vars
CLOUDFLARE_SUBDOMAIN=your_subdomain
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
UPSTASH_REDIS_REST_URL=your_redis_rest_url
UPSTASH_REDIS_REST_TOKEN=your_redis_rest_token
# In packages/aisyah-ai-agent/.dev.vars
OPENAI_API_KEY=your_openai_api_key
LANGCHAIN_API_KEY=your_langchain_api_key
CLOUDFLARE_SUBDOMAIN=your_subdomain
AGENT_PERSONA_AISYAH_DEFAULT=your_system_prompt_for_persona_default
AGENT_PERSONA_AISYAH_JAWIR=your_system_prompt_for_persona_jawir
AGENT_PERSONA_PERSONAL_ASSISTANT=your_system_prompt_for_persona_personal_assistant
# In packages/aisyah-ai-vision/.dev.vars
OPENAI_API_KEY=your_openai_api_key
# In packages/aisyah-ai-whisper/.dev.vars
OPENAI_API_KEY=your_openai_api_key
# In packages/aisyah-ai-sonata/.dev.vars
OPENAI_API_KEY=your_openai_api_key
# Get from https://supabase.io
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_storage_key
# Get from https://elevenlabs.io
ELEVENLABS_API_KEY=your_elevenlabs_api_key
# In packages/aisyah-ai-storm/.dev.vars
OPEN_WEATHER_MAP_API_KEY=your_openweathermap_api_key
# In packages/aisyah-ai-explorer/.dev.vars
# Get from https://programmablesearchengine.google.com/
GOOGLE_SEARCH_API_KEY=your_google_api_key
GOOGLE_SEARCH_ENGINE_ID=your_search_engine_id
# In packages/aisyah-ai-reminder/.dev.vars
REMINDERS_APP_ID=your_reminders_app_id
REMINDERS_API_KEY=your_reminders_api_key
Actualice wrangler.toml
de cada paquete con las ID de espacio de nombres KV correspondientes del paso anterior:
# In packages/aisyah-ai-telegraph/wrangler.toml
kv_namespaces = [
{ binding = " CHAT_HISTORY " , id = " your_chat_history_namespace_id " }
]
# In packages/aisyah-ai-agent/wrangler.toml
kv_namespaces = [
{ binding = " SETTINGS " , id = " your_settings_namespace_id " }
]
# In packages/aisyah-ai-reminder/wrangler.toml
kv_namespaces = [
{ binding = " REMINDERS " , id = " your_reminders_namespace_id " }
]
Desplegar los trabajadores:
yarn deploy
Configure su bot de telegrama:
yarn w
: Ejecutar comandos específicos del espacio de trabajoyarn deploy
: despliegue a todos los trabajadoresyarn types
: generar tipos de mecanografiadoyarn format
: código de formato usando biomapackages
wrangler.toml
aisyah-ai-agent
Configure una instancia de Redis:
Configurar Redis en su entorno:
# Add to packages/aisyah-ai-telegraph/.dev.vars
UPSTASH_REDIS_REST_URL=your_redis_rest_url
UPSTASH_REDIS_REST_TOKEN=your_redis_rest_token
Asegúrese de obtener y configurar estas teclas API:
Agrégalos a los archivos .dev.vars
respectivos en cada paquete.
El despliegue de los trabajadores falla
wrangler.toml
son únicosBot no responde
Las características no funcionan
Habilitar el modo de depuración configurando:
# Add to .dev.vars
DEBUG_MODE=true
Esto proporcionará registros más detallados en la consola de trabajadores.
Si encuentra problemas:
Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.