# ChargeNode Migration - Daglig Rapport till Slack Denna Hugging Face Space kör automatiskt en daglig rapport kl **09:00 svensk tid** och postar till Slack-kanalen **#ai-chat**. ## 📊 Vad rapporten innehĂ„ller ### đŸ‘„ Inloggningsstatistik - Antal unika företag som loggat in senaste 24h - Antal unika företag som loggat in senaste 3 dagar - Antal unika företag som loggat in senaste 7 dagar - Lista över vilka företag som loggat in ### ✏ Uppdateringsstatistik - **Excel-uppladdningar:** Antal företag som laddat upp Excel senaste 24h och 7 dagar - **Manuella Ă€ndringar:** Antal editeringar i datamatrisen senaste 24h och 7 dagar - Lista över företag som anvĂ€nt respektive metod ### 📋 Kompletteringsstatus - Totalt antal företag - Antal som fyllt i all obligatorisk data - Kompletteringsgrad i procent - Vilka fĂ€lt som saknas mest --- ## 🚀 Setup-instruktioner för Hugging Face ### Steg 1: Skapa ett nytt Space 1. GĂ„ till [Hugging Face](https://huggingface.co/) 2. Klicka pĂ„ din profil → **New Space** 3. Namnge Space:n: `migration-daily-reporter` (eller valfritt namn) 4. Space SDK: **Gradio** 5. VĂ€lj: **Public** eller **Private** (beroende pĂ„ om du vill att den ska vara synlig) 6. Klicka **Create Space** ### Steg 2: Ladda upp filer Ladda upp följande filer till ditt Space: - `app.py` (huvudapplikationen) - `requirements.txt` (Python-paket) - `README.md` (denna fil) ### Steg 3: Konfigurera Secrets GĂ„ till **Settings** → **Repository secrets** och lĂ€gg till följande secrets: #### 1. `GOOGLE_CREDENTIALS` Detta Ă€r din Google Service Account JSON-fil som du anvĂ€nder i din Data Manager. ```json { "type": "service_account", "project_id": "ditt-project-id", "private_key_id": "...", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n", "client_email": "...", "client_id": "...", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "..." } ``` **OBS:** Kopiera hela JSON-innehĂ„llet frĂ„n din service account-fil. #### 2. `SLACK_WEBHOOK_URL` Din Slack Webhook URL för #ai-chat kanalen. Du bör kunna anvĂ€nda samma webhook som i din befintliga chatbot-app. Den ser ut sĂ„ hĂ€r: ``` https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX ``` **Hitta din webhook:** 1. GĂ„ till din befintliga Chatbot Space pĂ„ Hugging Face 2. Settings → Repository secrets 3. Kopiera vĂ€rdet frĂ„n `SLACK_WEBHOOK_URL` 4. Klistra in samma vĂ€rde hĂ€r ### Steg 4: Starta Space:n 1. Efter att du lagt till alla secrets, klicka pĂ„ **Factory reboot** i Settings 2. Space:n kommer att starta och bygga miljön 3. Efter ~2-3 minuter bör du se Gradio-interfacet 4. Klicka pĂ„ **"Kör rapport manuellt (test)"** för att verifiera att allt fungerar ### Steg 5: Verifiera Du bör nu: 1. Se ett meddelande i Slack-kanalen #ai-chat med dagens rapport 2. Se "✅ Rapport skickad till Slack!" i Gradio-interfacet --- ## ⏰ SchemalĂ€ggning Applikationen anvĂ€nder Python `schedule`-biblioteket för att köra rapporten: - **Daglig körning:** Varje dag kl 09:00 svensk tid (Europe/Stockholm) - **Automatisk:** Ingen manual Ă„tgĂ€rd krĂ€vs - **Timezone-aware:** Hanterar automatiskt sommar/vintertid **NĂ€sta körning visas** i Gradio-interfacet lĂ€ngst ner. --- ## 🔧 Felsökning ### Rapporten skickas inte till Slack - **Kontrollera:** Att `SLACK_WEBHOOK_URL` Ă€r korrekt instĂ€lld - **Testa:** Klicka pĂ„ "Kör rapport manuellt" för att se felmeddelanden - **Loggar:** Kolla Logs-fliken i Hugging Face Space:n ### Kan inte ansluta till Google Sheets - **Kontrollera:** Att `GOOGLE_CREDENTIALS` innehĂ„ller en giltig JSON - **Verifiera:** Att service account har tillgĂ„ng till "Omrade_updater" sheetet - **Dela:** Sheetet med service account email (hittas i JSON:en under `client_email`) ### Space:n sover/stĂ€ngs av Hugging Face Spaces pĂ„ gratis-tier kan sova efter inaktivitet. För att hĂ„lla den aktiv: - **Uppgradera till Pro:** Garanterar att Space:n alltid Ă€r aktiv - **Alternativt:** SĂ€tt upp en extern "ping" som besöker Space:n regelbundet ### Fel tidszon Applikationen anvĂ€nder `Europe/Stockholm` (svensk tid). Om tiden Ă€r fel: - Kontrollera att du inte har Ă€ndrat tidszon i koden - Hugging Face-servrar kör UTC, men koden konverterar automatiskt --- ## 📝 Anpassning ### Ändra schematid I `app.py`, Ă€ndra raden: ```python schedule.every().day.at("09:00").do(generate_daily_report) ``` Till exempel för 08:00: ```python schedule.every().day.at("08:00").do(generate_daily_report) ``` ### LĂ€gg till fler rapporttider ```python schedule.every().day.at("09:00").do(generate_daily_report) schedule.every().day.at("17:00").do(generate_daily_report) # KvĂ€llsrapport ``` ### Ändra Slack-kanal Om du vill skicka till en annan Slack-kanal: 1. Skapa en ny Incoming Webhook i Slack för den kanalen 2. Uppdatera `SLACK_WEBHOOK_URL` secreten med den nya webhook-URL:en --- ## 🎯 Teknisk information **SprĂ„k:** Python 3.10+ **Framework:** Gradio (för UI), Schedule (för schemalĂ€ggning) **APIs:** Google Sheets API, Slack Webhooks **Tidszon:** Europe/Stockholm (CET/CEST) **Dataflöde:** 1. Scheduler triggar `generate_daily_report()` kl 09:00 2. Ansluter till Google Sheets via service account 3. LĂ€ser data frĂ„n "Sheet1" och "Omrade_updater_LOGS" 4. BerĂ€knar metrics baserat pĂ„ loggdata 5. Formaterar och skickar till Slack via webhook --- ## 📞 Support Vid problem, kontakta: - **Email:** migration@chargenode.eu - **Slack:** #ai-chat eller #tech-support --- **Skapad:** 2025-01-29 **Version:** 1.0 **Författare:** ChargeNode Tech Team