Aisyah AI는 여러 AI 기능을 결합한 CloudFlare 작업자로 제작 된 강력한 Telegram Bot입니다. 웹을 탐색하고, 알림을 설정하고, 말하고, 날씨를 예측하고, 이미지를 분석하고, 음성 메시지를 이해할 수 있습니다. 봇은 Redis를 통한 대화에서 컨텍스트를 유지하므로 개인 채팅과 그룹 상호 작용에 적합합니다.
? 고급 AI 기능
스마트 도구
☁️ 현대 건축
? API 통합
우리는 여러 가지 이유로 OpenAI 모델 (특히 GPT-3.5-Turbo 및 GPT-4O-MINI)을 독점적으로 지원하기로 선택했습니다.
참고 : 대체 모델 및 제공자 (Openrouter, Anthropic 등)에 대한 관심을 이해합니다. 그러나 코드 단순성을 유지하고 일관된 봇 동작을 보장하기 위해 OpenAI의 오퍼링에 중점을두기로 결정했습니다. 다른 모델을 사용해야하는 경우 프로젝트를 포크하고 그에 따라 모델 구성을 수정해야합니다.
/start
- 봇과의 상호 작용을 시작하십시오/settings
- 봇 설정 구성 (LLM 모델, 페르소나, 음성 등)/help
- 사용 가능한 명령에 대한 도움을 받으십시오참고 : 이것은 학습 및 실험 목적으로 설계된 개인 프로젝트입니다.
이 프로젝트는 여러 마이크로 서비스로 구성됩니다.
aisyah-ai-telegraph
: 전보 상호 작용을 처리하는 메인 오케스트레이터aisyah-ai-agent
: 요청을 처리하는 Core AI 에이전트aisyah-ai-explorer
: 웹 브라우징 기능aisyah-ai-reminder
: 알림 관리aisyah-ai-sonata
: 텍스트 음성 보석 서비스aisyah-ai-storm
: 날씨 예측aisyah-ai-vision
: 이미지 분석aisyah-ai-whisper
: Speech-to-Text 서비스 저장소 복제 :
git clone https://github.com/husniadil/aisyah-ai.git
cd aisyah-ai
종속성 설치 :
yarn install
CloudFlare 설정 : 먼저 CloudFlare API 토큰을 얻으십시오.
export CLOUDFLARE_API_TOKEN=your_api_token_here
echo ' export CLOUDFLARE_API_TOKEN=your_api_token_here ' >> ~ /.zshrc
참고 : API 토큰 인증 방법과 충돌하므로 wrangler login
사용하지 마십시오.
환경 파일 구성 :
# 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
패키지 별 설정 구성 :
필요한 KV 네임 스페이스를 작성하고 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
이전 단계에서 해당 KV 네임 스페이스 ID로 각 패키지의 wrangler.toml
업데이트하십시오.
# 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 " }
]
근로자 배포 :
yarn deploy
Telegram BOT 설정 :
yarn w
: 작업 공간 별 명령을 실행하십시오yarn deploy
: 모든 작업자를 배포합니다yarn types
: 타이프 스크립트 유형을 생성합니다yarn format
: Biome을 사용한 형식 코드packages
디렉토리에서 새 패키지를 만듭니다wrangler.toml
에 구성을 추가하십시오aisyah-ai-agent
에 새로운 기능을 등록하십시오 Redis 인스턴스 설정 :
환경에서 Redis 구성 :
# Add to packages/aisyah-ai-telegraph/.dev.vars
UPSTASH_REDIS_REST_URL=your_redis_rest_url
UPSTASH_REDIS_REST_TOKEN=your_redis_rest_token
이러한 API 키를 얻고 구성하십시오.
각 패키지의 각 .dev.vars
파일에 추가하십시오.
작업자 배포가 실패합니다
wrangler.toml
의 작업자 이름이 고유한지 확인하십시오봇은 응답하지 않습니다
기능이 작동하지 않습니다
설정하여 디버그 모드 활성화 :
# Add to .dev.vars
DEBUG_MODE=true
이것은 작업자 콘솔에서보다 자세한 로그를 제공합니다.
문제가 발생하면 :
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.