Soluciones alternativas de Matemáticas e IA

Hay nuevas sugerencias de la comunidad de openai con respecto a los problemas que estoy experimentando. ¿Planean hacer una actualización al respecto? Las sugerencias son las siguientes.

Sugerencia 1;

def parse_stream_to_katex(stream: Stream):
    """
    Toma una transmisión de OpenAI y reemplaza los delimitadores de LaTeX de ChatGPT
    con los de KateX.
    Genera texto, no fragmentos
    """
    last_text = ""
    for chunk in stream:
        text = chunk.choices[0].delta.content
        if text:
            # A veces, los delimitadores como \( pueden dividirse en dos fragmentos.
            # Si el fragmento anterior terminó en \, prepáralo a este fragmento
            if last_text.endswith("\\"):
                text = last_text + text

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

            # Si el texto termina en \, no lo devolvemos, lo incluiremos en el siguiente fragmento
            if not text.endswith("\\"):
                yield text

Sugerencia 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 }) => {
    // Reemplaza \[ con $$ y \] con $$ para garantizar la compatibilidad
    const processedText = content
      .replace(/\[/g, '$$')  // Reemplaza todas las ocurrencias de \[ con $$
      .replace(/\]/g, '$$') // Reemplaza todas las ocurrencias de \] con $$
      .replace(/\(/g, '$')  // Reemplaza todas las ocurrencias de \( con $
      .replace(/\)/g, '$'); // Reemplaza todas las ocurrencias de \) con $

    const remarkMathOptions = {
        singleDollarTextMath: false,

};



return (
    <ReactMarkdown
        className="markdown-content"
        children={processedText}
        remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Pasa las opciones como el segundo elemento del array
        rehypePlugins={[rehypeRaw, rehypeKatex]} // Incluye rehypeRaw para HTML, rehypeKatex para LaTeX
    />
);

};

export default MarkdownLaTeXRenderer;

1 me gusta

Y como usuario final… estoy usando el prompt del sistema para eso (OpenAI).

Cuando las matemáticas están en una línea o capítulo propio, cambia \( y \) → en líneas propias, antes y después, $$ es bastante confiable.

Pero cuando lo mismo debería hacerse en línea con un solo $, eso falla casi siempre.

Si eso pudiera suceder automáticamente… aún mejor.

1 me gusta

Cuando veo fórmulas matemáticas en mi dispositivo móvil, no puedo ver la fórmula completa correctamente (la fórmula es demasiado larga). ¿Alguien sabe cómo solucionar este problema?
image
A continuación se muestra la visualización correcta en la PC.
image

¿Girar el teléfono horizontalmente? Pero, ¿por qué está entre comillas y puede ser ese el problema?

Por lo demás. Le pregunté a la IA de mi foro y respondió esto (no tengo idea si es útil o pura basura).

Soluciones para alinear ecuaciones largas usando MathJax IA

Jagster:
El foro utiliza MathJax para matemáticas y ecuaciones. Ocasionalmente, una ecuación es tan larga que no cabe en una pantalla móvil. ¿Hay alguna manera de dividir la ecuación en varias líneas?

Asiavastaaja:
MathJax no admite directamente el salto de línea automático para ecuaciones, pero puedes usar algunas técnicas para que las ecuaciones largas encajen mejor en las pantallas móviles. Aquí tienes algunos consejos:

  1. Usa el entorno align: Puedes dividir la ecuación en varias líneas usando el entorno align. Esto te permite alinear y distribuir partes de la ecuación en varias líneas. Por ejemplo:

    $$
    \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. Usa el entorno split: Esta es otra forma de dividir una ecuación en varias líneas. Es especialmente útil cuando quieres dividir la ecuación en partes sin necesidad de alineación. Por ejemplo:

    $$
    \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. Usa el entorno multline: Este entorno está diseñado para ecuaciones largas que no caben en una sola línea. Divide la ecuación en varias líneas sin alineación. Por ejemplo:

    $$
    \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}
    $$
    

