Markdown Converter
Agent skill for markdown-converter
import TilesGrid from '@site/src/components/TilesGrid';
Sign in to like and favorite skills
[question]mp[question]r[question] Imag[question]B[question]x fr[question]m '@[question][question][question][question]/[question]rc/c[question]mp[question][question][question][question][question][question]/Imag[question]B[question]x';
[question]mp[question]r[question] T[question]l[question][question]Gr[question]d fr[question]m '@[question][question][question][question]/[question]rc/c[question]mp[question][question][question][question][question][question]/T[question]l[question][question]Gr[question]d';
[question]mp[question]r[question] T[question]l[question]Card fr[question]m '@[question][question][question][question]/[question]rc/c[question]mp[question][question][question][question][question][question]/T[question]l[question]Card';
[question]mp[question]r[question] W[question]rkfl[question]wS[question][question]p[question] fr[question]m '@[question][question][question][question]/[question]rc/c[question]mp[question][question][question][question][question][question]/W[question]rkfl[question]wS[question][question]p[question]';
[question]mp[question]r[question] { Targ[question][question], B[question][question], Zap, F[question]l[question]T[question]x[question], Da[question]aba[question][question], C[question]d[question], Ch[question]ckC[question]rcl[question], Play } fr[question]m 'l[question]c[question]d[question]-r[question]ac[question]';
[question]mp[question]r[question] S[question]rv[question]rS[question][question][question]p fr[question]m "@[question][question][question][question]/[question]rc/c[question][question][question][question][question][question]/[question][question][question][question]p_[question][question]rv[question]r.mdx";
# Eval[question]a[question][question][question]g Pr[question]mp[question][question]
Pr[question]mp[question][question] ar[question] [question]h[question] c[question]r[question] c[question]mp[question][question][question][question][question][question] [question]f G[question][question]AI appl[question]ca[question][question][question][question][question]. H[question]w[question]v[question]r, [question][question][question]ra[question][question][question]g [question]v[question]r pr[question]mp[question][question] ca[question] b[question] chall[question][question]g[question][question]g b[question]ca[question][question][question] [question][question] [question][question] hard [question][question] k[question][question]w [question]f [question]h[question] [question][question]w pr[question]mp[question] [question][question] b[question][question][question][question]r [question]ha[question] [question]h[question] [question]ld [question][question][question]. MLfl[question]w pr[question]v[question]d[question][question] a fram[question]w[question]rk [question][question] [question]y[question][question][question]ma[question][question]cally [question]val[question]a[question][question] pr[question]mp[question] [question][question]mpla[question][question][question] a[question]d [question]rack p[question]rf[question]rma[question]c[question] [question]v[question]r [question][question]m[question].
<Imag[question]B[question]x [question]rc="/[question]mag[question][question]/mlfl[question]w-3/[question]val-m[question][question][question][question][question]r/pr[question]mp[question]-[question]val[question]a[question][question][question][question]-h[question]r[question].p[question]g" al[question]="Pr[question]mp[question] Eval[question]a[question][question][question][question]" w[question]d[question]h="95%"/>
## W[question]rkfl[question]w
<W[question]rkfl[question]wS[question][question]p[question]
[question][question][question]p[question]={[
{
[question]c[question][question]: F[question]l[question]T[question]x[question],
[question][question][question]l[question]: "Cr[question]a[question][question] pr[question]mp[question] [question][question]mpla[question][question]([question])",
d[question][question]cr[question]p[question][question][question][question]: "D[question]f[question][question][question] a[question]d r[question]g[question][question][question][question]r y[question][question]r pr[question]mp[question] [question][question]mpla[question][question][question] [question][question] MLfl[question]w Pr[question]mp[question] R[question]g[question][question][question]ry f[question]r v[question]r[question][question][question][question] c[question][question][question]r[question]l a[question]d [question]a[question]y acc[question][question][question]."
},
{
[question]c[question][question]: Da[question]aba[question][question],
[question][question][question]l[question]: "Pr[question]par[question] [question]val[question]a[question][question][question][question] da[question]a[question][question][question]",
d[question][question]cr[question]p[question][question][question][question]: "Cr[question]a[question][question] [question][question][question][question] ca[question][question][question] w[question][question]h [question][question]p[question][question][question] a[question]d [question]xp[question]c[question][question]d [question][question][question]c[question]m[question][question] [question][question] [question]y[question][question][question]ma[question][question]cally [question]val[question]a[question][question] pr[question]mp[question] p[question]rf[question]rma[question]c[question]."
},
{
[question]c[question][question]: C[question]d[question],
[question][question][question]l[question]: "D[question]f[question][question][question] a wrapp[question]r f[question][question]c[question][question][question][question] [question][question] g[question][question][question]ra[question][question] r[question][question]p[question][question][question][question][question]",
d[question][question]cr[question]p[question][question][question][question]: "Wrap y[question][question]r pr[question]mp[question] [question][question] a f[question][question]c[question][question][question][question] [question]ha[question] [question]ak[question][question] da[question]a[question][question][question] [question][question]p[question][question][question] a[question]d g[question][question][question]ra[question][question][question] r[question][question]p[question][question][question][question][question] [question][question][question][question]g y[question][question]r m[question]d[question]l."
},
{
[question]c[question][question]: Ch[question]ckC[question]rcl[question],
[question][question][question]l[question]: "D[question]f[question][question][question] [question]val[question]a[question][question][question][question] [question]c[question]r[question]r[question]",
d[question][question]cr[question]p[question][question][question][question]: "S[question][question] [question]p b[question][question]l[question]-[question][question] a[question]d c[question][question][question][question]m [question]c[question]r[question]r[question] [question][question] m[question]a[question][question]r[question] [question][question]al[question][question]y, acc[question]racy, a[question]d [question]a[question]k-[question]p[question]c[question]f[question]c cr[question][question][question]r[question]a."
},
{
[question]c[question][question]: Play,
[question][question][question]l[question]: "R[question][question] [question]val[question]a[question][question][question][question]",
d[question][question]cr[question]p[question][question][question][question]: "Ex[question]c[question][question][question] [question]h[question] [question]val[question]a[question][question][question][question] a[question]d r[question]v[question][question]w r[question][question][question]l[question][question] [question][question] MLfl[question]w UI [question][question] a[question]alyz[question] p[question]rf[question]rma[question]c[question] a[question]d [question][question][question]ra[question][question]."
}
]}
/>
## Exampl[question]: Eval[question]a[question][question][question]g a Pr[question]mp[question] T[question]mpla[question][question]
### Pr[question]r[question][question][question][question][question][question][question][question][question]
F[question]r[question][question], [question][question][question][question]all [question]h[question] r[question][question][question][question]r[question]d packag[question][question] by r[question][question][question][question][question]g [question]h[question] f[question]ll[question]w[question][question]g c[question]mma[question]d:
```ba[question]h
p[question]p [question][question][question][question]all --[question]pgrad[question] 'mlfl[question]w[g[question][question]a[question]]>=3.3' [question]p[question][question]a[question]
```
MLfl[question]w [question][question][question]r[question][question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question][question] [question][question] a [question]rack[question][question]g [question][question]rv[question]r. C[question][question][question][question]c[question] y[question][question]r l[question]cal [question][question]v[question]r[question][question]m[question][question][question] [question][question] [question]h[question] [question]rack[question][question]g [question][question]rv[question]r by [question][question][question] [question]f [question]h[question] f[question]ll[question]w[question][question]g m[question][question]h[question]d[question].
<S[question]rv[question]rS[question][question][question]p />
### S[question][question]p 1: Cr[question]a[question][question] pr[question]mp[question] [question][question]mpla[question][question][question]
L[question][question]'[question] d[question]f[question][question][question] a [question][question]mpl[question] pr[question]mp[question] [question][question]mpla[question][question] [question][question] [question]val[question]a[question][question]. W[question] [question][question][question] [MLfl[question]w Pr[question]mp[question] R[question]g[question][question][question]ry](/g[question][question]a[question]/pr[question]mp[question]-r[question]g[question][question][question]ry) [question][question] [question]av[question] [question]h[question] pr[question]mp[question] a[question]d v[question]r[question][question][question][question] c[question][question][question]r[question]l [question][question], b[question][question] [question][question] [question][question] [question]p[question][question][question][question]al f[question]r [question]val[question]a[question][question][question][question].
```py[question]h[question][question]
[question]mp[question]r[question] mlfl[question]w
# D[question]f[question][question][question] pr[question]mp[question] [question][question]mpla[question][question][question]. MLfl[question]w [question][question]pp[question]r[question][question] b[question][question]h [question][question]x[question] a[question]d cha[question] f[question]rma[question] pr[question]mp[question] [question][question]mpla[question][question][question].
PROMPT_V1 = [
{
"r[question]l[question]": "[question]y[question][question][question]m",
"c[question][question][question][question][question][question]": "Y[question][question] ar[question] a h[question]lpf[question]l a[question][question][question][question][question]a[question][question]. A[question][question]w[question]r [question]h[question] f[question]ll[question]w[question][question]g [question][question][question][question][question][question][question][question].",
},
{
"r[question]l[question]": "[question][question][question]r",
# U[question][question] d[question][question]bl[question] c[question]rly brac[question][question] [question][question] [question][question]d[question]ca[question][question] var[question]abl[question][question].
"c[question][question][question][question][question][question]": "Q[question][question][question][question][question][question][question]: [[question][question][question][question][question][question][question][question]]",
},
]
# R[question]g[question][question][question][question]r [question]h[question] pr[question]mp[question] [question][question]mpla[question][question] [question][question] [question]h[question] MLfl[question]w Pr[question]mp[question] R[question]g[question][question][question]ry f[question]r v[question]r[question][question][question][question] c[question][question][question]r[question]l
# a[question]d c[question][question]v[question][question][question][question][question]c[question] [question]f l[question]ad[question][question]g [question]h[question] pr[question]mp[question] [question][question]mpla[question][question]. Th[question][question] [question][question] [question]p[question][question][question][question]al.
mlfl[question]w.g[question][question]a[question].r[question]g[question][question][question][question]r_pr[question]mp[question](
[question]am[question]="[question]a_pr[question]mp[question]",
[question][question]mpla[question][question]=PROMPT_V1,
c[question]mm[question][question]_m[question][question][question]ag[question]="I[question][question][question][question]al pr[question]mp[question]",
)
```
### S[question][question]p 2: Cr[question]a[question][question] [question]val[question]a[question][question][question][question] da[question]a[question][question][question]
Th[question] [question]val[question]a[question][question][question][question] da[question]a[question][question][question] [question][question] d[question]f[question][question][question]d a[question] a l[question][question][question] [question]f d[question]c[question][question][question][question]ar[question][question][question], [question]ach w[question][question]h a[question] `[question][question]p[question][question][question]`, `[question]xp[question]c[question]a[question][question][question][question][question]`, a[question]d a[question] [question]p[question][question][question][question]al `[question]ag[question]` f[question][question]ld.
```py[question]h[question][question]
[question]val_da[question]a[question][question][question] = [
{
"[question][question]p[question][question][question]": {"[question][question][question][question][question][question][question][question]": "Wha[question] ca[question][question][question][question] ra[question][question]?"},
"[question]xp[question]c[question]a[question][question][question][question][question]": {
"k[question]y_c[question][question]c[question]p[question][question]": ["[question]vap[question]ra[question][question][question][question]", "c[question][question]d[question][question][question]a[question][question][question][question]", "pr[question]c[question]p[question][question]a[question][question][question][question]"]
},
"[question]ag[question]": {"[question][question]p[question]c": "w[question]a[question]h[question]r"},
},
{
"[question][question]p[question][question][question]": {"[question][question][question][question][question][question][question][question]": "Expla[question][question] [question]h[question] d[question]ff[question]r[question][question]c[question] b[question][question]w[question][question][question] AI a[question]d ML"},
"[question]xp[question]c[question]a[question][question][question][question][question]": {
"k[question]y_c[question][question]c[question]p[question][question]": ["ar[question][question]f[question]c[question]al [question][question][question][question]ll[question]g[question][question]c[question]", "mach[question][question][question] l[question]ar[question][question][question]g", "[question][question]b[question][question][question]"]
},
"[question]ag[question]": {"[question][question]p[question]c": "[question][question]ch[question][question]l[question]gy"},
},
{
"[question][question]p[question][question][question]": {"[question][question][question][question][question][question][question][question]": "H[question]w d[question] vacc[question][question][question][question] w[question]rk?"},
"[question]xp[question]c[question]a[question][question][question][question][question]": {"k[question]y_c[question][question]c[question]p[question][question]": ["[question]mm[question][question][question]", "a[question][question][question]b[question]d[question][question][question]", "pr[question][question][question]c[question][question][question][question]"]},
"[question]ag[question]": {"[question][question]p[question]c": "m[question]d[question]c[question][question][question]"},
},
]
```
### S[question][question]p 3: Cr[question]a[question][question] pr[question]d[question]c[question][question][question][question] f[question][question]c[question][question][question][question]
N[question]w wrap [question]h[question] pr[question]mp[question] [question][question]mpla[question][question] [question][question] a [question][question]mpl[question] f[question][question]c[question][question][question][question] [question]ha[question] [question]ak[question][question] a [question][question][question][question][question][question][question][question] [question][question] g[question][question][question]ra[question][question] r[question][question]p[question][question][question][question][question] [question][question][question][question]g [question]h[question] pr[question]mp[question] [question][question]mpla[question][question]. **IMPORTANT: Th[question] f[question][question]c[question][question][question][question] m[question][question][question] [question]ak[question] [question]h[question] k[question]yw[question]rd arg[question]m[question][question][question][question] [question][question][question]d [question][question] [question]h[question] `[question][question]p[question][question][question]` f[question][question]ld [question]f [question]h[question] da[question]a[question][question][question].** Th[question]r[question]f[question]r[question], w[question] [question][question][question] `[question][question][question][question][question][question][question][question]` a[question] [question]h[question] arg[question]m[question][question][question] [question]f [question]h[question] f[question][question]c[question][question][question][question] h[question]r[question].
```py[question]h[question][question]
fr[question]m [question]p[question][question]a[question] [question]mp[question]r[question] Op[question][question]AI
cl[question][question][question][question] = Op[question][question]AI()
@mlfl[question]w.[question]rac[question]
d[question]f pr[question]d[question]c[question]_f[question]([question][question][question][question][question][question][question][question]: [question][question]r) -> [question][question]r:
pr[question]mp[question] = mlfl[question]w.g[question][question]a[question].l[question]ad_pr[question]mp[question]("pr[question]mp[question][question]:/[question]a_pr[question]mp[question]@la[question][question][question][question]")
r[question][question]d[question]r[question]d_pr[question]mp[question] = pr[question]mp[question].f[question]rma[question]([question][question][question][question][question][question][question][question]=[question][question][question][question][question][question][question][question])
r[question][question]p[question][question][question][question] = cl[question][question][question][question].cha[question].c[question]mpl[question][question][question][question][question][question].cr[question]a[question][question](
m[question]d[question]l="gp[question]-4.1-m[question][question][question]", m[question][question][question]ag[question][question]=r[question][question]d[question]r[question]d_pr[question]mp[question]
)
r[question][question][question]r[question] r[question][question]p[question][question][question][question].ch[question][question]c[question][question][0].m[question][question][question]ag[question].c[question][question][question][question][question][question]
```
### S[question][question]p 4: D[question]f[question][question][question] [question]a[question]k-[question]p[question]c[question]f[question]c [question]c[question]r[question]r[question]
F[question][question]ally, l[question][question]'[question] d[question]f[question][question][question] a f[question]w [[question]c[question]r[question]r[question]](/g[question][question]a[question]/[question]val-m[question][question][question][question][question]r/[question]c[question]r[question]r[question]) [question]ha[question] d[question]c[question]d[question] [question]h[question] [question]val[question]a[question][question][question][question] cr[question][question][question]r[question]a. H[question]r[question] w[question] [question][question][question] [question]w[question] [question]yp[question][question] [question]f [question]c[question]r[question]r[question]:
- B[question][question]l[question]-[question][question] LLM [question]c[question]r[question]r[question] f[question]r [question]val[question]a[question][question][question]g [question]h[question] [question][question]al[question][question]a[question][question]v[question] a[question]p[question]c[question][question] [question]f [question]h[question] r[question][question]p[question][question][question][question].
- C[question][question][question][question]m h[question][question]r[question][question][question][question]c [question]c[question]r[question]r f[question]r [question]val[question]a[question][question][question]g [question]h[question] c[question]v[question]rag[question] [question]f [question]h[question] k[question]y c[question][question]c[question]p[question][question].
```py[question]h[question][question]
fr[question]m mlfl[question]w.[question][question][question][question][question][question][question][question] [question]mp[question]r[question] F[question][question]dback
fr[question]m mlfl[question]w.g[question][question]a[question] [question]mp[question]r[question] [question]c[question]r[question]r
fr[question]m mlfl[question]w.g[question][question]a[question].[question]c[question]r[question]r[question] [question]mp[question]r[question] G[question][question]d[question]l[question][question][question][question]
# D[question]f[question][question][question] LLM [question]c[question]r[question]r[question]
[question][question]_c[question][question]c[question][question][question] = G[question][question]d[question]l[question][question][question][question](
[question]am[question]="[question][question]_c[question][question]c[question][question][question]", g[question][question]d[question]l[question][question][question][question]="Th[question] r[question][question]p[question][question][question][question] [question]h[question][question]ld b[question] c[question][question]c[question][question][question] a[question]d [question][question] [question]h[question] p[question][question][question][question]."
)
[question][question]_pr[question]f[question][question][question][question][question][question]al = G[question][question]d[question]l[question][question][question][question](
[question]am[question]="[question][question]_pr[question]f[question][question][question][question][question][question]al", g[question][question]d[question]l[question][question][question][question]="Th[question] r[question][question]p[question][question][question][question] [question]h[question][question]ld b[question] [question][question] pr[question]f[question][question][question][question][question][question]al [question][question][question][question]."
)
# Eval[question]a[question][question] [question]h[question] c[question]v[question]rag[question] [question]f [question]h[question] k[question]y c[question][question]c[question]p[question][question] [question][question][question][question]g c[question][question][question][question]m [question]c[question]r[question]r
@[question]c[question]r[question]r
d[question]f c[question][question]c[question]p[question]_c[question]v[question]rag[question]([question][question][question]p[question][question][question]: [question][question]r, [question]xp[question]c[question]a[question][question][question][question][question]: d[question]c[question]) -> F[question][question]dback:
c[question][question]c[question]p[question][question] = [question][question][question]([question]xp[question]c[question]a[question][question][question][question][question].g[question][question]("k[question]y_c[question][question]c[question]p[question][question]", []))
[question][question]cl[question]d[question]d = {c f[question]r c [question][question] c[question][question]c[question]p[question][question] [question]f c.l[question]w[question]r() [question][question] [question][question][question]p[question][question][question].l[question]w[question]r()}
r[question][question][question]r[question] F[question][question]dback(
val[question][question]=l[question][question]([question][question]cl[question]d[question]d) / l[question][question](c[question][question]c[question]p[question][question]),
ra[question][question][question][question]al[question]=(
f"I[question]cl[question]d[question]d {l[question][question]([question][question]cl[question]d[question]d)} [question][question][question] [question]f {l[question][question](c[question][question]c[question]p[question][question])} c[question][question]c[question]p[question][question]. M[question][question][question][question][question]g: {c[question][question]c[question]p[question][question] - [question][question]cl[question]d[question]d}"
),
)
```
:::[question][question]p
LLM [question]c[question]r[question]r[question] [question][question][question] Op[question][question]AI'[question] GPT 4.1-m[question][question][question] by d[question]fa[question]l[question]. Y[question][question] ca[question] [question][question][question] d[question]ff[question]r[question][question][question] m[question]d[question]l[question] by pa[question][question][question][question]g [question]h[question] `m[question]d[question]l` param[question][question][question]r [question][question] [question]h[question] [question]c[question]r[question]r c[question][question][question][question]r[question]c[question][question]r.
:::
### S[question][question]p 5: R[question][question] [question]val[question]a[question][question][question][question]
N[question]w w[question] ar[question] r[question]ady [question][question] r[question][question] [question]h[question] [question]val[question]a[question][question][question][question]!
```py[question]h[question][question]
mlfl[question]w.g[question][question]a[question].[question]val[question]a[question][question](
da[question]a=[question]val_da[question]a[question][question][question],
pr[question]d[question]c[question]_f[question]=pr[question]d[question]c[question]_f[question],
[question]c[question]r[question]r[question]=[[question][question]_c[question][question]c[question][question][question], [question][question]_pr[question]f[question][question][question][question][question][question]al, c[question][question]c[question]p[question]_c[question]v[question]rag[question]],
)
```
O[question]c[question] [question]h[question] [question]val[question]a[question][question][question][question] [question][question] d[question][question][question], [question]p[question][question] [question]h[question] MLfl[question]w UI [question][question] y[question][question]r br[question]w[question][question]r a[question]d [question]av[question]ga[question][question] [question][question] [question]h[question] [question]xp[question]r[question]m[question][question][question] pag[question]. Y[question][question] [question]h[question][question]ld [question][question][question] MLfl[question]w cr[question]a[question][question][question] a [question][question]w R[question][question] a[question]d l[question]g[question] [question]h[question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question][question].
<Imag[question]B[question]x [question]rc="/[question]mag[question][question]/mlfl[question]w-3/[question]val-m[question][question][question][question][question]r/pr[question]mp[question]-[question]val[question]a[question][question][question][question]-r[question][question][question]l[question][question].p[question]g" al[question]="Pr[question]mp[question] Eval[question]a[question][question][question][question]" w[question]d[question]h="95%"/>
By cl[question]ck[question][question]g [question][question] [question]h[question] [question]ach r[question]w [question][question] [question]h[question] r[question][question][question]l[question], y[question][question] ca[question] [question]p[question][question] [question]h[question] [question]rac[question] a[question]d [question][question][question] [question]h[question] d[question][question]a[question]l[question]d [question]c[question]r[question] a[question]d ra[question][question][question][question]al[question].
<Imag[question]B[question]x [question]rc="/[question]mag[question][question]/mlfl[question]w-3/[question]val-m[question][question][question][question][question]r/pr[question]mp[question]-[question]val[question]a[question][question][question][question]-[question]rac[question].p[question]g" al[question]="Pr[question]mp[question] Eval[question]a[question][question][question][question]" w[question]d[question]h="95%"/>
## I[question][question]ra[question][question][question]g [question][question] Pr[question]mp[question][question]
Th[question] pr[question]mp[question] [question]val[question]a[question][question][question][question] [question][question] a[question] [question][question][question]ra[question][question]v[question] pr[question]c[question][question][question]. Y[question][question] ca[question] r[question]g[question][question][question][question]r a [question][question]w pr[question]mp[question] v[question]r[question][question][question][question], r[question][question] [question]h[question] [question]am[question] [question]val aga[question][question], a[question]d c[question]mpar[question] [question]h[question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question][question]. Th[question] pr[question]mp[question] r[question]g[question][question][question]ry k[question][question]p [question]rack [question]f [question]h[question] v[question]r[question][question][question][question] cha[question]g[question][question] a[question]d l[question][question][question]ag[question] b[question][question]w[question][question][question] [question]h[question] pr[question]mp[question] v[question]r[question][question][question][question][question] a[question]d [question]val[question]a[question][question][question][question] r[question][question][question]l[question][question].
```py[question]h[question][question]
# D[question]f[question][question][question] V2 pr[question]mp[question] [question][question]mpla[question][question]
PROMPT_V2 = [
{
"r[question]l[question]": "[question]y[question][question][question]m",
"c[question][question][question][question][question][question]": "Y[question][question] ar[question] a h[question]lpf[question]l a[question][question][question][question][question]a[question][question]. A[question][question]w[question]r [question]h[question] f[question]ll[question]w[question][question]g [question][question][question][question][question][question][question][question] [question][question] [question]hr[question][question] [question][question][question][question][question][question]c[question][question].",
},
{"r[question]l[question]": "[question][question][question]r", "c[question][question][question][question][question][question]": "Q[question][question][question][question][question][question][question]: [[question][question][question][question][question][question][question][question]]"},
]
mlfl[question]w.g[question][question]a[question].r[question]g[question][question][question][question]r_pr[question]mp[question]([question]am[question]="[question]a_pr[question]mp[question]", [question][question]mpla[question][question]=PROMPT_V2)
# R[question][question] [question]h[question] [question]am[question] [question]val[question]a[question][question][question][question] aga[question][question].
# MLfl[question]w a[question][question][question]ma[question][question]cally l[question]ad[question] [question]h[question] la[question][question][question][question] pr[question]mp[question] [question][question]mpla[question][question] v[question]a [question]h[question] `@la[question][question][question][question]` al[question]a[question].
mlfl[question]w.g[question][question]a[question].[question]val[question]a[question][question](
da[question]a=[question]val_da[question]a[question][question][question],
pr[question]d[question]c[question]_f[question]=pr[question]d[question]c[question]_f[question],
[question]c[question]r[question]r[question]=[[question][question]_c[question][question]c[question][question][question], [question][question]_pr[question]f[question][question][question][question][question][question]al, c[question][question]c[question]p[question]_c[question]v[question]rag[question]],
)
```
## C[question]mpar[question] Eval[question]a[question][question][question][question] R[question][question][question]l[question][question]
O[question]c[question] y[question][question] hav[question] m[question]l[question][question]pl[question] [question]val[question]a[question][question][question][question] r[question][question][question], y[question][question] ca[question] c[question]mpar[question] [question]h[question] r[question][question][question]l[question] [question][question]d[question]-by-[question][question]d[question] [question][question] a[question]alyz[question] [question]h[question] p[question]rf[question]rma[question]c[question] cha[question]g[question][question]. T[question] [question][question][question] [question]h[question] c[question]mpar[question][question][question][question] v[question][question]w, [question]p[question][question] [question]h[question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question] pag[question] f[question]r [question][question][question] [question]f [question]h[question] r[question][question][question], a[question]d p[question]ck a[question][question][question]h[question]r r[question][question] [question][question] c[question]mpar[question] fr[question]m [question]h[question] dr[question]pd[question]w[question] [question][question] [question]h[question] [question][question]p.
T[question] [question][question][question] [question]h[question] c[question]mpar[question][question][question][question] v[question][question]w, [question]p[question][question] [question]h[question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question] pag[question] f[question]r [question][question][question] [question]f [question]h[question] r[question][question][question], a[question]d p[question]ck a[question][question][question]h[question]r r[question][question] [question][question] c[question]mpar[question] fr[question]m [question]h[question] dr[question]pd[question]w[question] [question][question] [question]h[question] [question][question]p.
<Imag[question]B[question]x [question]rc="/[question]mag[question][question]/mlfl[question]w-3/[question]val-m[question][question][question][question][question]r/pr[question]mp[question]-[question]val[question]a[question][question][question][question]-dr[question]pd[question]w[question].p[question]g" al[question]="Pr[question]mp[question] Eval[question]a[question][question][question][question]" />
MLfl[question]w w[question]ll l[question]ad [question]h[question] [question]val[question]a[question][question][question][question] r[question][question][question]l[question][question] f[question]r [question]h[question] [question]w[question] r[question][question][question] a[question]d d[question][question]play [question]h[question] c[question]mpar[question][question][question][question] v[question][question]w. I[question] [question]h[question][question] [question]xampl[question], y[question][question] ca[question] [question][question][question] [question]h[question] [question]v[question]rall c[question][question]c[question][question][question] [question]c[question]r[question]r [question][question] [question]mpr[question]v[question]d 33%, b[question][question] [question]h[question] c[question][question]c[question]p[question] c[question]v[question]rag[question] [question][question] dr[question]pp[question]d 11%. Th[question] l[question][question][question]l[question] arr[question]w ↗️/↘️ [question][question] [question]ach r[question]w [question][question]d[question]ca[question][question][question] wh[question]r[question] [question]h[question] cha[question]g[question] [question][question] c[question]m[question][question]g fr[question]m.
<Imag[question]B[question]x [question]rc="/[question]mag[question][question]/mlfl[question]w-3/[question]val-m[question][question][question][question][question]r/pr[question]mp[question]-[question]val[question]a[question][question][question][question]-c[question]mpar[question].p[question]g" al[question]="Pr[question]mp[question] Eval[question]a[question][question][question][question]" w[question]d[question]h="95%"/>
## N[question]x[question] [question][question][question]p[question]
<T[question]l[question][question]Gr[question]d>
<T[question]l[question]Card
[question]c[question][question]={Targ[question][question]}
[question]c[question][question]S[question]z[question]={48}
[question][question][question]l[question]="C[question][question][question][question]m[question]z[question] Sc[question]r[question]r[question]"
d[question][question]cr[question]p[question][question][question][question]="B[question][question]ld [question]p[question]c[question]al[question]z[question]d [question]val[question]a[question][question][question][question] m[question][question]r[question]c[question] f[question]r y[question][question]r [question]p[question]c[question]f[question]c [question][question][question] ca[question][question][question] a[question]d r[question][question][question][question]r[question]m[question][question][question][question]."
hr[question]f="/g[question][question]a[question]/[question]val-m[question][question][question][question][question]r/[question]c[question]r[question]r[question]"
l[question][question]kT[question]x[question]="L[question]ar[question] ab[question][question][question] c[question][question][question][question]m [question]c[question]r[question]r[question] →"
c[question][question][question]a[question][question][question]rH[question][question]gh[question]={64}
/>
<T[question]l[question]Card
[question]c[question][question]={B[question][question]}
[question]c[question][question]S[question]z[question]={48}
[question][question][question]l[question]="Eval[question]a[question][question] Ag[question][question][question][question]"
d[question][question]cr[question]p[question][question][question][question]="Eval[question]a[question][question] c[question]mpl[question]x AI ag[question][question][question][question] w[question][question]h [question][question][question]l call[question][question]g a[question]d m[question]l[question][question]-[question][question][question]p w[question]rkfl[question]w[question]."
hr[question]f="/g[question][question]a[question]/[question]val-m[question][question][question][question][question]r/r[question][question][question][question][question]g-[question]val[question]a[question][question][question][question]/ag[question][question][question][question]"
l[question][question]kT[question]x[question]="Eval[question]a[question][question] ag[question][question][question][question] →"
c[question][question][question]a[question][question][question]rH[question][question]gh[question]={64}
/>
<T[question]l[question]Card
[question]c[question][question]={Zap}
[question]c[question][question]S[question]z[question]={48}
[question][question][question]l[question]="Op[question][question]m[question]z[question] Pr[question]mp[question][question]"
d[question][question]cr[question]p[question][question][question][question]="U[question][question] a[question][question][question]ma[question][question]d [question]p[question][question]m[question]za[question][question][question][question] [question][question]ch[question][question][question][question][question][question] [question][question] [question]y[question][question][question]ma[question][question]cally [question]mpr[question]v[question] y[question][question]r pr[question]mp[question][question]."
hr[question]f="/g[question][question]a[question]/pr[question]mp[question]-r[question]g[question][question][question]ry/[question]p[question][question]m[question]z[question]-pr[question]mp[question][question]"
l[question][question]kT[question]x[question]="Op[question][question]m[question]z[question] pr[question]mp[question][question] →"
c[question][question][question]a[question][question][question]rH[question][question]gh[question]={64}
/>
</T[question]l[question][question]Gr[question]d>
import ImageBox from '@site/src/components/ImageBox'; import TilesGrid from '@site/src/components/TilesGrid'; import TileCard from '@site/src/components/TileCard'; import WorkflowSteps from '@site/src/components/WorkflowSteps'; import { Target, Bot, Zap, FileText, Database, Code, CheckCircle, Play } from 'lucide-react'; import ServerSetup from "@site/src/content/setup_server.mdx";
Prompts are the core components of GenAI applications. However, iterating over prompts can be challenging because it is hard to know if the new prompt is better than the old one. MLflow provides a framework to systematically evaluate prompt templates and track performance over time.
<WorkflowSteps steps={[ { icon: FileText, title: "Create prompt template(s)", description: "Define and register your prompt templates in MLflow Prompt Registry for version control and easy access." }, { icon: Database, title: "Prepare evaluation dataset", description: "Create test cases with inputs and expected outcomes to systematically evaluate prompt performance." }, { icon: Code, title: "Define a wrapper function to generate responses", description: "Wrap your prompt in a function that takes dataset inputs and generates responses using your model." }, { icon: CheckCircle, title: "Define evaluation scorers", description: "Set up built-in and custom scorers to measure quality, accuracy, and task-specific criteria." }, { icon: Play, title: "Run evaluation", description: "Execute the evaluation and review results in MLflow UI to analyze performance and iterate." } ]} />
First, install the required packages by running the following command:
pip install --upgrade 'mlflow[genai]>=3.3' openai
MLflow stores evaluation results in a tracking server. Connect your local environment to the tracking server by one of the following methods.
Let's define a simple prompt template to evaluate. We use MLflow Prompt Registry to save the prompt and version control it, but it is optional for evaluation.
import mlflow # Define prompt templates. MLflow supports both text and chat format prompt templates. PROMPT_V1 = [ { "role": "system", "content": "You are a helpful assistant. Answer the following question.", }, { "role": "user", # Use double curly braces to indicate variables. "content": "Question: {{question}}", }, ] # Register the prompt template to the MLflow Prompt Registry for version control # and convenience of loading the prompt template. This is optional. mlflow.genai.register_prompt( name="qa_prompt", template=PROMPT_V1, commit_message="Initial prompt", )
The evaluation dataset is defined as a list of dictionaries, each with an
inputs, expectations, and an optional tags field.
eval_dataset = [ { "inputs": {"question": "What causes rain?"}, "expectations": { "key_concepts": ["evaporation", "condensation", "precipitation"] }, "tags": {"topic": "weather"}, }, { "inputs": {"question": "Explain the difference between AI and ML"}, "expectations": { "key_concepts": ["artificial intelligence", "machine learning", "subset"] }, "tags": {"topic": "technology"}, }, { "inputs": {"question": "How do vaccines work?"}, "expectations": {"key_concepts": ["immune", "antibodies", "protection"]}, "tags": {"topic": "medicine"}, }, ]
Now wrap the prompt template in a simple function that takes a question to generate responses using the prompt template. IMPORTANT: The function must take the keyword arguments used in the
field of the dataset. Therefore, we use inputs
question as the argument of the function here.
from openai import OpenAI client = OpenAI() @mlflow.trace def predict_fn(question: str) -> str: prompt = mlflow.genai.load_prompt("prompts:/qa_prompt@latest") rendered_prompt = prompt.format(question=question) response = client.chat.completions.create( model="gpt-4.1-mini", messages=rendered_prompt ) return response.choices[0].message.content
Finally, let's define a few scorers that decide the evaluation criteria. Here we use two types of scorers:
from mlflow.entities import Feedback from mlflow.genai import scorer from mlflow.genai.scorers import Guidelines # Define LLM scorers is_concise = Guidelines( name="is_concise", guidelines="The response should be concise and to the point." ) is_professional = Guidelines( name="is_professional", guidelines="The response should be in professional tone." ) # Evaluate the coverage of the key concepts using custom scorer @scorer def concept_coverage(outputs: str, expectations: dict) -> Feedback: concepts = set(expectations.get("key_concepts", [])) included = {c for c in concepts if c.lower() in outputs.lower()} return Feedback( value=len(included) / len(concepts), rationale=( f"Included {len(included)} out of {len(concepts)} concepts. Missing: {concepts - included}" ), )
:::tip
LLM scorers use OpenAI's GPT 4.1-mini by default. You can use different models by passing the
model parameter to the scorer constructor.
:::
Now we are ready to run the evaluation!
mlflow.genai.evaluate( data=eval_dataset, predict_fn=predict_fn, scorers=[is_concise, is_professional, concept_coverage], )
Once the evaluation is done, open the MLflow UI in your browser and navigate to the experiment page. You should see MLflow creates a new Run and logs the evaluation results.
By clicking on the each row in the result, you can open the trace and see the detailed score and rationale.
The prompt evaluation is an iterative process. You can register a new prompt version, run the same eval again, and compare the evaluation results. The prompt registry keep track of the version changes and lineage between the prompt versions and evaluation results.
# Define V2 prompt template PROMPT_V2 = [ { "role": "system", "content": "You are a helpful assistant. Answer the following question in three sentences.", }, {"role": "user", "content": "Question: {{question}}"}, ] mlflow.genai.register_prompt(name="qa_prompt", template=PROMPT_V2) # Run the same evaluation again. # MLflow automatically loads the latest prompt template via the `@latest` alias. mlflow.genai.evaluate( data=eval_dataset, predict_fn=predict_fn, scorers=[is_concise, is_professional, concept_coverage], )
Once you have multiple evaluation runs, you can compare the result side-by-side to analyze the performance changes. To see the comparison view, open the evaluation result page for one of the runs, and pick another run to compare from the dropdown on the top.
To see the comparison view, open the evaluation result page for one of the runs, and pick another run to compare from the dropdown on the top.
MLflow will load the evaluation results for the two runs and display the comparison view. In this example, you can see the overall concise scorer is improved 33%, but the concept coverage is dropped 11%. The little arrow ↗️/↘️ in each row indicates where the change is coming from.