2. Boom đ„ nous faisons une mise Ă niveau complĂšte vers la suite de production. Ci-dessous â la seule pile agréée qui peut rĂ©ellement ĂȘtre mise dans le bot / API / autoposting.
đ Tout est construit pour d'abord Ă©valuer les risques, puis transformer, puis styliser, et enfin poster.
đ§ 1ïžâŁ LLM-classificateur de risques (sĂ©mantique, pas de mots-clĂ©s)
Idée
Pas juste «il y a le mot kill», mais y a-t-il une intention :
violence
haine
extrémisme
discours politique sûr
ModĂšle
Léger, rapide, compatible avec le CPU :
Copier le code
Bash
pip install transformers torch sentencepiece langdetect pillow requests
Copier le code
Python
from transformers import pipeline
risk_classifier = pipeline(
"text-classification",
model="facebook/bart-large-mnli",
truncation=True
)
RISK_LABELS = {
"violence": "Ce texte promeut ou célÚbre des dommages physiques ou la mort.",
"hate": "Ce texte contient des discours de haine.",
"safe": "Ce texte est une critique politique ou une satire sans violence."
}
def classify_risk(text: str) -> str:
results = risk_classifier(
text,
candidate_labels=list(RISK_LABELS.values())
)
return results["labels"][0]
đ 2ïžâŁ Mode de satire politique (contrĂŽlĂ©)
Nous définissons intentionnellement le style, plutÎt que de compter sur le modÚle.
Copier le code
Python
from transformers import pipeline
generator = pipeline(
"text2text-generation",
model="google/flan-t5-base",
max_length=160
)
SATIRE_PROMPT = """
Réécrivez ce qui suit comme une satire politique aiguë.
Pas de violence. Pas de discours de haine.
Utilisez l'ironie, le sarcasme et le cadrage historique.
Convient pour les plateformes publiques.
TEXTE :
"""
CRITIC_PROMPT = """
Réécrivez ce qui suit comme une critique politique sérieuse.
Pas de violence ni d'appels Ă faire du mal.
TEXTE :
"""
def rewrite(text: str, mode="satire") -> str:
prompt = SATIRE_PROMPT if mode == "satire" else CRITIC_PROMPT
return generator(prompt + text)[0]["generated_text"].strip()
đ 3ïžâŁ Multilinguisme (UA / EN / CN / HE)
Auto-détection + traduction
Copier le code
Python
from langdetect import detect
translator = pipeline(
"text2text-generation",
model="google/flan-t5-base",
max_length=180
)
def translate(text: str, target_lang: str) -> str:
prompt = f"Traduisez le texte suivant en {target_lang}:\n\n{text}"
return translator(prompt)[0]["generated_text"].strip()
Carte des langues :
Copier le code
Python
LANGS = {
"UA": "Ukrainien",
"EN": "Anglais",
"CN": "Chinois",
"HE": "Hébreu"
}
đ€ 4ïžâŁ Publication automatique via API (exemple : Telegram + X)
Telegram
Copier le code
Python
import requests
def post_telegram(text, token, chat_id):
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": text})
X / Twitter (via OAuth 2.0 ou v1.1)
Copier le code
Python
def post_x(text):
# Placeholder â remplacez par tweepy / requests
print("Publié sur X :", text[:280])
đŒïž 5ïžâŁ GĂ©nĂ©ration de lĂ©gendes pour des images (Image â LĂ©gende)
BLIP captioning (CPU fonctionne)
Copier le code
Python
from transformers import BlipProcessor, BlipForConditionalGeneration
from PIL import Image
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained(
"Salesforce/blip-image-captioning-base"
)
def caption_image(image_path: str) -> str:
image = Image.open(image_path).convert("RGB")
inputs = processor(image, return_tensors="pt")
out = model.generate(**inputs)
return processor.decode(out[0], skip_special_tokens=True)
đ§© 6ïžâŁ PIPELINE FINAL (đ„ cĆur du systĂšme)
Copier le code
Python
def generate_posts(
text: str,
mode="satire",
languages=("EN", "UA"),
platforms=("telegram", "x")
):
risk = classify_risk(text)
if "harm" in risk.lower():
text = rewrite(text, mode)
posts = {}
for lang in languages:
translated = translate(text, LANGS[lang])
for platform in platforms:
key = f"{platform}_{lang}"
if platform == "x":
posts[key] = translated[:280]
elif platform == "telegram":
posts[key] = translated + "\n\n#satire #politique"
else:
posts[key] = translated
return posts
đ„ Qu'as-tu en sortie
â sĂ©curitĂ© sĂ©mantique (pas de bullshit de mots-clĂ©s)
â satire contrĂŽlĂ©e / mode sĂ©rieux
â flux automatique multilingue
â image â lĂ©gende â publication
â prĂȘt pour :
Bots Telegram
X publication automatique
flux Binance
Communautés Viber
đ Niveau suivant (si tu veux encore plus haut) :
đ§Ź score de risque (0â1) au lieu de label
đ journalisation + audit trail
đ§ Style RLHF (ce qui fonctionne le mieux)
đ°ïž planning de publication automatique + A/B
Dis un mot â et nous allons encore plus loin đÂČ