--- title: AI Vidya Daily Report Agent emoji: ๐Ÿ“‹ colorFrom: indigo colorTo: blue sdk: gradio sdk_version: 5.9.1 app_file: app.py pinned: false --- # AI Vidya โ€” Daily Report Evaluation Agent Reads **#ai-vidya** on Slack, checks who submitted their EOD report, evaluates quality with Claude AI, and posts results to **#intern-updates**. ## Setup (5 minutes) ### 1. Create the HuggingFace Space - Go to huggingface.co โ†’ New Space - SDK: **Gradio**, Visibility: **Private** - Upload `app.py`, `requirements.txt`, `README.md` ### 2. Add Secrets In your Space โ†’ **Settings โ†’ Variables and Secrets**: | Secret name | Value | |---|---| | `SLACK_BOT_TOKEN` | `xoxb-your-bot-token` | | `ANTHROPIC_API_KEY` | `sk-ant-your-key` | ### 3. Create the Slack Bot 1. Go to [api.slack.com/apps](https://api.slack.com/apps) โ†’ Create New App 2. **OAuth & Permissions** โ†’ Bot Token Scopes, add: - `channels:history` โ€” read #ai-vidya messages - `channels:read` โ€” find channel IDs - `chat:write` โ€” post to #intern-updates - `users:read` โ€” look up intern names 3. Install to workspace โ†’ copy **Bot User OAuth Token** 4. Invite bot to both channels: - `/invite @your-bot-name` in **#ai-vidya** - `/invite @your-bot-name` in **#intern-updates** ### 4. Get Slack User IDs for Interns In Slack: click any intern's profile โ†’ โ‹ฎ (more) โ†’ **Copy member ID** It looks like: `U06T83LP86P` Paste them into the intern registry JSON in the UI. ### 5. Schedule Daily at 11 PM IST **GitHub Actions (free, recommended):** Create `.github/workflows/daily_check.yml`: ```yaml name: Daily Report Check on: schedule: - cron: '30 17 * * 1-5' # 11:00 PM IST (Monโ€“Fri) = 17:30 UTC jobs: trigger: runs-on: ubuntu-latest steps: - name: Trigger HF Space run: | curl -X POST "${{ secrets.HF_SPACE_URL }}/run/predict" \ -H "Content-Type: application/json" \ -d '{"data": [""]}' ``` Add `HF_SPACE_URL` as a GitHub secret โ€” format: `https://your-username-your-space-name.hf.space` ## What it does 1. Reads all messages in **#ai-vidya** posted today 2. Checks each registered intern โ€” submitted or missed 3. Evaluates submitted reports with Claude: - ๐ŸŸข **Good** โ€” specific technical content, real blocker, shows thinking - ๐ŸŸก **Weak** โ€” vague, missing blocker, just a status update - ๐Ÿ”ด **Invalid** โ€” one liner, link only, "done", "working on it" 4. Posts a full summary to **#intern-updates** 5. @mentions each intern who missed with a warning message