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许可证获得许可的 - 有关详细信息,请参见许可证文件。