Zhongyang Li Claude Opus 4.7 commited on
Commit ·
a9141e8
1
Parent(s): 18d2106
ui: remove walkthrough section per user request
Browse filesThe 'A real Mind2Web2 research run' accordion (UI block, WALKTHROUGH_HTML
constant, and all .walkthrough CSS) has been removed. No behavior change to
the demo itself.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
app.py
CHANGED
|
@@ -1122,241 +1122,6 @@ gradio-app > div {
|
|
| 1122 |
line-height: 1.45;
|
| 1123 |
}
|
| 1124 |
|
| 1125 |
-
/* ────────────────────────────────────────────────────────────────────────
|
| 1126 |
-
Walkthrough: a curated trace from one real Mind2Web 2 task. Shown inside
|
| 1127 |
-
a collapsed Accordion below the main demo so the default view is
|
| 1128 |
-
unchanged; expanded view illustrates the 5 stages of a research run:
|
| 1129 |
-
Question → think+tool×N → context-management → think+tool×N → answer.
|
| 1130 |
-
──────────────────────────────────────────────────────────────────────── */
|
| 1131 |
-
.walkthrough { font-size: 0.9rem; color: var(--q-text); position: relative; }
|
| 1132 |
-
.walkthrough .wt-intro { color: var(--q-muted); margin: 0 0 14px; line-height: 1.55; }
|
| 1133 |
-
|
| 1134 |
-
/* Sticky "live state" bar at top of the walkthrough — updates as the user
|
| 1135 |
-
scrolls past each step, simulating the agent's progress like a replay. */
|
| 1136 |
-
.walkthrough .wt-progress {
|
| 1137 |
-
position: sticky;
|
| 1138 |
-
top: 0;
|
| 1139 |
-
z-index: 5;
|
| 1140 |
-
display: flex;
|
| 1141 |
-
flex-wrap: wrap;
|
| 1142 |
-
align-items: center;
|
| 1143 |
-
gap: 14px;
|
| 1144 |
-
padding: 10px 14px;
|
| 1145 |
-
margin: 0 0 12px;
|
| 1146 |
-
background: var(--q-paper);
|
| 1147 |
-
border: 1px solid var(--q-line-strong);
|
| 1148 |
-
border-radius: 12px;
|
| 1149 |
-
box-shadow: 0 2px 10px rgba(15,23,42,0.05);
|
| 1150 |
-
backdrop-filter: saturate(180%) blur(6px);
|
| 1151 |
-
-webkit-backdrop-filter: saturate(180%) blur(6px);
|
| 1152 |
-
}
|
| 1153 |
-
.walkthrough .wt-progress-phase {
|
| 1154 |
-
font-size: 0.74rem;
|
| 1155 |
-
font-weight: 800;
|
| 1156 |
-
letter-spacing: 0.1em;
|
| 1157 |
-
text-transform: uppercase;
|
| 1158 |
-
color: var(--q-accent);
|
| 1159 |
-
padding: 3px 10px;
|
| 1160 |
-
background: var(--q-accent-soft);
|
| 1161 |
-
border-radius: 999px;
|
| 1162 |
-
transition: background 300ms ease, color 300ms ease;
|
| 1163 |
-
}
|
| 1164 |
-
.walkthrough .wt-progress-meters {
|
| 1165 |
-
display: flex;
|
| 1166 |
-
align-items: center;
|
| 1167 |
-
gap: 14px;
|
| 1168 |
-
font-size: 0.76rem;
|
| 1169 |
-
color: var(--q-muted);
|
| 1170 |
-
flex: 1 1 auto;
|
| 1171 |
-
flex-wrap: wrap;
|
| 1172 |
-
}
|
| 1173 |
-
.walkthrough .wt-progress-meters strong {
|
| 1174 |
-
color: var(--q-text);
|
| 1175 |
-
font-weight: 700;
|
| 1176 |
-
font-variant-numeric: tabular-nums;
|
| 1177 |
-
transition: color 200ms ease;
|
| 1178 |
-
}
|
| 1179 |
-
.walkthrough .wt-tokens-bar {
|
| 1180 |
-
position: relative;
|
| 1181 |
-
display: inline-block;
|
| 1182 |
-
vertical-align: middle;
|
| 1183 |
-
width: 90px;
|
| 1184 |
-
height: 6px;
|
| 1185 |
-
background: var(--q-surface-alt);
|
| 1186 |
-
border-radius: 999px;
|
| 1187 |
-
overflow: hidden;
|
| 1188 |
-
margin-left: 6px;
|
| 1189 |
-
}
|
| 1190 |
-
.walkthrough .wt-tokens-fill {
|
| 1191 |
-
position: absolute;
|
| 1192 |
-
inset: 0 auto 0 0;
|
| 1193 |
-
width: 0%;
|
| 1194 |
-
background: linear-gradient(90deg, #3B82F6 0%, var(--q-accent) 70%, #DC2626 100%);
|
| 1195 |
-
transition: width 700ms cubic-bezier(.4,0,.2,1);
|
| 1196 |
-
}
|
| 1197 |
-
.walkthrough .wt-tokens-fill.dropped {
|
| 1198 |
-
/* Visual flash when the condenser drops the token count */
|
| 1199 |
-
background: linear-gradient(90deg, #0B9E8A 0%, #0B9E8A 100%);
|
| 1200 |
-
}
|
| 1201 |
-
|
| 1202 |
-
/* Each step card transitions opacity / lift as it becomes active. */
|
| 1203 |
-
.walkthrough .wt-block {
|
| 1204 |
-
opacity: 0.45;
|
| 1205 |
-
transform: translateY(4px);
|
| 1206 |
-
transition: opacity 400ms ease, transform 400ms ease, box-shadow 400ms ease, border-color 300ms ease;
|
| 1207 |
-
}
|
| 1208 |
-
.walkthrough .wt-block.wt-active {
|
| 1209 |
-
opacity: 1;
|
| 1210 |
-
transform: translateY(0);
|
| 1211 |
-
box-shadow: 0 4px 18px rgba(190,91,43,0.10);
|
| 1212 |
-
border-color: var(--q-accent-line, var(--q-accent));
|
| 1213 |
-
}
|
| 1214 |
-
.walkthrough .wt-block.wt-past { opacity: 0.55; }
|
| 1215 |
-
.walkthrough .wt-block.wt-condenser.wt-active {
|
| 1216 |
-
/* extra emphasis when condenser step is the active one */
|
| 1217 |
-
box-shadow: 0 6px 22px rgba(190,91,43,0.18);
|
| 1218 |
-
}
|
| 1219 |
-
@media (prefers-reduced-motion: reduce) {
|
| 1220 |
-
.walkthrough .wt-block, .walkthrough .wt-tokens-fill, .walkthrough .wt-progress-phase, .walkthrough .wt-progress-meters strong {
|
| 1221 |
-
transition: none !important;
|
| 1222 |
-
}
|
| 1223 |
-
}
|
| 1224 |
-
.walkthrough .wt-block {
|
| 1225 |
-
background: var(--q-paper);
|
| 1226 |
-
border: 1px solid var(--q-line);
|
| 1227 |
-
border-radius: 12px;
|
| 1228 |
-
padding: 14px 16px;
|
| 1229 |
-
margin: 0 0 10px;
|
| 1230 |
-
}
|
| 1231 |
-
.walkthrough .wt-phase-tag {
|
| 1232 |
-
font-size: 0.72rem;
|
| 1233 |
-
font-weight: 800;
|
| 1234 |
-
letter-spacing: 0.12em;
|
| 1235 |
-
text-transform: uppercase;
|
| 1236 |
-
color: var(--q-accent);
|
| 1237 |
-
margin: 0 0 10px;
|
| 1238 |
-
display: flex;
|
| 1239 |
-
align-items: baseline;
|
| 1240 |
-
gap: 10px;
|
| 1241 |
-
flex-wrap: wrap;
|
| 1242 |
-
}
|
| 1243 |
-
.walkthrough .wt-rounds {
|
| 1244 |
-
font-size: 0.68rem;
|
| 1245 |
-
font-weight: 600;
|
| 1246 |
-
letter-spacing: 0.04em;
|
| 1247 |
-
text-transform: none;
|
| 1248 |
-
color: var(--q-muted);
|
| 1249 |
-
}
|
| 1250 |
-
.walkthrough .wt-question blockquote {
|
| 1251 |
-
margin: 0;
|
| 1252 |
-
font-family: "Source Serif 4", "Source Serif Pro", ui-serif, Georgia, serif;
|
| 1253 |
-
font-size: 0.92rem;
|
| 1254 |
-
line-height: 1.55;
|
| 1255 |
-
color: var(--q-text);
|
| 1256 |
-
border-left: 3px solid var(--q-accent-line, var(--q-accent));
|
| 1257 |
-
padding: 2px 0 2px 12px;
|
| 1258 |
-
}
|
| 1259 |
-
.walkthrough .wt-stats {
|
| 1260 |
-
font-size: 0.82rem;
|
| 1261 |
-
color: var(--q-muted);
|
| 1262 |
-
line-height: 1.55;
|
| 1263 |
-
margin: 4px 0;
|
| 1264 |
-
}
|
| 1265 |
-
.walkthrough .wt-stats code { padding: 1px 5px; background: var(--q-surface-alt); border-radius: 4px; font-size: 0.8em; }
|
| 1266 |
-
.walkthrough .wt-turn {
|
| 1267 |
-
background: var(--q-surface-alt);
|
| 1268 |
-
border-radius: 8px;
|
| 1269 |
-
padding: 10px 12px;
|
| 1270 |
-
margin: 10px 0 0;
|
| 1271 |
-
}
|
| 1272 |
-
.walkthrough .wt-turn-label {
|
| 1273 |
-
display: inline-block;
|
| 1274 |
-
font-size: 0.66rem;
|
| 1275 |
-
font-weight: 800;
|
| 1276 |
-
letter-spacing: 0.1em;
|
| 1277 |
-
text-transform: uppercase;
|
| 1278 |
-
color: var(--q-muted);
|
| 1279 |
-
margin-bottom: 8px;
|
| 1280 |
-
}
|
| 1281 |
-
.walkthrough .wt-step { margin: 6px 0; display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
|
| 1282 |
-
.walkthrough .wt-step-tag {
|
| 1283 |
-
font-size: 0.72rem;
|
| 1284 |
-
font-weight: 700;
|
| 1285 |
-
color: var(--q-accent);
|
| 1286 |
-
flex: 0 0 76px;
|
| 1287 |
-
padding-top: 2px;
|
| 1288 |
-
}
|
| 1289 |
-
.walkthrough .wt-step-body { flex: 1 1 0; min-width: 0; font-size: 0.85rem; line-height: 1.55; }
|
| 1290 |
-
.walkthrough .wt-step pre {
|
| 1291 |
-
margin: 0;
|
| 1292 |
-
padding: 8px 10px;
|
| 1293 |
-
background: #0D1117;
|
| 1294 |
-
color: #E6EDF3;
|
| 1295 |
-
border-radius: 6px;
|
| 1296 |
-
font-size: 0.76rem;
|
| 1297 |
-
line-height: 1.5;
|
| 1298 |
-
overflow-x: auto;
|
| 1299 |
-
white-space: pre;
|
| 1300 |
-
}
|
| 1301 |
-
.walkthrough .wt-ellipsis {
|
| 1302 |
-
color: var(--q-muted);
|
| 1303 |
-
font-style: italic;
|
| 1304 |
-
font-size: 0.8rem;
|
| 1305 |
-
padding: 8px 4px 0 8px;
|
| 1306 |
-
border-left: 2px dotted var(--q-line-strong);
|
| 1307 |
-
margin-left: 8px;
|
| 1308 |
-
}
|
| 1309 |
-
.walkthrough .wt-condenser {
|
| 1310 |
-
border-color: var(--q-accent-line, var(--q-accent));
|
| 1311 |
-
background: var(--q-accent-soft);
|
| 1312 |
-
}
|
| 1313 |
-
.walkthrough .wt-condenser details { margin: 8px 0 0; }
|
| 1314 |
-
.walkthrough .wt-condenser summary {
|
| 1315 |
-
cursor: pointer;
|
| 1316 |
-
color: var(--q-accent);
|
| 1317 |
-
font-size: 0.78rem;
|
| 1318 |
-
font-weight: 600;
|
| 1319 |
-
user-select: none;
|
| 1320 |
-
}
|
| 1321 |
-
.walkthrough .wt-condenser details pre {
|
| 1322 |
-
margin: 8px 0 0;
|
| 1323 |
-
padding: 10px;
|
| 1324 |
-
background: #0D1117;
|
| 1325 |
-
color: #E6EDF3;
|
| 1326 |
-
border-radius: 6px;
|
| 1327 |
-
font-size: 0.75rem;
|
| 1328 |
-
line-height: 1.5;
|
| 1329 |
-
overflow-x: auto;
|
| 1330 |
-
}
|
| 1331 |
-
.walkthrough .wt-effect {
|
| 1332 |
-
margin-top: 10px;
|
| 1333 |
-
padding-top: 10px;
|
| 1334 |
-
border-top: 1px dashed var(--q-line-strong);
|
| 1335 |
-
font-size: 0.82rem;
|
| 1336 |
-
color: var(--q-text);
|
| 1337 |
-
}
|
| 1338 |
-
.walkthrough .wt-table-wrap { overflow-x: auto; margin-top: 10px; }
|
| 1339 |
-
.walkthrough .wt-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
|
| 1340 |
-
.walkthrough .wt-table th, .walkthrough .wt-table td {
|
| 1341 |
-
padding: 8px 10px;
|
| 1342 |
-
border-bottom: 1px solid var(--q-line);
|
| 1343 |
-
text-align: left;
|
| 1344 |
-
vertical-align: top;
|
| 1345 |
-
}
|
| 1346 |
-
.walkthrough .wt-table th {
|
| 1347 |
-
background: var(--q-surface-alt);
|
| 1348 |
-
font-weight: 700;
|
| 1349 |
-
font-size: 0.7rem;
|
| 1350 |
-
text-transform: uppercase;
|
| 1351 |
-
letter-spacing: 0.06em;
|
| 1352 |
-
color: var(--q-muted);
|
| 1353 |
-
}
|
| 1354 |
-
.walkthrough .wt-table code { padding: 1px 5px; background: var(--q-surface-alt); border-radius: 4px; font-size: 0.78rem; }
|
| 1355 |
-
.walkthrough .wt-table a { color: var(--q-accent); text-decoration: none; }
|
| 1356 |
-
.walkthrough .wt-table a:hover { text-decoration: underline; }
|
| 1357 |
-
@media (max-width: 600px) {
|
| 1358 |
-
.walkthrough .wt-step-tag { flex-basis: 100%; }
|
| 1359 |
-
}
|
| 1360 |
.memory-help {
|
| 1361 |
color: var(--q-muted);
|
| 1362 |
font-size: 12.5px;
|
|
@@ -2684,227 +2449,6 @@ EXAMPLES = [
|
|
| 2684 |
]
|
| 2685 |
|
| 2686 |
|
| 2687 |
-
# Curated walkthrough of one real Mind2Web 2 task that QUEST-35B ran end-to-end.
|
| 2688 |
-
# All numbers, sample turns, the condenser trigger and the trusted-facts table
|
| 2689 |
-
# are taken verbatim from inference/.../task_idx_95/iter1 (trajectories.jsonl +
|
| 2690 |
-
# condenser_call_1_*.json). Edited only for length.
|
| 2691 |
-
WALKTHROUGH_HTML = """
|
| 2692 |
-
<div class="walkthrough">
|
| 2693 |
-
<p class="wt-intro">
|
| 2694 |
-
The trace below is from a single Mind2Web 2 task that QUEST-35B solved end-to-end.
|
| 2695 |
-
Scroll through to <strong>watch the agent replay itself</strong> — the sticky bar
|
| 2696 |
-
above tracks the live round count, context token usage, and trusted-fact tally
|
| 2697 |
-
as each step enters view.
|
| 2698 |
-
</p>
|
| 2699 |
-
|
| 2700 |
-
<!-- Sticky "live state" replay bar — JS below updates it as each .wt-block scrolls into view. -->
|
| 2701 |
-
<div class="wt-progress" aria-live="polite">
|
| 2702 |
-
<span class="wt-progress-phase" data-wt-phase>Question</span>
|
| 2703 |
-
<span class="wt-progress-meters">
|
| 2704 |
-
<span>round <strong data-wt-round>0</strong>/87</span>
|
| 2705 |
-
<span>
|
| 2706 |
-
<strong data-wt-tokens>0</strong> tokens
|
| 2707 |
-
<span class="wt-tokens-bar"><span class="wt-tokens-fill" data-wt-tokens-fill></span></span>
|
| 2708 |
-
</span>
|
| 2709 |
-
<span><strong data-wt-trusted>0</strong> trusted facts</span>
|
| 2710 |
-
</span>
|
| 2711 |
-
</div>
|
| 2712 |
-
|
| 2713 |
-
<!-- Question -->
|
| 2714 |
-
<div class="wt-block wt-question"
|
| 2715 |
-
data-wt-phase="Question" data-wt-round="0" data-wt-tokens="0" data-wt-trusted="0">
|
| 2716 |
-
<div class="wt-phase-tag">Question</div>
|
| 2717 |
-
<blockquote>
|
| 2718 |
-
I am interested in Retrieval-Augmented Generation (RAG) and would like to explore
|
| 2719 |
-
popular and easy-to-use repositories on GitHub. Please identify the 10 most-starred
|
| 2720 |
-
repositories listed under the GitHub topic <em>"retrieval-augmented-generation"</em>.
|
| 2721 |
-
For each repository, please provide its name, a direct link to its GitHub page, and
|
| 2722 |
-
indicate whether its README explicitly states that it can be installed using a single
|
| 2723 |
-
<code>pip install <package-name></code> command (without additional steps). If it
|
| 2724 |
-
does, please also provide a link to its PyPI page; if not, explicitly note that this
|
| 2725 |
-
installation method isn't mentioned.
|
| 2726 |
-
</blockquote>
|
| 2727 |
-
</div>
|
| 2728 |
-
|
| 2729 |
-
<!-- Phase 1 -->
|
| 2730 |
-
<div class="wt-block"
|
| 2731 |
-
data-wt-phase="Phase 1 · Exploration" data-wt-round="62" data-wt-tokens="80824" data-wt-trusted="0">
|
| 2732 |
-
<div class="wt-phase-tag">Phase 1 · Exploration <span class="wt-rounds">rounds 1 → 62</span></div>
|
| 2733 |
-
<div class="wt-stats">
|
| 2734 |
-
🧠 think + 🔧 tool × <strong>62 turns</strong> ·
|
| 2735 |
-
22 visits + 2 searches ·
|
| 2736 |
-
context grew to <strong>80,824 tokens</strong> / 122 messages
|
| 2737 |
-
</div>
|
| 2738 |
-
|
| 2739 |
-
<div class="wt-turn">
|
| 2740 |
-
<div class="wt-turn-label">Sample · round 1</div>
|
| 2741 |
-
<div class="wt-step">
|
| 2742 |
-
<span class="wt-step-tag">🧠 Think</span>
|
| 2743 |
-
<div class="wt-step-body">
|
| 2744 |
-
"We need to produce a list of the 10 most-starred repositories under GitHub topic
|
| 2745 |
-
'retrieval-augmented-generation' … standard web search may not know about
|
| 2746 |
-
topics; let's try several queries and see what sticks."
|
| 2747 |
-
</div>
|
| 2748 |
-
</div>
|
| 2749 |
-
<div class="wt-step">
|
| 2750 |
-
<span class="wt-step-tag">🔧 Tool</span>
|
| 2751 |
-
<pre>search([
|
| 2752 |
-
"retrieval-augmented-generation github topic",
|
| 2753 |
-
"GitHub topic 'retrieval-augmented-generation' popular repos",
|
| 2754 |
-
"retrieval augmented generation github repositories star count",
|
| 2755 |
-
"retrieval-augmented-generation python library"
|
| 2756 |
-
])</pre>
|
| 2757 |
-
</div>
|
| 2758 |
-
<div class="wt-step">
|
| 2759 |
-
<span class="wt-step-tag">📥 Result</span>
|
| 2760 |
-
<div class="wt-step-body">
|
| 2761 |
-
10 hits including the topic page itself
|
| 2762 |
-
<code>github.com/topics/retrieval-augmented-generation</code> — the agent now
|
| 2763 |
-
has a starting URL to visit and crawl.
|
| 2764 |
-
</div>
|
| 2765 |
-
</div>
|
| 2766 |
-
</div>
|
| 2767 |
-
|
| 2768 |
-
<div class="wt-ellipsis">⋮ 61 more think → tool turns: visit the topic page, then each candidate repo, fetch READMEs, check PyPI metadata one repo at a time.</div>
|
| 2769 |
-
</div>
|
| 2770 |
-
|
| 2771 |
-
<!-- Context Management -->
|
| 2772 |
-
<div class="wt-block wt-condenser"
|
| 2773 |
-
data-wt-phase="🗜️ Context Mgmt" data-wt-round="62" data-wt-tokens="2400" data-wt-trusted="11" data-wt-tokens-drop="1">
|
| 2774 |
-
<div class="wt-phase-tag">🗜️ Context Management <span class="wt-rounds">round 62</span></div>
|
| 2775 |
-
<div class="wt-stats">trigger: <code>CONTEXT_THRESHOLD</code> (80,000-token budget hit) · condenser LLM fires</div>
|
| 2776 |
-
<div class="wt-stats">output state: <strong>11 trusted</strong> facts · 1 uncertain · 0 untrusted · 21 visited sources · 8 search queries (deduplicated)</div>
|
| 2777 |
-
<details>
|
| 2778 |
-
<summary>example trusted fact (1 of 11)</summary>
|
| 2779 |
-
<pre>{
|
| 2780 |
-
"id": "T1",
|
| 2781 |
-
"claim": "Langchain-Chatchat README includes a pip install line:
|
| 2782 |
-
'pip install langchain-chatchat -U'.",
|
| 2783 |
-
"sources": [
|
| 2784 |
-
"https://github.com/chatchat-space/Langchain-Chatchat",
|
| 2785 |
-
"https://pypi.org/project/langchain-chatchat/"
|
| 2786 |
-
],
|
| 2787 |
-
"reason": "README's Installation section shows the pip command;
|
| 2788 |
-
PyPI confirms the package."
|
| 2789 |
-
}</pre>
|
| 2790 |
-
</details>
|
| 2791 |
-
<div class="wt-effect">
|
| 2792 |
-
→ history reset to <code>[system, question, state_summary]</code>
|
| 2793 |
-
· <strong>122 messages → 2</strong>
|
| 2794 |
-
· ~80k tokens of headroom reclaimed.
|
| 2795 |
-
</div>
|
| 2796 |
-
</div>
|
| 2797 |
-
|
| 2798 |
-
<!-- Phase 2 -->
|
| 2799 |
-
<div class="wt-block"
|
| 2800 |
-
data-wt-phase="Phase 2 · Synthesize" data-wt-round="87" data-wt-tokens="41721" data-wt-trusted="11">
|
| 2801 |
-
<div class="wt-phase-tag">Phase 2 · Resolve & Synthesize <span class="wt-rounds">rounds 63 → 87</span></div>
|
| 2802 |
-
<div class="wt-stats">
|
| 2803 |
-
model reads <code>prev_state</code>, sees the one <em>uncertain</em> claim
|
| 2804 |
-
(PageIndex's pip availability), re-visits the missing PyPI page to settle it,
|
| 2805 |
-
and then synthesizes the final markdown table from the 11 trusted facts.
|
| 2806 |
-
</div>
|
| 2807 |
-
</div>
|
| 2808 |
-
|
| 2809 |
-
<!-- Answer -->
|
| 2810 |
-
<div class="wt-block"
|
| 2811 |
-
data-wt-phase="✍️ Answer" data-wt-round="87" data-wt-tokens="41721" data-wt-trusted="11">
|
| 2812 |
-
<div class="wt-phase-tag">✍️ Answer <span class="wt-rounds">round 87</span></div>
|
| 2813 |
-
<div class="wt-stats">final structured markdown built directly from the consolidated trusted state</div>
|
| 2814 |
-
<div class="wt-table-wrap">
|
| 2815 |
-
<table class="wt-table">
|
| 2816 |
-
<thead>
|
| 2817 |
-
<tr><th>Repository</th><th>One-line <code>pip install</code>?</th><th>PyPI</th></tr>
|
| 2818 |
-
</thead>
|
| 2819 |
-
<tbody>
|
| 2820 |
-
<tr><td><a href="https://github.com/chatchat-space/Langchain-Chatchat" target="_blank" rel="noopener">chatchat-space/Langchain-Chatchat</a></td><td>✅ <code>pip install langchain-chatchat -U</code></td><td><a href="https://pypi.org/project/langchain-chatchat/" target="_blank" rel="noopener">langchain-chatchat</a></td></tr>
|
| 2821 |
-
<tr><td><a href="https://github.com/HKUDS/LightRAG" target="_blank" rel="noopener">HKUDS/LightRAG</a></td><td>✅ <code>pip install lightrag-hku</code></td><td><a href="https://pypi.org/project/lightrag-hku/" target="_blank" rel="noopener">lightrag-hku</a></td></tr>
|
| 2822 |
-
<tr><td><a href="https://github.com/stanford-oval/storm" target="_blank" rel="noopener">stanford-oval/storm</a></td><td>✅ <code>pip install knowledge-storm</code></td><td><a href="https://pypi.org/project/knowledge-storm/" target="_blank" rel="noopener">knowledge-storm</a></td></tr>
|
| 2823 |
-
<tr><td><a href="https://github.com/deepset-ai/haystack" target="_blank" rel="noopener">deepset-ai/haystack</a></td><td>✅ <code>pip install haystack-ai</code></td><td><a href="https://pypi.org/project/haystack-ai/" target="_blank" rel="noopener">haystack-ai</a></td></tr>
|
| 2824 |
-
<tr><td><a href="https://github.com/HKUDS/RAG-Anything" target="_blank" rel="noopener">HKUDS/RAG-Anything</a></td><td>✅ <code>pip install raganything</code></td><td><a href="https://pypi.org/project/raganything/" target="_blank" rel="noopener">raganything</a></td></tr>
|
| 2825 |
-
<tr><td><a href="https://github.com/memvid/memvid" target="_blank" rel="noopener">memvid/memvid</a></td><td>✅ <code>pip install memvid-sdk</code></td><td><a href="https://pypi.org/project/memvid-sdk/" target="_blank" rel="noopener">memvid-sdk</a></td></tr>
|
| 2826 |
-
<tr><td><a href="https://github.com/llmware-ai/llmware" target="_blank" rel="noopener">llmware-ai/llmware</a></td><td>✅ <code>pip3 install llmware</code></td><td><a href="https://pypi.org/project/llmware/" target="_blank" rel="noopener">llmware</a></td></tr>
|
| 2827 |
-
<tr><td><a href="https://github.com/VectifyAI/PageIndex" target="_blank" rel="noopener">VectifyAI/PageIndex</a></td><td>❌ not mentioned (README uses <code>pip install -r requirements.txt</code>)</td><td>—</td></tr>
|
| 2828 |
-
<tr><td><a href="https://github.com/pathwaycom/llm-app" target="_blank" rel="noopener">pathwaycom/llm-app</a></td><td>❌ not mentioned (Docker / poetry / templates)</td><td>—</td></tr>
|
| 2829 |
-
<tr><td><a href="https://github.com/NirDiamant/RAG_Techniques" target="_blank" rel="noopener">NirDiamant/RAG_Techniques</a></td><td>❌ not mentioned (clone + run notebooks)</td><td>—</td></tr>
|
| 2830 |
-
</tbody>
|
| 2831 |
-
</table>
|
| 2832 |
-
</div>
|
| 2833 |
-
</div>
|
| 2834 |
-
</div>
|
| 2835 |
-
|
| 2836 |
-
<script>
|
| 2837 |
-
(function () {
|
| 2838 |
-
// Wait for the walkthrough markup to actually be in the DOM (it lives inside
|
| 2839 |
-
// an Accordion that may render later) and initialise once.
|
| 2840 |
-
function init() {
|
| 2841 |
-
var roots = document.querySelectorAll('.walkthrough');
|
| 2842 |
-
roots.forEach(function (root) {
|
| 2843 |
-
if (root.dataset.wtInit) return;
|
| 2844 |
-
root.dataset.wtInit = '1';
|
| 2845 |
-
|
| 2846 |
-
var blocks = root.querySelectorAll('.wt-block');
|
| 2847 |
-
if (!blocks.length) return;
|
| 2848 |
-
var TOTAL_BUDGET = 80824; // peak token count, used to scale the bar
|
| 2849 |
-
var phaseEl = root.querySelector('[data-wt-phase]');
|
| 2850 |
-
var roundEl = root.querySelector('[data-wt-round]');
|
| 2851 |
-
var tokensEl = root.querySelector('[data-wt-tokens]');
|
| 2852 |
-
var fillEl = root.querySelector('[data-wt-tokens-fill]');
|
| 2853 |
-
var trustedEl = root.querySelector('[data-wt-trusted]');
|
| 2854 |
-
|
| 2855 |
-
function setActive(idx) {
|
| 2856 |
-
blocks.forEach(function (b, i) {
|
| 2857 |
-
b.classList.toggle('wt-active', i === idx);
|
| 2858 |
-
b.classList.toggle('wt-past', i < idx);
|
| 2859 |
-
});
|
| 2860 |
-
var b = blocks[idx];
|
| 2861 |
-
if (!b) return;
|
| 2862 |
-
phaseEl.textContent = b.dataset.wtPhase || '';
|
| 2863 |
-
roundEl.textContent = b.dataset.wtRound || '0';
|
| 2864 |
-
var t = parseInt(b.dataset.wtTokens || '0', 10);
|
| 2865 |
-
tokensEl.textContent = t.toLocaleString();
|
| 2866 |
-
fillEl.style.width = Math.min(100, (t / TOTAL_BUDGET) * 100) + '%';
|
| 2867 |
-
fillEl.classList.toggle('dropped', b.dataset.wtTokensDrop === '1');
|
| 2868 |
-
trustedEl.textContent = b.dataset.wtTrusted || '0';
|
| 2869 |
-
}
|
| 2870 |
-
setActive(0);
|
| 2871 |
-
|
| 2872 |
-
// Determine active block by which one is closest to viewport center.
|
| 2873 |
-
function recompute() {
|
| 2874 |
-
var bestIdx = 0;
|
| 2875 |
-
var bestDist = Infinity;
|
| 2876 |
-
var vc = window.innerHeight / 2;
|
| 2877 |
-
blocks.forEach(function (b, i) {
|
| 2878 |
-
var r = b.getBoundingClientRect();
|
| 2879 |
-
if (r.bottom < 0 || r.top > window.innerHeight) return;
|
| 2880 |
-
var c = (r.top + r.bottom) / 2;
|
| 2881 |
-
var d = Math.abs(c - vc);
|
| 2882 |
-
if (d < bestDist) { bestDist = d; bestIdx = i; }
|
| 2883 |
-
});
|
| 2884 |
-
setActive(bestIdx);
|
| 2885 |
-
}
|
| 2886 |
-
window.addEventListener('scroll', recompute, { passive: true });
|
| 2887 |
-
window.addEventListener('resize', recompute);
|
| 2888 |
-
// Recompute when the accordion opens (its children become visible).
|
| 2889 |
-
var io = new IntersectionObserver(function (entries) {
|
| 2890 |
-
entries.forEach(function (e) { if (e.isIntersecting) recompute(); });
|
| 2891 |
-
}, { threshold: 0.05 });
|
| 2892 |
-
blocks.forEach(function (b) { io.observe(b); });
|
| 2893 |
-
// First paint after Accordion expand
|
| 2894 |
-
setTimeout(recompute, 80);
|
| 2895 |
-
});
|
| 2896 |
-
}
|
| 2897 |
-
// Gradio mounts asynchronously — observe the DOM and (re)init when nodes appear.
|
| 2898 |
-
if (document.readyState === 'loading') {
|
| 2899 |
-
document.addEventListener('DOMContentLoaded', init);
|
| 2900 |
-
} else {
|
| 2901 |
-
init();
|
| 2902 |
-
}
|
| 2903 |
-
new MutationObserver(init).observe(document.body, { childList: true, subtree: true });
|
| 2904 |
-
})();
|
| 2905 |
-
</script>
|
| 2906 |
-
"""
|
| 2907 |
-
|
| 2908 |
|
| 2909 |
def _example_label(ex: Dict[str, str]) -> str:
|
| 2910 |
return f"{ex['icon']} {ex['category']} — {ex['text']}"
|
|
@@ -2957,15 +2501,6 @@ with gr.Blocks(
|
|
| 2957 |
for ex in EXAMPLES
|
| 2958 |
]
|
| 2959 |
|
| 2960 |
-
# Walkthrough: curated trace from one real Mind2Web 2 run.
|
| 2961 |
-
# Sits between Try examples and Output; collapsed by default.
|
| 2962 |
-
with gr.Accordion(
|
| 2963 |
-
label="A real Mind2Web2 research run",
|
| 2964 |
-
open=False,
|
| 2965 |
-
elem_classes="walkthrough-acc",
|
| 2966 |
-
):
|
| 2967 |
-
gr.HTML(WALKTHROUGH_HTML)
|
| 2968 |
-
|
| 2969 |
with gr.Group(elem_classes="section-card"):
|
| 2970 |
gr.HTML(
|
| 2971 |
'<div class="section-heading section-heading-row">'
|
|
|
|
| 1122 |
line-height: 1.45;
|
| 1123 |
}
|
| 1124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1125 |
.memory-help {
|
| 1126 |
color: var(--q-muted);
|
| 1127 |
font-size: 12.5px;
|
|
|
|
| 2449 |
]
|
| 2450 |
|
| 2451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2452 |
|
| 2453 |
def _example_label(ex: Dict[str, str]) -> str:
|
| 2454 |
return f"{ex['icon']} {ex['category']} — {ex['text']}"
|
|
|
|
| 2501 |
for ex in EXAMPLES
|
| 2502 |
]
|
| 2503 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2504 |
with gr.Group(elem_classes="section-card"):
|
| 2505 |
gr.HTML(
|
| 2506 |
'<div class="section-heading section-heading-row">'
|