Aisyah AI est un puissant bot télégramme construit avec des travailleurs CloudFlare qui combine plusieurs capacités d'IA. Il peut parcourir le Web, définir des rappels, parler, prédire la météo, analyser les images et comprendre les messages vocaux. Le bot maintient le contexte dans les conversations via Redis, ce qui le rend parfait pour les chats privés et les interactions de groupe.
? Capacités avancées d'IA
Outils intelligents
☁️ Architecture moderne
? Intégrations API
Nous avons choisi de soutenir exclusivement les modèles OpenAI (en particulier GPT-3.5-Turbo et GPT-4O-Mini) pour plusieurs raisons:
Remarque: Nous comprenons l'intérêt pour les modèles et les fournisseurs alternatifs (comme OpenRouter, anthropic, etc.). Cependant, pour maintenir la simplicité du code et assurer un comportement de bot cohérent, nous avons décidé de nous concentrer sur les offres d'Openai. Si vous devez utiliser différents modèles, vous devrez déborder le projet et modifier les configurations du modèle en conséquence.
/start
- commencer l'interaction avec le bot/settings
- Configurer les paramètres de bot (modèle LLM, Persona, voix, etc.)/help
- obtenir de l'aide sur les commandes disponiblesRemarque : Il s'agit d'un projet personnel conçu à des fins d'apprentissage et d'expérimentation.
Le projet est organisé en plusieurs microservices:
aisyah-ai-telegraph
: Orchestrateur principal qui gère les interactions télégrammesaisyah-ai-agent
: Agent de base de l'IA qui traite les demandesaisyah-ai-explorer
: Capacité de navigation sur le Webaisyah-ai-reminder
: Rappel Managementaisyah-ai-sonata
: service de texte à la dispositionaisyah-ai-storm
: Prédiction météorologiqueaisyah-ai-vision
: analyse d'imageaisyah-ai-whisper
: Service de la parole au texte Clone le référentiel:
git clone https://github.com/husniadil/aisyah-ai.git
cd aisyah-ai
Installez les dépendances:
yarn install
Configurez CloudFlare: d'abord, obtenez votre jeton API CloudFlare:
export CLOUDFLARE_API_TOKEN=your_api_token_here
echo ' export CLOUDFLARE_API_TOKEN=your_api_token_here ' >> ~ /.zshrc
Remarque: N'utilisez pas wrangler login
car elle entre en conflit avec la méthode d'authentification du jeton API.
Configurer les fichiers environnementaux:
# 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
Configurer les paramètres spécifiques au package:
Créez les espaces de noms KV requis et notez leurs 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
Mettez à jour wrangler.toml
de chaque package avec les ID d'espace de noms KV correspondant à partir de l'étape précédente:
# 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 " }
]
Déployer les travailleurs:
yarn deploy
Configurez votre bot télégramme:
yarn w
: Exécuter des commandes spécifiques à l'espace de travailyarn deploy
: déploie tous les travailleursyarn types
: générer des types de dactylographieyarn format
: code de format utilisant le biomepackages
wrangler.toml
aisyah-ai-agent
Configurez une instance Redis:
Configurer Redis dans votre environnement:
# Add to packages/aisyah-ai-telegraph/.dev.vars
UPSTASH_REDIS_REST_URL=your_redis_rest_url
UPSTASH_REDIS_REST_TOKEN=your_redis_rest_token
Assurez-vous d'obtenir et de configurer ces touches API:
Ajoutez-les aux fichiers .dev.vars
respectifs dans chaque package.
Le déploiement des travailleurs échoue
wrangler.toml
sont uniquesBot ne répond pas
Les fonctionnalités ne fonctionnent pas
Activer le mode de débogage en réglant:
# Add to .dev.vars
DEBUG_MODE=true
Cela fournira des journaux plus détaillés dans la console des travailleurs.
Si vous rencontrez des problèmes:
Ce projet est autorisé en vertu de la licence MIT - voir le fichier de licence pour plus de détails.