josefchen commited on
Commit
a275572
verified
1 Parent(s): a2e2f10

Connect Epicure Explorer to FlavourBench

Browse files
Files changed (2) hide show
  1. README.md +7 -1
  2. app.py +64 -1
README.md CHANGED
@@ -8,7 +8,7 @@ sdk_version: 5.7.1
8
  app_file: app.py
9
  pinned: false
10
  license: cc-by-4.0
11
- short_description: Operators over the three Epicure ingredient embeddings
12
  models:
13
  - Kaikaku/epicure-cooc
14
  - Kaikaku/epicure-core
@@ -19,6 +19,12 @@ datasets:
19
 
20
  # Epicure Explorer
21
 
 
 
 
 
 
 
22
  Interactive chef-facing demo of the three Epicure sibling ingredient embeddings (Cooc, Core, Chem). Three operator tabs:
23
 
24
  1. **Pairings**: top-K cosine neighbours plus the closest emergent mode for any of 1,790 ingredients.
 
8
  app_file: app.py
9
  pinned: false
10
  license: cc-by-4.0
11
+ short_description: Operators behind the FlavourBench culinary benchmark
12
  models:
13
  - Kaikaku/epicure-cooc
14
  - Kaikaku/epicure-core
 
19
 
20
  # Epicure Explorer
21
 
