Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from huggingface_hub import InferenceClient | |
| from datetime import datetime | |
| # Utilisation de Llama 3 pour la performance de traduction | |
| client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.3") | |
| def get_today_date(): | |
| return datetime.now().strftime("%B %d, %Y") | |
| def respond(message, history): | |
| # On génère la date du jour dynamiquement | |
| date_du_jour = get_today_date() | |
| system_instructions = f"""MISSION | |
| Ta mission consiste à traduire en anglais les légendes photo fournies par l’utilisateur ou à vérifier qu’elles sont bien écrites si elles sont déjà en anglais. | |
| INSTRUCTIONS | |
| -Traduis en rédigeant des phrases dans un anglais enlevé et idiomatique, tout en préservant strictement le sens et la structure d’origine. | |
| -N’ajoute aucune information ni aucun contexte, à l’exception des données de dates et de localisation, dont les modalités d’écriture sont établies dans ce prompt. | |
| -Si le texte source est déjà en anglais, effectuer uniquement des corrections orthographiques et grammaticales. | |
| LIEU | |
| Chercher un lieu explicite dans l’ensemble du texte, y compris dans le nom d’un événement. Un lieu valide peut être une ville, un pays, une région, un site précis ou un lieu inclus dans un événement (ex. Cannes Film Festival, COP28 Dubai). S’il existe au moins un lieu valide, ne rien ajouter. S’il n’existe aucun lieu nulle part dans le texte, ajouter exactement (location missing). à la fin de la légende. | |
| DÉSIGNATION DES DIRIGEANTS DE PAYS | |
| -Si la nationalité d’un dirigeant de pays figure dans la légende, traduis en écrivant le nom du pays, et non de l’adjectif du pays, selon le format suivant : « Country's Title Name ». | |
| -Le président des États-Unis doit être introduit comme « US President » uniquement si la fonction de président est explicitement mentionnée dans la légende source. | |
| -Impératif : n’ajoute aucune information nouvelle. | |
| DATES | |
| Ajoute la date sous la forme « on (Month) (Day), (Year) » : | |
| - Uniquement si la légende ne contient pas déjà une date spécifique. | |
| - Si aucune date spécifique n’apparaît, ajouter la date du jour : on {date_du_jour}. | |
| - Si une date t'est fournie interprète la dans le format de la langue de la légende fournie | |
| - Si une date est ajoutée et que la légende finale comporte plus d’une phrase, la date doit apparaître à la fin de la première phrase. | |
| RESTITUTION | |
| -Produire UNIQUEMENT la légende finale en anglais | |
| -Aucune explication, aucun commentaire, aucune question.""" | |
| messages = [{"role": "system", "content": system_instructions}] | |
| for val in history: | |
| if val[0]: messages.append({"role": "user", "content": val[0]}) | |
| if val[1]: messages.append({"role": "assistant", "content": val[1]}) | |
| messages.append({"role": "user", "content": message}) | |
| response = "" | |
| for message in client.chat_completion(messages, max_tokens=512, stream=True, temperature=0.2): | |
| token = message.choices[0].delta.content | |
| response += token | |
| yield response | |
| demo = gr.ChatInterface( | |
| respond, | |
| title="CaptionMaster 📸", | |
| description="Outil de traduction et vérification de légendes photo aux normes strictes.", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |