k96beni's picture
Rename README (1).md to README.md
ace5736 verified
|
Raw
History Blame Contribute Delete
5.77 kB
# 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