Soluzioni alternative per Matematica e AI

Ci sono nuovi suggerimenti dalla community di openai riguardo ai problemi che sto riscontrando. Hai in programma di apportare un aggiornamento in merito? I suggerimenti sono i seguenti.

Suggerimento 1:

def parse_stream_to_katex(stream: Stream):
    """
    Prende uno Stream di OpenAI e sostituisce i delimitatori LaTeX di ChatGPT
    con quelli di KateX.
    Restituisce testo, non blocchi
    """
    last_text = ""
    for chunk in stream:
        text = chunk.choices[0].delta.content
        if text:
            # A volte i delimitatori come \( possono essere divisi in due blocchi.
            # Se il blocco precedente terminava con \, anteporlo a questo blocco
            if last_text.endswith("\\"):
                text = last_text + text

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

            # Se il testo termina con \, non lo restituiamo, lo includeremo nel blocco successivo
            if not text.endswith("\\"):
                yield text

Suggerimento 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 }) => {
    // Sostituisce \[ con $$ e \] con $$ per garantire la compatibilità
    const processedText = content
      .replace(/\[/g, '$$')  // Sostituisce tutte le occorrenze di \[ con $$
      .replace(/\]/g, '$$') // Sostituisce tutte le occorrenze di \] con $$
      .replace(/\(/g, '$')  // Sostituisce tutte le occorrenze di \( con $
      .replace(/\)/g, '$'); // Sostituisce tutte le occorrenze di \) con $

    const remarkMathOptions = {
        singleDollarTextMath: false,

};



return (
    <ReactMarkdown
        className="markdown-content"
        children={processedText}
        remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Passa le opzioni come secondo elemento dell'array
        rehypePlugins={[rehypeRaw, rehypeKatex]} // Include rehypeRaw per HTML, rehypeKatex per LaTeX
    />
);

};

export default MarkdownLaTeXRenderer;

1 Mi Piace

E come utente finale… sto usando il prompt di sistema per questo (OpenAI).

Quando la matematica è su una riga o capitolo a sé, cambia \( e \) → su righe proprie, prima e dopo, $$ è abbastanza affidabile.

Ma quando la stessa cosa dovrebbe essere fatta inline con un singolo $, questo fallisce quasi ogni volta.

Se ciò potesse accadere automaticamente… ancora meglio.

1 Mi Piace

Quando visualizzo formule matematiche sul mio dispositivo mobile, non riesco a vedere l’intera formula correttamente (la formula è troppo lunga). Qualcuno sa come risolvere questo problema?
image
Di seguito viene visualizzata la visualizzazione corretta sul PC.
image

Ruotare il telefono in orizzontale? Ma perché è tra virgolette, e può essere quello il problema?

Altrimenti. Ho chiesto all’IA del mio forum e mi ha risposto questo (non ho idea se sia utile o pura spazzatura).

Soluzioni per allineare equazioni lunghe usando MathJax AI

Jagster:
Il forum utilizza MathJax per la matematica e le equazioni. A volte, un’equazione è così lunga da non entrare in uno schermo mobile. C’è un modo per spezzare l’equazione in più righe?

Risponditore:
MathJax non supporta direttamente l’interruzione automatica di riga per le equazioni, ma puoi usare alcune tecniche per far sì che le equazioni lunghe si adattino meglio agli schermi mobili. Ecco alcuni suggerimenti:

  1. Usa l’ambiente align: Puoi dividere l’equazione in più righe usando l’ambiente align. Questo ti permette di allineare e distribuire parti dell’equazione su più righe. Ad esempio:

    $$
    \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 l’ambiente split: Questo è un altro modo per dividere un’equazione in più righe. È particolarmente utile quando vuoi dividere l’equazione in parti senza bisogno di allineamento. Ad esempio:

    $$
    \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 l’ambiente multline: Questo ambiente è progettato per equazioni lunghe che non entrano in una singola riga. Divide l’equazione in più righe senza allineamento. Ad esempio:

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

Questi ambienti ti permettono di controllare la presentazione delle equazioni e assicurarti che siano leggibili anche su schermi più piccoli. Ricorda che gli ambienti MathJax spesso richiedono il pacchetto amsmath, che di solito è abilitato per impostazione predefinita in MathJax.

@Jagster Queste dovrebbero essere buone soluzioni. In origine volevo impostare una barra di scorrimento orizzontale per la formula, ma non ci sono riuscito.

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

Ho problemi a copiare formule matematiche da Google Sheets in Meta Discourse. Le formule non sembrano essere visualizzate correttamente?

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

Penso che tu debba fare l’escape di $ e % con \\.
NPV=CFt * [1-1(1+r)Tr]- CFo= 84.000 * [1-1(1+13\\%)713\\%]- 385.000 = \\$-13.500

Vediamo qui:

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


Viene visualizzato correttamente, ma non c’è una barra di scorrimento per vedere l’intera formula. C’è, nell’anteprima, però.
Nel post, puoi vedere l’altra parte solo se fai lo zoom:

Nell’anteprima del piano durante la stesura di un post, quando l’SVG viene renderizzato, l’anteprima del piano scorre verso l’alto. Esiste un’impostazione che può essere modificata in modo che lo scorrimento torni alla posizione più bassa?

Dover scorrere verso il basso ogni volta che modifico la matematica infastidisce i miei docenti, ma ho resistito.

Ho notato un paio di “deprecate” nell’attività.

Se qualcuno potesse spiegare cosa significa per un’istanza con un ampio database di matematica che viene visualizzato correttamente

dopo un aggiornamento/ricostruzione completo, la matematica sembra essere renderizzata correttamente

Per coloro che non l’avessero sentito, questo plugin è ora incluso nel core. Si prega di consultare la ricostruzione/revisione 2 di 3 di questo post per dimostrarlo.

Ci sono! :+1: Mi dispiace per aver causato preoccupazione. Dovresti essere a posto ora.

:partying_face: Questo plugin è ora incluso nel core di Discourse come parte di Bundling more popular plugins with Discourse core. Se stai auto-ospitando e utilizzi il plugin, devi rimuoverlo dal tuo app.yml prima del tuo prossimo aggiornamento.

3 Mi Piace

Ho un problema con i caratteri matematici nelle risposte dell’IA. Mi fornisce risposte in formato latex anche se ho digitato il prompt richiesto. Questo crea un’immagine come se ci fossero caratteri non corretti. Puoi risolvere questo problema. Esempio;

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

In precedenza ho condiviso soluzioni dalla community di openai

Ciao @ozkn

Ho anch’io questo problema. La mia raccomandazione sarebbe:

  • iscriviti a un account con il provider AI
  • dì all’account AI di

ricordare per le risposte future che Discourse è compatibile con la formattazione MathJax/Katex $…$ $$…$$ inline o centrata su più righe.

  • dovresti trovare il tuo output più copiabile e incollabile quando sei loggato nel tuo account AI
potrebbe essere necessario continuare a insistere per ottenere la migliore memoria
3 Mi Piace

Solo per aggiungere all’ultimo punto: se stai mescolando matematica e valuta, ricorda:

  • $...$ = matematica
  • \\$ = segno del dollaro letterale

Quindi:
$x+1$ costa \\$5. → renderizza la matematica per x+1 e mostra il prezzo come $5.

Questo è tutto ciò di cui hai bisogno: matematica con $, denaro con \\$.

2 Mi Piace

un altro buon modo per incoraggiare chatGPT a ricordare è che non puoi visualizzare la matematica nei titoli dei riquadri dei dettagli

nessuna di queste hack è più necessaria, lo supportiamo nativamente.