Solutions de contournement pour les maths et l'IA

Il y a de nouvelles suggestions de la communauté openai concernant les problèmes que je rencontre. Prévoyez-vous de faire une mise à jour à ce sujet ? Les suggestions sont les suivantes.

Suggestion 1 :

def parse_stream_to_katex(stream: Stream):
    """
    Prend un flux OpenAI et remplace les délimiteurs LaTeX de ChatGPT
    par ceux de KateX.
    Produit du texte, pas des morceaux
    """
    last_text = ""
    for chunk in stream:
        text = chunk.choices[0].delta.content
        if text:
            # Parfois, les délimiteurs comme \( peuvent être divisés en deux morceaux.
            # Si le morceau précédent se terminait par \, ajoutez-le à ce morceau
            if last_text.endswith("\\"):
                text = last_text + text

            text = (
                text.replace(r"\[", "$$")
                .replace(r"\]", "$$")
                .replace(r"\(", "$")
                .replace(r"\)", "$")
            )
            last_text = text

            # Si le texte se termine par \, nous ne le retournons pas, nous l'inclurons dans le prochain morceau
            if not text.endswith("\\"):
                yield text

Suggestion 2 :

// MarkdownLaTeXRenderer.js
import React from 'react';
import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm';
import remarkMath from 'remark-math';
import rehypeRaw from 'rehype-raw';
import rehypeKatex from 'rehype-katex';

const MarkdownLaTeXRenderer = ({ content }) => {
    // Remplacez \[ par $$ et \] par $$ pour assurer la compatibilité
    const processedText = content
      .replace(/\[/g, '$$')  // Remplace toutes les occurrences de \[ par $$
      .replace(/\]/g, '$$') // Remplace toutes les occurrences de \] par $$
      .replace(/\(/g, '$')  // Remplace toutes les occurrences de \( par $
      .replace(/\)/g, '$'); // Remplace toutes les occurrences de \) par $

    const remarkMathOptions = {
        singleDollarTextMath: false,

};



return (
    <ReactMarkdown
        className="markdown-content"
        children={processedText}
        remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Passez les options comme deuxième élément du tableau
        rehypePlugins={[rehypeRaw, rehypeKatex]} // Incluez rehypeRaw pour HTML, rehypeKatex pour LaTeX
    />
);

};

export default MarkdownLaTeXRenderer;

1 « J'aime »

Et en tant qu’utilisateur final… J’utilise l’invite système pour cela (OpenAI).

Lorsque les mathématiques sont sur leur propre ligne ou chapitre, remplacez \( et \) par des lignes séparées, avant et après, $$ est assez fiable.

Mais lorsque la même chose devrait se faire en ligne avec un seul $, cela échoue presque à chaque fois.

Si cela pouvait se faire automatiquement… encore mieux.

1 « J'aime »

Lorsque j’affiche des formules mathématiques sur mon appareil mobile, je ne peux pas voir la formule entière correctement (la formule est trop longue). Quelqu’un sait-il comment résoudre ce problème ?
image
Ci-dessous, l’affichage correct sur le PC.
image

Tourner le téléphone horizontalement ? Mais pourquoi est-ce entre guillemets, et cela pourrait-il être le problème ?

Sinon. J’ai demandé à l’IA de mon forum et elle a répondu ceci (aucune idée si c’est utile ou pure foutaise).

Solutions pour aligner de longues équations avec MathJax IA

Jagster :
Le forum utilise MathJax pour les mathématiques et les équations. Parfois, une équation est si longue qu’elle ne rentre pas sur un écran mobile. Existe-t-il un moyen de diviser l’équation en plusieurs lignes ?

Répondant :
MathJax ne prend pas directement en charge le retour à la ligne automatique pour les équations, mais vous pouvez utiliser certaines techniques pour que les longues équations s’adaptent mieux aux écrans mobiles. Voici quelques conseils :

  1. Utilisez l’environnement align : Vous pouvez diviser l’équation en plusieurs lignes en utilisant l’environnement align. Cela vous permet d’aligner et de répartir des parties de l’équation sur plusieurs lignes. Par exemple :

    $$
    \begin{align}
    a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
    \end{align}
    $$
    
  2. Utilisez l’environnement split : C’est une autre façon de diviser une équation en plusieurs lignes. Elle est particulièrement utile lorsque vous souhaitez diviser l’équation en parties sans avoir besoin d’alignement. Par exemple :

    $$
    \begin{split}
    a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
    \end{split}
    $$
    
  3. Utilisez l’environnement multline : Cet environnement est conçu pour les longues équations qui ne rentrent pas sur une seule ligne. Il divise l’équation en plusieurs lignes sans alignement. Par exemple :

    $$
    \begin{multline}
    a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
    \end{multline}
    $$
    

