Modération

Développer des systèmes d'IA avec l'API d'OpenAI

Francesca Donadoni

Curriculum Manager, DataCamp

Comprendre la modération dans l'API d'OpenAI

  • Modération : processus d'analyse d'une entrée pour déterminer si elle contient du contenu qui enfreint des politiques ou des lignes directrices prédéfinies Schéma : un message utilisateur lu par l'API de modération d'OpenAI, qui renvoie les probabilités d'appartenance du message à des catégories de contenu malveillant
Développer des systèmes d'IA avec l'API d'OpenAI

Comprendre la modération dans l'API d'OpenAI

Schéma : un message utilisateur lu par l'API de modération d'OpenAI et la liste des catégories de contenu malveillant considérées en réponse

Développer des systèmes d'IA avec l'API d'OpenAI

Modérer du contenu

moderation_response = client.moderations.create(input="""
...until someone draws an Exploding Kitten.
When that happens, that person explodes. They are now dead.
This process continues until...
""") 

print(moderation_response.results[0].categories.violence)
True
1 https://ek.explodingkittens.com/how-to-play/exploding-kittens
Développer des systèmes d'IA avec l'API d'OpenAI

Modération selon le contexte

moderation_response = client.moderations.create(input="""
In the deck of cards are some Exploding Kittens. You play the game by putting the deck face down and taking turns drawing cards until someone draws an Exploding Kitten.
When that happens, that person explodes. They are now dead.
This process continues until there's only 1 player left, who wins the game.
The more cards you draw, the greater your chances of drawing an Exploding Kitten.
""") 

moderation_response.results[0].categories.violence
False
Développer des systèmes d'IA avec l'API d'OpenAI

Injection de consignes (prompt injection)

Une femme utilisant un clavardeur avec une invite malveillante injectée

Développer des systèmes d'IA avec l'API d'OpenAI

Injection de consignes (prompt injection)

 

  • Limiter la longueur des invites
  • Limiter le nombre de jetons de sortie générés
  • Utiliser du contenu présélectionné comme entrée et sortie validées
Développer des systèmes d'IA avec l'API d'OpenAI

Ajouter des garde-fous

user_request = """
In the deck of cards are some Exploding Kittens. You play the game by putting the 
deck face down and taking turns drawing cards until  someone draws an Exploding 
Kitten. When that happens, that person explodes. They are now dead.
This process continues until there's only 1 player left, who wins the game.
The more cards you draw, the greater your chances of drawing an Exploding Kitten.
"""

messages = [{"role": "system", "content": "Your role is to assess whether the user question is allowed or not. The allowed topics are games of chess only. If the topic is allowed, reply with an answer as normal, otherwise say 'Apologies, but the topic is not_allowed.'",}, {"role": "user", "content": user_request},]
Développer des systèmes d'IA avec l'API d'OpenAI

Ajouter des garde-fous

response = client.chat.completions.create(
    model="gpt-4o-mini", 
    messages=messages
)

print(response.choices[0].message.content)
Apologies, but the topic is not allowed.
Développer des systèmes d'IA avec l'API d'OpenAI

Passons à la pratique !

Développer des systèmes d'IA avec l'API d'OpenAI

Preparing Video For Download...