Tous les guides
Intermédiaire-AvancéÀ votre rythmeGuide gratuitSection 25/33

OpenAI API et prompt engineering

Apprenez à construire et vérifier une application web avec des outils de développement et des assistants IA. Pratiquez les étapes de conception, code et validation.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 13.6.1 : OpenAI API et prompt engineering

🎯 Objectif pédagogique

Intégrer l'API OpenAI dans une application Rails, comprendre les modèles GPT, maîtriser le prompt engineering et construire des fonctionnalités IA concrètes.


L'API OpenAI

L'API OpenAI donne accès aux modèles GPT-4, GPT-3.5 et aux embeddings. C'est l'interface programmatique qui permet à vos applications d'utiliser l'intelligence artificielle.

# Gemfile
gem 'ruby-openai'
# config/initializers/openai.rb
OpenAI.configure do |config|
  config.access_token = ENV.fetch('OPENAI_API_KEY')
  config.organization_id = ENV.fetch('OPENAI_ORG_ID', nil)
end

OPENAI_CLIENT = OpenAI::Client.new

Premier appel API

# app/services/ai_service.rb

class AiService
  def self.chat(prompt, system_message: nil)
    messages = []
    messages << { role: 'system', content: system_message } if system_message
    messages << { role: 'user', content: prompt }

    response = OPENAI_CLIENT.chat(
      parameters: {
        model: 'gpt-4',
        messages: messages,
        temperature: 0.7,
        max_tokens: 1000
      }
    )

    response.dig('choices', 0, 'message', 'content')
  end
end

# Utilisation
result = AiService.chat(
  'Résume cet article en 3 points clés',
  system_message: 'Tu es un assistant de rédaction concis et précis.'
)

Prompt Engineering : l'art du prompt

Le prompt engineering est la compétence de formuler des instructions claires pour obtenir le résultat désiré des LLMs.

# MAUVAIS prompt
AiService.chat('Écris quelque chose sur le marketing')

# BON prompt - structuré
AiService.chat(
  'Rédige 5 titres d email marketing pour une vente flash de 48h ' \
  'sur des chaussures de running. ' \
  'Cible : hommes 25-40 ans, sportifs occasionnels. ' \
  'Ton : urgent mais pas agressif. ' \
  'Format : un titre par ligne, max 60 caractères.',
  system_message: 'Tu es un expert en copywriting email avec 10 ans ' \
    'd expérience en e-commerce sportif.'
)

Les techniques de prompt engineering

# 1. Few-shot prompting (exemples)
prompt = <<~PROMPT
  Classifie le sentiment de ces avis client.

  Exemples :
  "Livraison rapide, produit top !" => POSITIF
  "Trois semaines d attente, inadmissible" => NÉGATIF
  "Le produit est correct, rien de spécial" => NEUTRE

  Classifie :
  "#{avis_client}"
PROMPT

# 2. Chain-of-thought (raisonnement étape par étape)
prompt = <<~PROMPT
  Analyse ce business plan étape par étape :
  1. Identifie le marché cible
  2. Évalue la proposition de valeur
  3. Analyse le modèle de revenus
  4. Identifie les risques
  5. Donne une note de 1 à 10

  Business plan : #{business_plan}

  Raisonne à voix haute avant de donner ta note finale.
PROMPT

# 3. Structured output (JSON)
prompt = <<~PROMPT
  Extrais les informations de cette facture.
  Retourne UNIQUEMENT un JSON valide avec cette structure :
  {
    "numero_facture": "string",
    "date": "YYYY-MM-DD",
    "montant_total": number,
    "lignes": [{"description": "string", "montant": number}]
  }

  Facture : #{texte_facture}
PROMPT

result = AiService.chat(prompt)
data = JSON.parse(result)

Intégrer l'IA dans un Controller Rails

# app/controllers/ai_summaries_controller.rb

class AiSummariesController < ApplicationController
  def create
    @article = Article.find(params[:article_id])
    authorize @article

    summary = AiService.chat(
      "Résume cet article en 3 bullet points de max 20 mots chacun :\n\n#{@article.content}",
      system_message: 'Tu es un assistant de synthèse. Sois concis et précis.'
    )

    @article.update(ai_summary: summary)

    redirect_to @article, notice: 'Résumé IA généré !'
  end
end
Vérification rapide

Quelle est la différence entre temperature 0 et temperature 1 dans l'API OpenAI ?

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.