Slack对话助手

Wyndle是一款基于AI和高性能DuckDB存储的Slack对话助手,能够智能总结对话、管理优先级并分析关系动态,适用于团队协作和项目管理。

  • by TMorville
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 tmorville/wyndle

使用说明

🌿 Wyndle-您的Slack对话助手

“我必须乐于助人!我乐于助人非常重要!”

使用AI和高性能DuckDB存储将您的Slack数据转换为智能个人助理。

✨ 特性

🧠 人工智能驱动的智能

  • 智能摘要:“埃米尔没什么急事!他祝你节日快乐”,而不是原始信息转储
  • 优先级管理:自动识别需要您关注的紧急程度
  • 关系分析:了解所有情境下的对话动态和结果

⚡ 高性能数据管道

  • DuckDB存储:用于亚毫秒级查询性能的列式数据库
  • 连续同步:具有智能速率限制的后台加载器(尊重Slack的45次通话/分钟)
  • 人类可读:所有数据都使用真实姓名,而不是神秘的ID

🔗 MCP集成

  • 模型上下文协议:与Raycast、OpenAI和其他AI工具无缝协作
  • 自然查询:问“需要我注意什么?”并获得可操作的见解
  • 可配置的:智能机器人过滤和可定制的响应样式

🚀 快速开始

先决条件

  • Python 3.10+
  • UV包管理器(推荐)或pip
  • 带有机器人令牌的Slack工作区

安装

# Clone the repository
git clone https://github.com/yourusername/wyndle.git
cd wyndle

# Install dependencies
uv sync

# Configure your setup
cp config/config.example.yaml config/config.yaml
cp .env.example .env

# Edit your configuration files
# - Add your Slack API tokens to .env
# - Configure channels to monitor in config/config.yaml

⚠️ 重要:确保设置您的 SLACK_USER_KEY 和 OPENAI_API_KEY 在 .env 在运行数据加载器之前。数据库架构将在首次运行时自动创建。

配置

  1. Slack机器人设置:使用以下范围创建Slack应用程序:

    channels:history, groups:history, im:history, mpim:history
    users:read, channels:read
    
  2. 环境变量:添加到 .env:

    SLACK_USER_KEY=xoxp-your-user-token-here
    
  3. 信道选择:编辑 config/config.yaml:

    slack:
      channels:
        - general
        - engineering
        - data-team
      ignored_bots:
        - slackbot
        - github
        - jira
    

用法

# One-time data load
uv run wyndle-pipeline --dataloader

# Start continuous background sync daemon
uv run wyndle-loader start --workers 5

# Check daemon status
uv run wyndle-loader status

# Stop daemon
uv run wyndle-loader stop

# Restart daemon with different worker count
uv run wyndle-loader restart --workers 3

# Launch MCP server for AI integration
uv run wyndle-server

# View database statistics
uv run wyndle-pipeline --database-stats

🎯 Raycast集成

安装说明

  1. 在Raycast中安装MCP扩展

    • 打开Raycast
    • 转到扩展→ Store
    • 搜索“MCP”并安装MCP扩展
  2. 安装MCP服务器

    • 首先完成上述安装步骤
    • 确保你有你的 .env 使用API密钥配置的文件
  3. 将Wyndle添加到Raycast

    • 打开光线投射MCP设置
    • 点击“添加MCP服务器”
    • 命令: <your-path-to-repo>/scripts/run-wyndle.sh
    • 名字: Wyndle
    • 保存配置

用法

配置后,您可以直接在Raycast中与Wyndle交互:

@Wyndle please look at my squad channel, make a list of action points for me and add them as todo's with @todoist

@Wyndle anything to follow up on today?

@Wyndle summarize my latest interaction with Emil B

@Wyndle show me what's happening in the data team channel this week

Wyndle将提供智能、上下文感知的响应,并可以与Todoist等其他Raycast扩展集成以进行任务管理。

💬 AI集成示例

使用Raycast

"What needs my attention?"
→ 🔥 **Urgent**: Sarah needs feedback on design mockups
→ 📅 **This Week**: Confirm availability for bi-weekly data meetings

"Summarize my interaction with John"
→ ✅ **Project complete** - John thanked you for the pipeline work and signed off

与OpenAI/Claude合作

MCP服务器提供以下智能工具:

  • content_get_user_interactions() -关系摘要
  • productivity_list_followups() -行动项目和优先事项
  • content_get_channel_activity() -团队/项目情报

🏗️ 建筑

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Slack API     │───▶│   DuckDB        │───▶│   MCP Server    │
│                 │    │   (Columnar)    │    │   (FastMCP)     │
│ • Rate Limited  │    │ • Human Names   │    │ • AI Assistant  │
│ • Continuous    │    │ • Sub-ms Query  │    │ • Smart Filter  │
│ • Smart Sync    │    │ • 70% Smaller   │    │ • Raycast Ready │
└─────────────────┘    └─────────────────┘    └─────────────────┘

关键组件

  • src/ingest/ -具有速率限制的连续数据管道
  • src/data/ -具有名称解析的DuckDB存储层
  • src/server.py -个人助理MCP服务器
  • src/cli.py -命令行界面
  • src/slack_client/ -Slack API集成
  • src/analysis/ -写作风格与组织分析

🧪 发展

运行测试

# Run minimal test suite
uv run pytest tests/

# Type checking
uv run mypy src/

# Code quality
uv run ruff check .
uv run ruff format .

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 通过测试进行更改
  4. 运行测试套件(uv run pytest)
  5. 提交拉取请求

📝 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • 内置于 FastMCP 用于模型上下文协议集成
  • 由...驱动 DuckDB 用于高性能分析
  • 受智能Slack数据管理需求的启发

📊 演出

  • 查询速度:DuckDB列式存储的亚毫秒响应时间
  • 内存使用:约300MB恒定占用空间,高效压缩
  • 存储:比同等SQLite数据库小70%
  • 速率限制:尊重Slack的API限制,智能退让

🌿 "I must be helpful!" - Transform your Slack chaos into AI-powered insights
Made with ❤️ for productive teams everywhere