22
+ > **Epicure powers [FlavourBench](https://github.com/josefchen/flavourbench), the executable
23
+ > culinary reasoning benchmark for frontier language models.** The benchmark turns versioned
24
+ > Epicure operations into answer keys, evaluates 20 current endpoints on 32 tasks, and measures the
25
+ > same model-task pairs with and without Epicure. [Read the paper](https://github.com/josefchen/flavourbench/blob/main/paper/build/flavourbench.pdf)
26
+ > or [reproduce the leaderboard](https://github.com/josefchen/flavourbench#reproduce-the-result).
27
+
28
  Interactive chef-facing demo of the three Epicure sibling ingredient embeddings (Cooc, Core, Chem). Three operator tabs:
29
 
30
  1. **Pairings**: top-K cosine neighbours plus the closest emergent mode for any of 1,790 ingredients.
app.py CHANGED
@@ -1742,6 +1742,51 @@ CUSTOM_CSS = f"""
1742
  .gradio-container {{ max-width: 1280px !important; background: #ffffff !important; }}
1743
  footer {{ visibility: hidden; }}
1744
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1745
  /* Labels: plain dark text, no chip background */
1746
  .gradio-container label, .gradio-container .label,
1747
  .gradio-container [data-testid="block-label"], .gradio-container .block-label,
@@ -1808,6 +1853,8 @@ footer {{ visibility: hidden; }}
1808
 
1809
  /* Mobile responsive: stack the three sibling result tables on narrow screens */
1810
  @media (max-width: 768px) {{
 
 
1811
  .gradio-container .compare-row {{ flex-direction: column !important; }}
1812
  .gradio-container .compare-row > * {{ width: 100% !important; min-width: 0 !important; }}
1813
  .spectrum-cell {{ padding: 6px 8px; }}
@@ -1844,6 +1891,21 @@ SPECTRUM_BAR = """
1844
  </div>
1845
  """
1846
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1847
  # ===== Pre-rendered killer demo on landing =====
1848
 
1849
  _DEFAULT_BASKET = ["chicken","lemon","garlic"]
@@ -1860,6 +1922,7 @@ Three sibling ingredient embeddings from [arXiv:2605.22391](https://arxiv.org/ab
1860
  1,790 canonical ingredients across 7 languages; 300-D Metapath2Vec; controlled chemistry-vs-recipe-context spectrum.
1861
  """
1862
  )
 
1863
  gr.HTML(SPECTRUM_BAR)
1864
 
1865
  with gr.Tabs():
@@ -2275,7 +2338,7 @@ Three sibling ingredient embeddings from [arXiv:2605.22391](https://arxiv.org/ab
2275
  gr.Markdown(
2276
  """---
2277
  **Cite:** Radzikowski and Chen, 2026, *Epicure: Navigating the Emergent Geometry of Food Ingredient Embeddings*, [arXiv:2605.22391](https://arxiv.org/abs/2605.22391).
2278
- Models: [epicure-cooc](https://huggingface.co/Kaikaku/epicure-cooc) 路 [epicure-core](https://huggingface.co/Kaikaku/epicure-core) 路 [epicure-chem](https://huggingface.co/Kaikaku/epicure-chem) 路 [dataset](https://huggingface.co/datasets/Kaikaku/epicure-corpus-resources) 路 [API](/?view=api)
2279
  """
2280
  )
2281
 
 
1742
  .gradio-container {{ max-width: 1280px !important; background: #ffffff !important; }}
1743
  footer {{ visibility: hidden; }}
1744
 
1745
+ /* FlavourBench research funnel */
1746
+ .benchmark-callout {{
1747
+ align-items: center;
1748
+ background: #f8fafc !important;
1749
+ border: 1px solid #dbe4ec;
1750
+ border-left: 4px solid {KAIKAKU_ACCENT};
1751
+ display: grid;
1752
+ gap: 20px;
1753
+ grid-template-columns: minmax(0, 1fr) auto;
1754
+ margin: 18px 0 14px;
1755
+ padding: 18px 20px;
1756
+ }}
1757
+ .benchmark-callout-kicker {{
1758
+ color: {KAIKAKU_ACCENT} !important;
1759
+ font-size: 0.72rem;
1760
+ font-weight: 800;
1761
+ letter-spacing: 0.09em;
1762
+ margin-bottom: 5px;
1763
+ text-transform: uppercase;
1764
+ }}
1765
+ .benchmark-callout strong {{
1766
+ color: #0f172a !important;
1767
+ display: block;
1768
+ font-size: 1.05rem;
1769
+ line-height: 1.35;
1770
+ }}
1771
+ .benchmark-callout p {{
1772
+ color: #475569 !important;
1773
+ line-height: 1.45;
1774
+ margin: 5px 0 0;
1775
+ max-width: 820px;
1776
+ }}
1777
+ .benchmark-callout-links {{ display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }}
1778
+ .benchmark-callout-links a {{
1779
+ border: 1px solid {KAIKAKU_ACCENT};
1780
+ color: {KAIKAKU_ACCENT} !important;
1781
+ font-weight: 700;
1782
+ padding: 9px 12px;
1783
+ text-decoration: none !important;
1784
+ }}
1785
+ .benchmark-callout-links a:first-child {{
1786
+ background: {KAIKAKU_ACCENT} !important;
1787
+ color: #ffffff !important;
1788
+ }}
1789
+
1790
  /* Labels: plain dark text, no chip background */
1791
  .gradio-container label, .gradio-container .label,
1792
  .gradio-container [data-testid="block-label"], .gradio-container .block-label,
 
1853
 
1854
  /* Mobile responsive: stack the three sibling result tables on narrow screens */
1855
  @media (max-width: 768px) {{
1856
+ .benchmark-callout {{ grid-template-columns: 1fr; }}
1857
+ .benchmark-callout-links {{ justify-content: flex-start; }}
1858
  .gradio-container .compare-row {{ flex-direction: column !important; }}
1859
  .gradio-container .compare-row > * {{ width: 100% !important; min-width: 0 !important; }}
1860
  .spectrum-cell {{ padding: 6px 8px; }}
 
1891
  </div>
1892
  """
1893
 
1894
+ BENCHMARK_CALLOUT = """
1895
+ <aside class="benchmark-callout">
1896
+ <div>
1897
+ <div class="benchmark-callout-kicker">Frontier culinary reasoning benchmark</div>
1898
+ <strong>Epicure is the operator layer behind FlavourBench.</strong>
1899
+ <p>See 20 current language-model endpoints on 32 executable culinary tasks, plus 640 matched
1900
+ Model only / Model + Epicure pairs. No human or model judge scores the leaderboard.</p>
1901
+ </div>
1902
+ <div class="benchmark-callout-links">
1903
+ <a href="https://github.com/josefchen/flavourbench" target="_blank" rel="noopener">Open FlavourBench</a>
1904
+ <a href="https://github.com/josefchen/flavourbench/blob/main/paper/build/flavourbench.pdf" target="_blank" rel="noopener">Read paper</a>
1905
+ </div>
1906
+ </aside>
1907
+ """
1908
+
1909
  # ===== Pre-rendered killer demo on landing =====
1910
 
1911
  _DEFAULT_BASKET = ["chicken","lemon","garlic"]
 
1922
  1,790 canonical ingredients across 7 languages; 300-D Metapath2Vec; controlled chemistry-vs-recipe-context spectrum.
1923
  """
1924
  )
1925
+ gr.HTML(BENCHMARK_CALLOUT)
1926
  gr.HTML(SPECTRUM_BAR)
1927
 
1928
  with gr.Tabs():
 
2338
  gr.Markdown(
2339
  """---
2340
  **Cite:** Radzikowski and Chen, 2026, *Epicure: Navigating the Emergent Geometry of Food Ingredient Embeddings*, [arXiv:2605.22391](https://arxiv.org/abs/2605.22391).
2341
+ Benchmark: [FlavourBench](https://github.com/josefchen/flavourbench) 路 Models: [epicure-cooc](https://huggingface.co/Kaikaku/epicure-cooc) 路 [epicure-core](https://huggingface.co/Kaikaku/epicure-core) 路 [epicure-chem](https://huggingface.co/Kaikaku/epicure-chem) 路 [dataset](https://huggingface.co/datasets/Kaikaku/epicure-corpus-resources) 路 [API](/?view=api)
2342
  """
2343
  )
2344