Estos entornos te permiten controlar la presentación de las ecuaciones y asegurarte de que sean legibles incluso en pantallas más pequeñas. Recuerda que los entornos de MathJax a menudo requieren el paquete amsmath, que generalmente está habilitado por defecto en MathJax.

@Jagster Estas deberían ser buenas soluciones. Originalmente quería configurar una barra de desplazamiento horizontal para la fórmula, pero no tuve éxito.

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

Tengo problemas para copiar fórmulas matemáticas de Google Sheets a Meta Discourse. ¿Las fórmulas no se están representando correctamente?

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

Creo que necesitas escapar $ y % con \\.
NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13\\%)713\\%]- 385,000 = \\$-13,500

Veamos aquí:

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


Se renderiza bien, pero no hay barra de desplazamiento para ver las matemáticas completas. Sin embargo, sí la hay en la vista previa.
En la publicación, solo puedes ver la otra parte si haces zoom:

1 me gusta

En el plano de vista previa mientras se redacta una publicación, cuando se renderiza el SVG, el plano de vista previa se desplaza hacia arriba. ¿Hay alguna configuración que se pueda cambiar para que el desplazamiento vuelva a la posición más baja?

Tener que desplazarme hacia abajo cada vez que edito matemáticas molesta a mis profesores, pero me las he arreglado.

He notado un par de “deprecate” en la actividad.

Si alguien pudiera explicar qué significa esto para una instancia con una gran base de datos de matemáticas que se renderiza correctamente

después de una actualización/reconstrucción completa, las matemáticas parecen renderizarse bien

Para aquellos que no lo sepan, este plugin ahora está incluido en el núcleo. Consulte la reconstrucción/revisión 2 de 3 de esta publicación para mostrar esto.

¡En el acto! :+1: Disculpas por causar preocupación. Deberías estar listo para empezar ahora.

:partying_face: Este plugin ahora está incluido en el núcleo de Discourse como parte de Bundling more popular plugins with Discourse core. Si te autoalojas y usas el plugin, necesitas eliminarlo de tu app.yml antes de tu próxima actualización.

3 Me gusta

Tengo un problema con los caracteres matemáticos en las respuestas de la IA. Me da respuestas en formato latex aunque he escrito la indicación requerida. Esto crea una imagen como si hubiera caracteres rotos. ¿Puedes solucionar este problema? Ejemplo;

$$ 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{correcto automáticamente}) \ A_{21} = B^T_{21} \Rightarrow z = y \ A_{22} = B^T_{22} \Rightarrow 2y = 8 \ \end{cases} $$

Anteriormente compartí soluciones de la comunidad de openai.

Hola @ozkn

Yo también tengo este problema. Mi recomendación sería:

  • Regístrate para obtener una cuenta con el proveedor de IA.
  • Dile a la cuenta de IA que:

recuerde para futuras respuestas que Discourse es compatible con el formato centrado en línea o multilínea de MathJax/Katex $…$ $$…$$.

  • Deberías encontrar tu salida más fácil de copiar y pegar cuando hayas iniciado sesión en tu cuenta de IA.
puede que necesites seguir insistiendo para obtener la mejor memoria
3 Me gusta

Solo para añadir al último punto: si estás mezclando matemáticas y divisas, recuerda:

  • $...$ = matemáticas
  • \\$ = signo de dólar literal

Así:
$x+1$ cuesta \\$5. → renderiza las matemáticas para x+1 y muestra el precio como $5.

Eso es todo lo que necesitas: matemáticas con $, dinero con \\$.

2 Me gusta

otro buen punto para animar a ChatGPT a recordar es que no puedes renderizar matemáticas en los títulos de los paneles de detalles

ninguno de estos trucos ya es necesario, lo soportamos de forma nativa.

1 me gusta