Ces environnements vous permettent de contrôler la présentation des équations et de vous assurer qu’elles sont lisibles même sur de petits écrans. N’oubliez pas que les environnements MathJax nécessitent souvent le package amsmath, qui est généralement activé par défaut dans MathJax.

@Jagster Ces solutions devraient être bonnes. Je voulais à l’origine définir une barre de défilement horizontale pour la formule, mais cela n’a pas abouti.

.math-tex {
    overflow-x: auto;
    max-width: 100%;
    padding: 5px 0;
    display: block;
}

J’ai du mal à copier les formules mathématiques de Google Sheets dans Meta Discourse. Les formules ne semblent-elles pas s’afficher correctement ?

NPV=CFt * [1-1(1+r)Tr]- CFo= 84 000 * [1-1(1+13%)713%]- 385 000 = $-13 500

PI = 1 + NPVCFo = 1+ n=1784,000(1,13)n - 385 000385 000 ~ 0,965

Je pense que vous devez échapper $ et % avec \\.
NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13\\%)713\\%]- 385,000 = \\$-13,500

Voyons voir ici :

NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13\\%)713\\%]- 385,000 = \\$-13,500
PI = 1 + NPVCFo = 1+ n=1784,000(1,13)n - 385,000385,000 ~ 0,965


Cela s’affiche correctement, mais il n’y a pas de barre de défilement pour voir l’intégralité des mathématiques. Il y en a une dans l’aperçu, cependant.
Dans la publication, vous ne pouvez voir l’autre partie qu’en zoomant :

Dans le plan de prévisualisation lors de la rédaction d’un article, lorsque le SVG est rendu, le plan de prévisualisation défile vers le haut. Existe-t-il un paramètre qui peut être modifié afin que le défilement revienne à la position la plus basse ?

Devoir faire défiler vers le bas à chaque fois que je modifie des mathématiques agace mes professeurs, mais je m’en suis accommodé.

J’ai remarqué quelques « dépréciations » dans l’activité.

Si quelqu’un pouvait expliquer ce que cela signifie pour une instance avec une grande base de données de mathématiques qui s’affiche correctement

après une mise à jour/reconstruction complète, les mathématiques semblent s’afficher correctement

Pour ceux qui ne l’ont pas entendu, ce plugin est maintenant inclus dans le cœur. Veuillez consulter la reconstruction/révision 2 sur 3 de ce post pour le montrer.

Dans l’action ! :+1: Désolé d’avoir causé de l’inquiétude. Vous devriez être prêt maintenant.

:partying_face: Ce plugin est maintenant inclus dans le cœur de Discourse dans le cadre de Bundling more popular plugins with Discourse core. Si vous auto-hébergez et utilisez le plugin, vous devez le supprimer de votre app.yml avant votre prochaine mise à niveau.

3 « J'aime »

J’ai un problème de caractères mathématiques dans les réponses de l’IA. Elle me donne des réponses au format latex même si j’ai tapé la requête requise. Cela crée une image comme s’il y avait des caractères cassés. Pouvez-vous résoudre ce problème. Exemple :

\( A = \\begin{pmatrix} x & -1 \\ z & 2y \\end{pmatrix} \\)

\\\[
\\boxed{
x = 0, \\quad y = 4, \\quad z = 4
}
\\\]

\\\[
\\begin{cases}
A\{11} = B^T\{11} \\Rightarrow x = y - z \\\\
A\{12} = B^T\{12} \\Rightarrow -1 = -1 \\quad (\\text{benar otomatis}) \\\\
A\{21} = B^T\{21} \\Rightarrow z = y \\\\
A\{22} = B^T\{22} \\Rightarrow 2y = 8 \\\\
\\end{cases}
\\\]

J’ai déjà partagé des solutions de la communauté openai.

Salut @ozkn

J’ai aussi ce problème. Ma recommandation serait :

  • Créez un compte auprès du fournisseur d’IA
  • Dites au compte d’IA de

se souvenir pour les futures réponses que Discourse est compatible avec le formatage en ligne ou centré sur plusieurs lignes MathJax/Katex $…$ $$…$$.

  • Vous devriez trouver votre sortie plus facile à copier-coller lorsque vous êtes connecté à votre compte d’IA
vous devrez peut-être continuer à pousser pour la meilleure mémoire
3 « J'aime »

Pour ajouter à ce dernier point — si vous mélangez mathématiques et monnaie, rappelez-vous :

  • $...$ = mathématiques
  • \\$ = signe dollar littéral

Donc :
$x+1$ coûte \\$5. → affiche les mathématiques pour x+1 et le prix comme $5.

C’est tout ce dont vous avez besoin : des mathématiques avec $, de l’argent avec \\$.

2 « J'aime »

une autre bonne chose pour encourager chatGPT à se souvenir est que vous ne pouvez pas rendre les mathématiques dans les titres des volets de détails

Aucune de ces solutions de contournement n’est plus nécessaire, nous le prenons désormais en charge nativement.