aisyah ai
1.0.0
Aisyah AI是一個功能強大的電報機器人,它由CloudFlare工人構建,結合了多個AI功能。它可以瀏覽網絡,設置提醒,說話,預測天氣,分析圖像並理解語音消息。該機器人通過REDIS維護對話中的上下文,使其非常適合私人聊天和小組互動。
?高級AI功能
智能工具
☁️現代建築
? API集成
我們選擇僅支持OpenAI模型(尤其是GPT-3.5-Turbo和GPT-4O-Mini),原因有幾個:
注意:我們了解對替代模型和提供商的興趣(例如OpenRouter,Anthropic等)。但是,為了保持代碼簡單性並確保一致的機器人行為,我們決定專注於OpenAI的產品。如果您需要使用不同的型號,則需要分叉項目並相應地修改模型配置。
/start
- 開始與機器人互動/settings
- 配置機器人設置(LLM型號,角色,語音等)/help
獲取有關可用命令的幫助注意:這是一個旨在學習和實驗目的的個人項目。
該項目分為幾個微服務:
aisyah-ai-telegraph
:處理電報互動的主要編排aisyah-ai-agent
:處理請求的核心AI代理aisyah-ai-explorer
:網絡瀏覽功能aisyah-ai-reminder
:提醒管理aisyah-ai-sonata
:文本到語音服務aisyah-ai-storm
:天氣預測aisyah-ai-vision
:圖像分析aisyah-ai-whisper
:語音到文本服務克隆存儲庫:
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
注意:不要使用wrangler login
因為它與API代幣身份驗證方法發生衝突。
配置環境文件:
# 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
更新每個軟件包的wrangler.toml
,並從上一步中使用相應的KV名稱空間ID:
# 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
設置您的電報機器人:
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許可證獲得許可的 - 有關詳細信息,請參見許可證文件。