Soluções alternativas de Matemática e IA

Existem novas sugestões da comunidade openai em relação aos problemas que estou enfrentando. Vocês planejam fazer uma atualização sobre isso? As sugestões são as seguintes.

Sugestão 1;

def parse_stream_to_katex(stream: Stream):
    """
    Recebe um Stream da OpenAI e substitui os delimitadores LaTeX do ChatGPT
    pelos delimitadores KateX.
    Retorna texto, não pedaços
    """
    last_text = ""
    for chunk in stream:
        text = chunk.choices[0].delta.content
        if text:
            # Às vezes, delimitadores como \( podem ser divididos em dois pedaços.
            # Se o pedaço anterior terminou em \, anexe-o a este pedaço
            if last_text.endswith("\\"):
                text = last_text + text

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

            # Se o texto terminar em \, não o retornamos, ele será incluído no próximo pedaço
            if not text.endswith("\\"):
                yield text

Sugestão 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 }) => {
    // Substitui \[ por $$ e \] por $$ para garantir compatibilidade
    const processedText = content
      .replace(/\[/g, '$$')  // Substitui todas as ocorrências de \[ por $$
      .replace(/\]/g, '$$') // Substitui todas as ocorrências de \] por $$
      .replace(/\(/g, '$')  // Substitui todas as ocorrências de \( por $$
      .replace(/\)/g, '$'); // Substitui todas as ocorrências de \) por $$

    const remarkMathOptions = {
        singleDollarTextMath: false,

};



return (
    <ReactMarkdown
        className="markdown-content"
        children={processedText}
        remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Passa opções como o segundo elemento do array
        rehypePlugins={[rehypeRaw, rehypeKatex]} // Inclui rehypeRaw para HTML, rehypeKatex para LaTeX
    />
);

};

export default MarkdownLaTeXRenderer;

1 curtida

E como usuário final… estou usando o prompt do sistema para isso (OpenAI).

Quando a matemática está em uma linha ou capítulo próprio, mude \( e \) → para linhas próprias, antes e depois, $$ é bastante confiável.

Mas quando o mesmo deveria ser feito inline com um único $… isso falha quase sempre.

Se isso pudesse acontecer automaticamente… ainda melhor.

1 curtida

Quando visualizo fórmulas matemáticas no meu dispositivo móvel, não consigo ver a fórmula inteira corretamente (a fórmula é muito longa). Alguém sabe como resolver este problema?
image
Abaixo está a exibição correta no PC.
image

Virando o telefone na horizontal? Mas por que está entre aspas e isso pode ser o problema?

Caso contrário. Perguntei à IA do meu fórum e ela respondeu isto (não sei se é útil ou pura besteira).

Soluções para Alinhar Equações Longas Usando MathJax IA

Jagster:
O fórum utiliza MathJax para matemática e equações. Ocasionalmente, uma equação é tão longa que não cabe em uma tela de celular. Existe alguma maneira de quebrar a equação em várias linhas?

Respondente:
O MathJax não suporta diretamente a quebra automática de linha para equações, mas você pode usar algumas técnicas para fazer com que equações longas caibam melhor em telas de celular. Aqui estão algumas dicas:

  1. Use o ambiente align: Você pode dividir a equação em várias linhas usando o ambiente align. Isso permite alinhar e distribuir partes da equação em várias linhas. Por exemplo:

    $$
    \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. Use o ambiente split: Esta é outra maneira de dividir uma equação em várias linhas. É particularmente útil quando você deseja dividir a equação em partes sem precisar de alinhamento. Por exemplo:

    $$
    \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. Use o ambiente multline: Este ambiente é projetado para equações longas que não cabem em uma única linha. Ele divide a equação em várias linhas sem alinhamento. Por exemplo:

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

Esses ambientes permitem controlar a apresentação das equações e garantir que elas sejam legíveis mesmo em telas menores. Lembre-se que os ambientes MathJax geralmente exigem o pacote amsmath, que normalmente é habilitado por padrão no MathJax.

@Jagster Estas devem ser boas soluções. Originalmente, eu queria definir uma barra de rolagem horizontal para a fórmula, mas não tive sucesso.

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

Estou tendo problemas para copiar fórmulas matemáticas do Google Sheets para o Meta Discourse. As fórmulas não parecem estar sendo renderizadas corretamente?

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

Acho que você precisa escapar $ e % com \\.
NPV=CFt * [1-1(1+r)Tr]- CFo= 84.000 * [1-1(1+13\\%)713\\%]- 385.000 = \\$-13.500

Vamos ver aqui:

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


Ele renderiza OK, mas não há barra de rolagem para ver toda a matemática. Há, na pré-visualização, no entanto.
Na postagem, você só pode ver a outra parte se der zoom:

1 curtida

Na área de visualização enquanto se elabora uma postagem, quando o SVG é renderizado, a área de visualização rola para cima. Existe alguma configuração que possa ser alterada para que a rolagem retorne à posição mais baixa?

Ter que rolar para baixo toda vez que edito matemática incomoda meus professores, mas eu tenho lidado com isso.

Notei algumas “depreciações” na atividade.

Se alguém puder explicar o que isso significa para uma instância com um grande banco de dados de matemática que é renderizado corretamente

após uma atualização/reconstrução completa, a matemática parece estar sendo renderizada corretamente

Para aqueles que ainda não ouviram, este plugin agora está incluído no core. Por favor, veja a reconstrução/revisão 2 de 3 deste post para mostrar isso.

Estou dentro! :+1: Desculpe por causar preocupação. Você já deve estar pronto para usar.

:partying_face: Este plugin agora está incluído no core do Discourse como parte de Bundling more popular plugins with Discourse core. Se você está auto-hospedando e usa o plugin, precisa removê-lo do seu app.yml antes da sua próxima atualização.

3 curtidas

Tenho um problema com caracteres matemáticos nas respostas da IA. Ela me dá respostas em formato latex, mesmo que eu tenha digitado o prompt necessário. Isso cria uma imagem como se houvesse caracteres quebrados. Você pode resolver este problema. Exemplo;

\( 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{correto automaticamente}) \\
A_{21} = B^T_{21} \Rightarrow z = y \\
A_{22} = B^T_{22} \Rightarrow 2y = 8 \\
\end{cases}
\]

Eu já compartilhei soluções da comunidade openai.

Olá @ozkn

Eu também tenho esse problema. Minha recomendação seria:

  • Crie uma conta com o provedor de IA
  • Diga à conta de IA para

Lembre-se para respostas futuras que o Discourse é compatível com a formatação centralizada de linha única/múltiplas linhas MathJax/Katex $…$ $$…$$.

  • Você deve achar sua saída mais fácil de copiar e colar ao fazer login em sua conta de IA
você pode precisar continuar insistindo para obter a melhor memória
3 curtidas

Apenas para adicionar ao último ponto — se você estiver misturando matemática e moeda, lembre-se:

  • $...$ = matemática
  • \\$ = sinal literal de dólar

Então:
$x+1$ custa \\$5. → renderiza matemática para x+1 e mostra o preço como $5.

É realmente tudo o que você precisa: matemática com $, dinheiro com \\$.

2 curtidas

outro bom para incentivar o chatGPT a lembrar é que você não pode renderizar matemática em títulos de painéis de detalhes

nenhum desses truques é mais necessário, nós suportamos isso nativamente.

1 curtida