Spaces:
Paused
Paused
| #coding: utf-8 | |
| from typing import Any | |
| from typing import Dict | |
| #from typing import List | |
| #from typing import Tuple | |
| from typing import Optional | |
| #from typing import Union | |
| from os import getenv | |
| import json | |
| from openai import OpenAI | |
| from dotenv import load_dotenv | |
| def moderate_text(input_text: str, | |
| model: Optional[str] = "omni-moderation-latest") -> Dict[str, Any]: | |
| # Load environment variables from the .env file | |
| load_dotenv() | |
| # correct values for `model` is "omni-moderation-latest" and "text-moderation-latest" | |
| try: | |
| client = OpenAI(api_key=getenv("OPENAI_API_KEY")) | |
| response = client.moderations.create( | |
| model=f"{model}", | |
| input=f"{input_text}" | |
| ) | |
| return response | |
| except Exception as e: | |
| print(f"An error occurred: {e}") | |
| return None | |
| def api_moderation_openai_text(text_to_moderate: str) -> Dict[str, Any]: | |
| response = moderate_text(text_to_moderate) | |
| if response: | |
| moderation_result = json.loads(response.to_json()) | |
| result_dict = { | |
| "flagged": False, | |
| "results": [] | |
| } | |
| for result in moderation_result["results"]: | |
| result_dict["flagged"] = result_dict["flagged"] or result["flagged"] | |
| result_dict["results"].append({ | |
| "categories": result["categories"], | |
| "category_scores": result["category_scores"], | |
| "category_applied_input_types": result["category_applied_input_types"] | |
| }) | |
| return result_dict | |
| else: | |
| return {"error": "La modération a échoué"} | |
| #if __name__=='__main__': | |
| # text_to_moderate = "Ceci est un exemple de texte à modérer." | |
| # result = api_moderation_openai_text(text_to_moderate) | |
| # print("Résultat de la modération :", result) |