IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expressions régulières sur réponse de chatgpt


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 52
    Par défaut Expressions régulières sur réponse de chatgpt
    Bonjour,
    désolé, je ne suis pas très fort sur les expressions régulières, particulièrement sur un texte de plusieurs lignes.

    Un de mes clients m'a demandé un logiciel qui envoie des requêtes à l'api de chatgpt, l'input étant des paragraphes en Haut-Allemand, et la sortie attendue :
    <h2>titre du paragraphe trouvé par gpt</h2>
    <p>Traduction proposé par gpt</p>
    <p>Note critique : une note critique du paragraphe</p>
    Moses est satisfait des titres, traductions et notes mais chatgpt refuse d'appliquer mes directives sur le formatage de la réponse, il sort toujours une réponse de la forme :
    ## Titre

    Traduction

    ### Note critique: blabla
    Je cherche l'expression régulière miracle qui permettra de formater la réponse de chatgpt comme le souhaite le client.
    Merci de votre aide !

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 319
    Par défaut
    bonjour

    la sortie est en markdown. Il est simple de trouver des libs php "markdown to html".

    note: normalement on peut dire au chat de ne pas utiliser markdown en sortie, mais il me semble qu'il ne peut faire une sortie html.
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 52
    Par défaut Mark down
    Merci papajoker de l'attention portée à ma requête et de m'avoir informé du concept de markdown que je ne connaissais pas, on en apprend tous les jours !
    Le problème, c'est que je prends ma retraite à la fin du printemps et que ça me fatigue d'installer une librairie juste pour ce que pourrait faire une ligne de code avec une expression régulière.
    Je laisse donc la question ouverte sachant qu'au pire, pendant ma promenade digestive, je me suis dit qu'à coup de strpos sur ## et ### je pourrai résoudre le problème en quelques lignes.
    Quant à savoir si ça me prendra plus de temps que comprendre et installer une lib markdown, Dieu seul le sait !

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 628
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 628
    Par défaut
    j'ai vu plusieurs articles qui expliquent comment avoir une réponse de chatgpt au format json. cela permettrait d'avoir les différents données bien structurées.

    il y a par exemple cet article en anglais qui donne des explications :
    https://www.freecodecamp.org/news/ho...ction-calling/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 52
    Par défaut
    Merci mathieu. Ta réponse sera sûrement utile à ceux qui veulent apprivoiser le chat de gepetto ;-) Pour ma part il sera moins chronophage d'écrire quelques lignes bourrines que de me plonger dans l'étude d'un article pointu. Si je n'étais pas si près de la retraite...

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 319
    Par défaut
    Citation Envoyé par Zac699 Voir le message
    Un de mes clients ...
    ...Pour ma part il sera moins chronophage d'écrire quelques lignes bourrines que de me plonger dans l'étude d'un article pointu.
    ...
    Si je n'étais pas si près de la retraite...
    tu veux nous faire croire que tu as déjà perdu 50% de tes neurones ??? Je dois m'inquiéter avec mes 60 ballais dans 20 jours ?

    Citation Envoyé par Zac699
    mais chatgpt refuse d'appliquer mes directives sur le formatage de la réponse
    ???
    je fais 2 tests avec gemini et chat gpt et j'obtient du html (avec ia, normalement on passe le format dans le contexte système plutôt que dans le prompt)

    "me présenter les regex en php, en 3 lignes maximum. ne pas formater la sortie en markdown mais utiliser html en réponse"
    // ou
    "me présenter les regex en php, en 3 lignes maximum. output in `text/html` format"

    Citation Envoyé par gemini
    <p>Les expressions régulières (regex) en PHP permettent de rechercher des motifs dans des chaînes de caractères.</p>
    <p>Des fonctions comme <code>preg_match()</code>, <code>preg_replace()</code> et <code>preg_split()</code> utilisent ces motifs pour diverses opérations.</p>
    <p>Elles offrent une grande flexibilité pour la validation, l'extraction et la manipulation de texte.</p>
    Citation Envoyé par gpt
    <p>Les regex en PHP permettent de rechercher, valider ou remplacer des chaînes via des motifs. On utilise principalement <code>preg_match</code>, <code>preg_replace</code> et <code>preg_split</code>. Les motifs sont entourés de délimiteurs, souvent <code>/</code>, et peuvent inclure des modificateurs comme <code>i</code> (insensible à la casse).</p>
    "me présenter les regex en php, en 3 lignes maximum. output in `bbcode` format" (format de ce forum)
    Citation Envoyé par gemini
    Les expressions régulières (regex) en PHP permettent de rechercher des motifs spécifiques dans des chaînes de caractères.
    Des fonctions comme , et utilisent ces motifs pour diverses manipulations.
    Elles offrent une grande flexibilité pour valider, extraire ou remplacer du texte de manière avancée.
    ---------------
    moins chronophage
    Sinon, tu peux demander à une ia de t'écrire ce convertisseur markdown/html ou même uniquement la(les) regex
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  7. #7
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 988
    Par défaut
    C'est vrai que si tu pouvais obtenir directement la réponse en json, ça te simplifierait grandement la tâche. Le découpage serait déjà fait.

    Pour passer du markdown au html voulu, je suis parti du principe (peut-être faux) que:
    • le markdown se limite aux deux dièses suivis d'un espace en début de ligne pour le titre et de trois dièses suivis d'un espace pour la note critique.
    • le titre n'occupe qu'une ligne


    Les lignes blanches avant et après la traduction sont considérées comme optionnelles (bien que je pense qu'elles ne le sont pas, mais dans le doute).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $pattern = <<<'REGEX'
    ~(*ANYCRLF)(*BSR_ANYCRLF)
    \A
    # on capture
    # le titre ↴ et la séquence de nouvelle ligne ↴
    \Q## \E    ( \N* \S )           \h*           ( \R )
    # on passe les éventuelles lignes blanches
    (?: \h* \R )*+
    # puis on capture la traduction
    ( \N* (?> \R \N* )*? )
    # de nouveau les éventuelles lignes blanches
    (?: \h* \R )++
    # puis on capture la note critique
    \Q### \E ( .* \S )
    ~xus
    REGEX;
     
    $replacement = '<h2>$1</h2>$2<p>$3</p>$2<p>$4</p>';
     
    $result = preg_replace($pattern, $replacement, $string);
    Les modificateurs:
    • x les caractères blancs sont ignorés dans la pattern, et # annonce un commentaire inline. Sauf lorsque ces caractères sont "quotés" (entre \Q et \E) ou lorsqu'ils sont dans une classe de caractères.
    • u Le point . représente un point de code et non plus un octet comme c'est le cas par défaut. Certaines classes de caractères comme \w sont étendues.
    • s Le point peut aussi représenter les caractères de saut de ligne.


    \R représente un saut de ligne. Comme la séquence de saut de ligne ne m'est pas connue, je précise avec la directive (*BSR_ANYCRLF) que la séquence représentée par \R (BackSlash R = BSR) peut être soit \r\n, soit \r, soit \n. C'est d'ailleurs pour ça que je capture \R dans le groupe 2 pour la préserver.
    De même, \N qui représente n'importe quel point de code qui n'est pas un saut de ligne, est régi par la directive (*ANYCRLF). Il ne peut donc représenter ni \r, ni \n.

    https://3v4l.org/pg3Yj
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

Discussions similaires

  1. Expression regulière sur les dates
    Par Konrad Florczak dans le forum Langage
    Réponses: 23
    Dernier message: 05/10/2006, 17h49
  2. expression régulière sur flux
    Par zais_ethael dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 19/09/2006, 23h38
  3. [VB05 Express] ScrollBar sur Form
    Par DeFCrew dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/09/2006, 11h47
  4. [V DoNet 2005 Express] Install sur XP Home SP1
    Par kacedda dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 18/11/2005, 18h55
  5. [Installation]SQL Server 2005 Express Edition sur XP home
    Par Médiat dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 06/08/2005, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo