该项目是一个多智能体自动化套件,旨在帮助非政府组织 (NGO) 自动化日常运营,特别是围绕沟通、知识管理和外展活动。它包含多个独立的微服务和组件。

主要功能点

  • 语音智能体: 通过电话进行自动语音交互,用于信息收集和 FAQ 回答。
  • WhatsApp 智能体: 用于大规模 WhatsApp 消息发送和活动管理。
  • CLI 智能体: 提供命令行界面,用于知识库查询、电子邮件自动化和系统管理。
  • Streamlit 看板: 提供一个 Web 用户界面,用于可视化解决方案架构和智能体概览。
  • 知识管理: 使用向量数据库存储和检索 NGO 相关知识。
  • 数据自动化: 与 Google 表格、CSV 和 SMTP 集成,用于数据存储和邮件发送。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/happyrao78/Coding-Ninjas-Intern.git
    cd Coding-Ninjas-Intern
  2. 设置环境变量: 在项目根目录和每个智能体子目录(如 'voice-micro-agent', 'whatsapp-micro-agent', 'cli-assistant')中创建 '.env' 文件,并配置所需的变量。根据 'config' 文件或 README 中的指示填写 API 密钥、凭据路径、电话号码、邮件账号信息等。
  3. 安装依赖:
    pip install -r requirements.txt
    # 进入每个子目录并安装其特定的依赖 (如果存在不同的 requirements.txt)
    # cd voice-micro-agent && pip install -r requirements.txt
    # cd whatsapp-micro-agent && pip install -r requirements.txt
    # cd cli-assistant && pip install -r requirements.txt
  4. 配置服务:
    • Google Cloud Platform: 启用所需的 API(如 Google Sheets API, Google Drive API),并为服务账号生成 JSON 凭据文件,将其路径配置在 '.env' 文件中。
    • Twilio: 配置 Twilio 账号 SID、Auth Token、Twilio 电话号码以及用于接收呼叫的 Webhook URL。
    • Gmail: 配置 Gmail 地址和应用密码(需要开启两步验证并生成应用密码)用于发送邮件。
    • Pinecone: 配置 Pinecone API 密钥和环境。
    • Gemini: 配置 Google Gemini API 密钥。
    • WhatsApp: 配置 Chrome 用户数据目录(用于保存登录会话),并准备好一个已登录 WhatsApp Web 的 Chrome 浏览器实例。
  5. 构建和运行 Docker 容器 (推荐): 如果项目提供了 Dockerfile 和 docker-compose.yml 文件,可以使用 Docker 启动整个套件或特定智能体。请参考项目根目录或各子目录的 README 文件中的 Docker 相关说明。

服务器配置 (供 MCP 客户端参考)

注意: 此项目当前 并非 MCP 服务器实现。它是一个独立的微服务多智能体系统。未来的版本计划集成 MCP 支持。因此,目前没有用于连接 MCP 客户端的 MCP 服务器配置信息。以下内容仅为概念上的占位符,不代表当前项目功能。

[
  // 当前项目不是MCP服务器,因此无法提供有效的MCP配置
  // MCP客户端无法连接到此应用作为MCP服务器
]

基本使用方法

  • 启动智能体: 通常通过运行 FastAPI 应用 ('python app.py') 或 Docker 容器来启动语音和 WhatsApp 智能体。
  • 使用 CLI 智能体: 在命令行中运行 'ngo-assistant' 命令启动交互式界面,然后输入命令(如 'send mail')或问题。
  • 访问 Streamlit 看板: 启动 Streamlit 应用 ('streamlit run client.py') 并在浏览器中访问显示的地址。
  • 触发语音呼叫: 通过访问语音智能体暴露的 '/make-faq-call' 或 '/make-info-call' API 端点来触发外呼。
  • 处理 WhatsApp 消息: WhatsApp 智能体周期性地从 Google 表格读取联系人信息并自动发送消息。也可以通过 '/send' 或 '/process' API 手动触发。

详细的使用说明和每个智能体的配置请参考各智能体目录下的 README 文件。

信息

分类

AI与计算