Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -19,6 +19,22 @@ def send_email(api_key, inbox_id, subject, content, from_email, to_email):
|
|
| 19 |
response = requests.post(url, headers=headers, json=data)
|
| 20 |
return response.status_code, response.json()
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
# URL de l'image d'exemple
|
| 23 |
url = "https://www.saint-genes.com/wp-content/uploads/2019/10/DSC05405.jpg"
|
| 24 |
image = Image.open(requests.get(url, stream=True).raw)
|
|
@@ -35,31 +51,29 @@ outputs = model(**inputs)
|
|
| 35 |
target_sizes = torch.tensor([image.size[::-1]])
|
| 36 |
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
|
| 37 |
|
| 38 |
-
#
|
| 39 |
persons = 0
|
| 40 |
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
|
| 41 |
-
box = [round(i, 2) for i in box.tolist()]
|
| 42 |
-
print(
|
| 43 |
-
f"Detected {model.config.id2label[label.item()]} with confidence "
|
| 44 |
-
f"{round(score.item(), 3)} at location {box}"
|
| 45 |
-
)
|
| 46 |
if model.config.id2label[label.item()] == 'person':
|
| 47 |
-
persons += 1
|
| 48 |
-
|
| 49 |
-
print(f"Total persons detected: {persons}")
|
| 50 |
|
| 51 |
-
# Définir les variables pour l'email
|
| 52 |
expected_number_of_persons = 10 # Nombre attendu de personnes
|
| 53 |
absents = expected_number_of_persons - persons
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
email_subject = "Notification d'absents"
|
| 55 |
-
|
|
|
|
| 56 |
|
| 57 |
# Clés API Mailtrap et informations d'email
|
| 58 |
-
|
| 59 |
inbox_id = "3128145"
|
| 60 |
-
from_email = "your-email@example.com"
|
| 61 |
-
to_email = "recipient@example.com"
|
| 62 |
|
| 63 |
# Envoyer l'email
|
| 64 |
-
status_code, response_json = send_email(
|
| 65 |
print(f"Email sent with status code {status_code}: {response_json}")
|
|
|
|
| 19 |
response = requests.post(url, headers=headers, json=data)
|
| 20 |
return response.status_code, response.json()
|
| 21 |
|
| 22 |
+
# Fonction pour générer du texte avec Gemini
|
| 23 |
+
def generate_text_with_gemini(api_key, prompt):
|
| 24 |
+
url = "https://api.gemini.com/v1/generate" # Remplacez par l'URL correcte de l'API Gemini
|
| 25 |
+
headers = {
|
| 26 |
+
"Authorization": f"Bearer {api_key}",
|
| 27 |
+
"Content-Type": "application/json"
|
| 28 |
+
}
|
| 29 |
+
data = {
|
| 30 |
+
"prompt": prompt,
|
| 31 |
+
"max_tokens": 150, # Ajustez en fonction de vos besoins
|
| 32 |
+
"temperature": 0.7 # Ajustez en fonction de vos besoins
|
| 33 |
+
}
|
| 34 |
+
response = requests.post(url, headers=headers, json=data)
|
| 35 |
+
response_data = response.json()
|
| 36 |
+
return response_data.get('text', '')
|
| 37 |
+
|
| 38 |
# URL de l'image d'exemple
|
| 39 |
url = "https://www.saint-genes.com/wp-content/uploads/2019/10/DSC05405.jpg"
|
| 40 |
image = Image.open(requests.get(url, stream=True).raw)
|
|
|
|
| 51 |
target_sizes = torch.tensor([image.size[::-1]])
|
| 52 |
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
|
| 53 |
|
| 54 |
+
# Compter le nombre de personnes détectées
|
| 55 |
persons = 0
|
| 56 |
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
if model.config.id2label[label.item()] == 'person':
|
| 58 |
+
persons += 1
|
|
|
|
|
|
|
| 59 |
|
|
|
|
| 60 |
expected_number_of_persons = 10 # Nombre attendu de personnes
|
| 61 |
absents = expected_number_of_persons - persons
|
| 62 |
+
|
| 63 |
+
# Générer le contenu de l'email avec Gemini
|
| 64 |
+
prompt = f"Notifier de l'absence: Le nombre de personnes présentes est de {persons}. Le nombre d'absents est de {absents}."
|
| 65 |
+
gemini_api_key = "AIzaSyCJVUr-76I4TL42X98d9U0THbRD3MKlB38"
|
| 66 |
+
email_content = generate_text_with_gemini(gemini_api_key, prompt)
|
| 67 |
+
|
| 68 |
+
# Définir les variables pour l'email
|
| 69 |
email_subject = "Notification d'absents"
|
| 70 |
+
from_email = "your-email@example.com"
|
| 71 |
+
to_email = "recipient@example.com"
|
| 72 |
|
| 73 |
# Clés API Mailtrap et informations d'email
|
| 74 |
+
mailtrap_api_key = "0dfd557dc980d49b306ae8647a9fa585"
|
| 75 |
inbox_id = "3128145"
|
|
|
|
|
|
|
| 76 |
|
| 77 |
# Envoyer l'email
|
| 78 |
+
status_code, response_json = send_email(mailtrap_api_key, inbox_id, email_subject, email_content, from_email, to_email)
|
| 79 |
print(f"Email sent with status code {status_code}: {response_json}")
|