Spaces:
Sleeping
Sleeping
| import requests | |
| import urllib.parse | |
| import pandas as pd | |
| # 1. Define your base API URL | |
| base_url = "https://predictionsentiments-azepf7eme8dvftaa.francecentral-01.azurewebsites.net/feeling_predictions/" | |
| # URL locale pour MLFlow | |
| #base_url = "http://127.0.0.1:8000/feeling_predictions/" | |
| # 2. Define a list of 10 different sentences (mixing happy and sad to test your model) | |
| sentences = [ | |
| "I just got a promotion at work and I am thrilled!", | |
| "My dog passed away yesterday and my heart is broken.", | |
| "The weather is absolutely beautiful today, I love it.", | |
| "I failed my math exam despite studying all night.", | |
| "We had a wonderful family dinner with lots of laughs.", | |
| "I feel so lonely and isolated in this new city.", | |
| "Winning the championship was the best moment of my life.", | |
| "My flight got canceled and I missed my best friend's wedding.", | |
| "I am enjoying a nice, relaxing cup of coffee by the window.", | |
| "Everything is going wrong today and I just want to cry." | |
| ] | |
| # 3. Initialize an empty list to store all the results | |
| all_results = [] | |
| headers = {"accept": "application/json"} | |
| print("Starting predictions...\n") | |
| # 4. Loop through each sentence in the list | |
| for text in sentences: | |
| # URL-encode the sentence safely | |
| encoded_text = urllib.parse.quote(text) | |
| full_url = f"{base_url}{encoded_text}" | |
| try: | |
| # Call the API | |
| response = requests.get(full_url, headers=headers) | |
| response.raise_for_status() # Check for HTTP errors like 500 or 404 | |
| # Parse the JSON response {"text": "...", "feeling_result": "..."} | |
| api_data = response.json() | |
| # Extract the prediction | |
| prediction = api_data.get("feeling_result") | |
| # Store the success result in our list as a dictionary | |
| all_results.append({ | |
| "sentence": text, | |
| "prediction": prediction, | |
| "status": "success" | |
| }) | |
| print(f"Processed: '{text[:30]}...' -> {prediction.upper()}") | |
| except requests.exceptions.RequestException as e: | |
| print(f"Error processing '{text[:30]}...': {e}") | |
| # If there is an error, we still store it so we don't lose track | |
| all_results.append({ | |
| "sentence": text, | |
| "prediction": "ERROR", | |
| "status": str(e) | |
| }) | |
| print("\n--- All 10 requests completed! ---") | |
| # 5. Display and save the stored results | |
| # Converting the list of dictionaries into a Pandas DataFrame is the easiest way to handle the data | |
| df_results = pd.DataFrame(all_results) | |
| print("\nHere is your final data table:") | |
| print(df_results) | |
| # Save the results to a CSV file in your folder | |
| csv_filename = "api_predictions_results.csv" | |
| df_results.to_csv(csv_filename, index=False, encoding="utf-8") | |
| print(f"\nResults have been successfully saved to '{csv_filename}'.") |