digraph root {
graph [_draw_="c 9 -#fffffe00 C 7 -#f8f8f2 P 4 0 0 0 1249 937 1249 937 0 ",
arrowsize=0.6,
bb="0,0,937,1249",
bgcolor="#f8f8f2",
charset="UTF-8",
clusterize=true,
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
rankdir=LR,
shape=box,
splines=spline,
style=rounded,
truecolor=true,
xdotversion=1.7
];
node [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
label="\N",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
shape=box,
splines=true,
style=rounded,
truecolor=true
];
edge [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
fontsize=6.8,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
shape=box,
splines=true,
style=rounded,
truecolor=true
];
subgraph G_cc_0 {
graph [arrowsize=0.6,
bb="",
bgcolor="#f8f8f2",
charset="UTF-8",
clusterize=true,
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
rankdir=LR,
shape=box,
splines=spline,
style=rounded,
truecolor=true
];
node [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fillcolor="",
fontcolor="#44475a",
fontname=Agave,
fontsize="",
height="",
href="",
label="\N",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
shape=box,
splines=true,
style=rounded,
truecolor=true,
width=""
];
edge [arrowhead="",
arrowsize=0.6,
arrowtail="",
bgcolor="#f8f8f2",
color="#282a36",
constrained="",
dir="",
fontcolor="#44475a",
fontname=Agave,
fontsize=6.8,
href="",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
reverse="",
shape=box,
splines=true,
style=rounded,
tooltip="",
truecolor=true,
type=""
];
LLM_Tagger [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#7ef7ee P 4 383 793 0 793 0 734 383 734 ",
_ldraw_="F 19 5 -Agave c 7 -#44475a t 1 T 1.5 777.3 -1 98 10 -LLM Tagger F 19 5 -Agave c 7 -#44475a t 0 T 1.5 758.3 -1 381 39 -Document clustering \
and analysis using F 19 5 -Agave c 7 -#44475a T 99 739.3 -1 186 19 -embeddings and LLM. ",
fillcolor="#7EF7EE",
fontsize=19,
height=0.81944,
href="#LLM_Tagger",
label=<
LLM Tagger Document clustering and analysis using embeddings and LLM. |
>,
pos="191.5,763.5",
shape=plain,
style=filled,
width=5.3194];
Quick_Start [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#7ef7ee P 4 636 1249 449 1249 449 1086 636 1086 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 450.5 1240.9 -1 50 11 -Quick Start F 9.5 5 -Agave c 7 -#ff79c6 t 0 T 450.5 1221.9 -1 149 34 - cd \
docker/llm-tagger # step 1: F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1212.4 -1 145 32 -cache embeddings (always first) F 9.5 5 -Agave \
c 7 -#ff79c6 T 450.5 1202.9 -1 167 37 -./llm-tagger.sh init total.ndjson # F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1193.4 -1 181 40 \
-step 2: cluster and tag ./llm-tagger.sh F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1183.9 -1 176 39 -educe-tags subset.ndjson output.ndjson \
F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1174.4 -1 172 38 -100 # optional: hierarchical tagging F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 \
1164.9 -1 131 29 -./llm-tagger.sh hierarchical F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1155.4 -1 149 33 -level1.ndjson level2.ndjson \
3 # F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1145.9 -1 185 41 -optional: analysis tools ./llm-tagger.sh F 9.5 5 -Agave c 7 -#ff79c6 \
T 450.5 1136.4 -1 136 30 -search data.ndjson 'query' 10 F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1126.9 -1 185 41 -./llm-tagger.sh similar \
data.ndjson 0.95 F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1117.4 -1 136 30 -./llm-tagger.sh custom-prompt F 9.5 5 -Agave c 7 -#ff79c6 \
T 450.5 1107.9 -1 176 39 -tagged.ndjson 'prompt' ./llm-tagger.sh F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1098.4 -1 109 24 -visualize \
tagged.ndjson F 9.5 5 -Agave c 7 -#ff79c6 T 450.5 1088.9 -1 55 13 -output.html ",
fillcolor="#7EF7EE",
fontsize=9.5,
height=2.2639,
href="#Quick_Start",
label=<Quick Start
cd docker/llm-tagger # step 1: cache embeddings (always first) ./llm-tagger.sh init total.ndjson # step 2: cluster and tag ./llm-tagger.sh educe-tags subset.ndjson output.ndjson 100 # optional: hierarchical tagging ./llm-tagger.sh hierarchical level1.ndjson level2.ndjson 3 # optional: analysis tools ./llm-tagger.sh search data.ndjson 'query' 10 ./llm-tagger.sh similar data.ndjson 0.95 ./llm-tagger.sh custom-prompt tagged.ndjson 'prompt' ./llm-tagger.sh visualize tagged.ndjson output.html
|
>,
pos="542.5,1167.5",
shape=plain,
style=filled,
width=2.5972];
LLM_Tagger -> Quick_Start [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 210.35 792.88 245.18 851.36 328.15 983.32 419.5 1076 426.11 1082.7 433.24 1089.3 \
440.62 1095.7 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 448.71 1102.6 438.18 1099.53 444.91 1099.36 441.1 1096.11 441.1 \
1096.11 441.1 1096.11 444.91 1099.36 444.02 1092.69 448.71 1102.6 ",
arrowhead=open,
arrowsize=1.0,
href="#LLM_Tagger👉 Quick_Start",
pos="e,448.71,1102.6 210.35,792.88 245.18,851.36 328.15,983.32 419.5,1076 426.11,1082.7 433.24,1089.3 440.62,1095.7",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
All_Commands [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#7ef7ee P 4 665.5 1067.5 419.5 1067.5 419.5 907.5 665.5 907.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 420.5 1059.9 -1 55 12 -All Commands S 5 -solid c 7 -#282a36 p 4 422.5 1036.5 422.5 1052.5 496.5 \
1052.5 496.5 1036.5 F 9.5 5 -Agave c 7 -#44475a t 0 T 443.5 1041.9 -1 32 7 -Command S 5 -solid c 7 -#282a36 p 4 498.5 1036.5 498.5 \
1052.5 662.5 1052.5 662.5 1036.5 F 9.5 5 -Agave c 7 -#44475a T 564.5 1041.9 -1 32 7 -Purpose S 5 -solid c 7 -#282a36 p 4 422.5 1018.5 \
422.5 1034.5 496.5 1034.5 496.5 1018.5 F 9.5 5 -Agave c 7 -#ff79c6 T 445.5 1023.9 -1 28 8 - init S 5 -solid c 7 -#282a36 p 4 \
498.5 1018.5 498.5 1034.5 662.5 1034.5 662.5 1018.5 F 9.5 5 -Agave c 7 -#44475a T 501.5 1023.9 -1 158 35 -Cache embeddings from \
total dataset S 5 -solid c 7 -#282a36 p 4 422.5 1000.5 422.5 1016.5 496.5 1016.5 496.5 1000.5 F 9.5 5 -Agave c 7 -#ff79c6 T 432 \
1005.9 -1 55 14 - educe-tags S 5 -solid c 7 -#282a36 p 4 498.5 1000.5 498.5 1016.5 662.5 1016.5 662.5 1000.5 F 9.5 5 -Agave c \
7 -#44475a T 508 1005.9 -1 145 32 -Cluster subset and generate tags S 5 -solid c 7 -#282a36 p 4 422.5 982.5 422.5 998.5 496.5 998.5 \
496.5 982.5 F 9.5 5 -Agave c 7 -#ff79c6 T 427.5 987.9 -1 64 16 - hierarchical S 5 -solid c 7 -#282a36 p 4 498.5 982.5 498.5 998.5 \
662.5 998.5 662.5 982.5 F 9.5 5 -Agave c 7 -#44475a T 524 987.9 -1 113 25 -Create two-level taxonomy S 5 -solid c 7 -#282a36 p 4 \
422.5 964.5 422.5 980.5 496.5 980.5 496.5 964.5 F 9.5 5 -Agave c 7 -#ff79c6 T 441 969.9 -1 37 10 - search S 5 -solid c 7 -#282a36 \
p 4 498.5 964.5 498.5 980.5 662.5 980.5 662.5 964.5 F 9.5 5 -Agave c 7 -#44475a T 526 969.9 -1 109 24 -Semantic search by query \
S 5 -solid c 7 -#282a36 p 4 422.5 946.5 422.5 962.5 496.5 962.5 496.5 946.5 F 9.5 5 -Agave c 7 -#ff79c6 T 439 951.9 -1 41 11 - similar \
S 5 -solid c 7 -#282a36 p 4 498.5 946.5 498.5 962.5 662.5 962.5 662.5 946.5 F 9.5 5 -Agave c 7 -#44475a T 508 951.9 -1 145 32 -Find \
duplicate/similar documents S 5 -solid c 7 -#282a36 p 4 422.5 928.5 422.5 944.5 496.5 944.5 496.5 928.5 F 9.5 5 -Agave c 7 -#ff79c6 \
T 425.5 933.9 -1 68 17 - custom-prompt S 5 -solid c 7 -#282a36 p 4 498.5 928.5 498.5 944.5 662.5 944.5 662.5 928.5 F 9.5 5 -Agave \
c 7 -#44475a T 508 933.9 -1 145 32 -Ask custom questions to clusters S 5 -solid c 7 -#282a36 p 4 422.5 910.5 422.5 926.5 496.5 926.5 \
496.5 910.5 F 9.5 5 -Agave c 7 -#ff79c6 T 434.5 915.9 -1 50 13 - visualize S 5 -solid c 7 -#282a36 p 4 498.5 910.5 498.5 926.5 \
662.5 926.5 662.5 910.5 F 9.5 5 -Agave c 7 -#44475a T 517 915.9 -1 127 28 -Interactive 2D visualization ",
fillcolor="#7EF7EE",
fontsize=9.5,
height=2.2222,
href="#All_Commands",
label=<All Commands
|
| Command | Purpose | | init | Cache embeddings from total dataset | | educe-tags | Cluster subset and generate tags | | hierarchical | Create two-level taxonomy | | search | Semantic search by query | | similar | Find duplicate/similar documents | | custom-prompt | Ask custom questions to clusters | | visualize | Interactive 2D visualization |
|
>,
pos="542.5,987.5",
shape=plain,
style=filled,
width=3.4167];
LLM_Tagger -> All_Commands [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 238.92 792.51 282.61 820.6 350.45 864.2 410.83 903.01 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 419.3 908.46 408.46 906.83 415.1 905.75 410.89 903.05 410.89 903.05 \
410.89 903.05 415.1 905.75 413.33 899.26 419.3 908.46 ",
arrowhead=open,
arrowsize=1.0,
href="#LLM_Tagger👉 All_Commands",
pos="e,419.3,908.46 238.92,792.51 282.61,820.6 350.45,864.2 410.83,903.01",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Workflows [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#eee7de P 4 564 889.5 521 889.5 521 877.5 564 877.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 522.5 881.9 -1 41 9 -Workflows ",
fillcolor="#EEE7DE",
fontsize=9.5,
height=0.16667,
href="#Workflows",
label=<>,
pos="542.5,883.5",
shape=plain,
style=filled,
width=0.59722];
LLM_Tagger -> Workflows [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 278.7 792.51 355.82 819.06 464.45 856.47 514.42 873.67 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 523.88 876.93 512.96 877.93 519.15 875.3 514.43 873.67 514.43 873.67 \
514.43 873.67 519.15 875.3 515.89 869.42 523.88 876.93 ",
arrowhead=open,
arrowsize=1.0,
href="#LLM_Tagger👉 Workflows",
pos="e,523.88,876.93 278.7,792.51 355.82,819.06 464.45,856.47 514.42,873.67",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Performance_Changes [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 586.5 769.5 498.5 769.5 498.5 757.5 586.5 757.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 499.5 761.9 -1 86 19 -Performance Changes ",
fillcolor="#FFFFFF",
fontsize=9.5,
height=0.16667,
href="#Performance_Changes",
label=<>,
pos="542.5,763.5",
shape=plain,
style=filled,
width=1.2222];
LLM_Tagger -> Performance_Changes [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 395.68 763 401.49 763.06 407.27 763.11 413.01 763.17 418.69 \
763.22 424.33 763.28 429.91 763.33 435.42 763.39 440.86 763.44 446.22 763.49 451.5 763.54 456.7 763.59 461.79 763.64 466.79 763.69 \
471.68 763.74 476.45 763.79 481.11 763.83 485.64 763.88 490.04 763.92 494.3 763.96 498.42 764 498.42 762 494.3 762.04 490.04 762.08 \
485.64 762.12 481.11 762.17 476.45 762.21 471.68 762.26 466.79 762.31 461.79 762.36 456.7 762.41 451.5 762.46 446.22 762.51 440.86 \
762.56 435.42 762.61 429.91 762.67 424.33 762.72 418.69 762.78 413.01 762.83 407.27 762.89 401.49 762.94 395.68 763 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 395.56 763 389.56 767 383.56 763 389.56 759 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#LLM_Tagger👉 Performance_Changes",
penwidth=2,
pos="s,383.56,763 395.68,763 434.53,763 471.45,763 498.42,763",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Two_Phase_Architecture [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#8bd1a4 P 4 593.5 639.5 491.5 639.5 491.5 627.5 593.5 627.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 492.5 631.9 -1 100 22 -Two-Phase Architecture ",
fillcolor="#8BD1A4",
fontsize=9.5,
height=0.16667,
href="#Two_Phase_Architecture",
label=<>,
pos="542.5,633.5",
shape=plain,
style=filled,
width=1.4167];
LLM_Tagger -> Two_Phase_Architecture [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 284.43 729.16 297.12 724.52 310.23 719.72 323.66 714.81 337.35 \
709.8 351.2 704.74 365.15 699.63 379.12 694.53 393.01 689.44 406.76 684.41 420.28 679.47 433.5 674.63 446.33 669.94 458.7 665.42 \
470.52 661.09 481.72 657 492.22 653.16 501.93 649.61 510.78 646.37 518.68 643.48 525.57 640.97 524.87 639.09 518.01 641.66 510.13 \
644.61 501.3 647.92 491.62 651.55 481.15 655.46 469.99 659.65 458.2 664.06 445.87 668.68 433.07 673.47 419.89 678.41 406.41 683.46 \
392.7 688.6 378.84 693.79 364.92 699 351.01 704.22 337.19 709.39 323.55 714.5 310.15 719.52 297.09 724.42 284.43 729.16 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 284.21 729.24 279.96 735.07 272.95 733.4 277.19 727.57 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#LLM_Tagger👉 Two_Phase_Architecture",
penwidth=2,
pos="s,272.95,733.4 284.43,729.16 367.38,698.45 482.97,655.66 525.22,640.03",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Hierarchical_Tagging [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#fff4e5 P 4 634 456.5 451 456.5 451 426.5 634 426.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 452.5 448.9 -1 91 20 -Hierarchical Tagging F 9.5 5 -Agave c 7 -#44475a t 0 T 452.5 439.4 -1 181 \
40 -Create two-level taxonomy: fine-grained F 9.5 5 -Agave c 7 -#44475a T 500 429.9 -1 86 19 -+ broad categories. ",
fillcolor="#FFF4E5",
fontsize=9.5,
height=0.41667,
href="#Hierarchical_Tagging",
label=<Hierarchical Tagging Create two-level taxonomy: fine-grained + broad categories. |
>,
pos="542.5,441.5",
shape=plain,
style=filled,
width=2.5417];
LLM_Tagger -> Hierarchical_Tagging [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 234.08 725.16 246.23 714.02 259.52 701.85 273.79 688.76 288.91 \
674.91 304.73 660.42 321.09 645.42 337.85 630.06 354.87 614.46 372 598.76 389.09 583.1 406 567.61 422.57 552.42 438.67 537.67 454.14 \
523.49 468.84 510.02 482.62 497.39 495.34 485.74 506.84 475.19 516.99 465.89 525.63 457.98 524.27 456.5 515.67 464.47 505.57 473.82 \
494.12 484.42 481.47 496.14 467.75 508.83 453.12 522.38 437.72 536.64 421.7 551.47 405.2 566.74 388.37 582.32 371.36 598.07 354.31 \
613.85 337.37 629.53 320.68 644.98 304.4 660.06 288.66 674.63 273.61 688.56 259.4 701.72 246.18 713.96 234.08 725.16 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 233.98 725.25 232.28 732.26 225.16 733.38 226.86 726.37 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#LLM_Tagger👉 Hierarchical_Tagging",
penwidth=2,
pos="s,225.16,733.38 234.08,725.16 310.8,654.49 472.81,505.27 524.95,457.24",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Additional_Tools [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 627 211.5 458 211.5 458 181.5 627 181.5 ",
_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 459.5 203.9 -1 73 16 -Additional Tools F 9.5 5 -Agave c 7 -#44475a t 0 T 459.5 194.4 -1 167 37 \
-Beyond clustering, embeddings enable F 9.5 5 -Agave c 7 -#44475a T 502 184.9 -1 82 18 -powerful analysis. ",
fillcolor="#FFFFFF",
fontsize=9.5,
height=0.41667,
href="#Additional_Tools",
label=<Additional Tools Beyond clustering, embeddings enable powerful analysis. |
>,
pos="542.5,196.5",
shape=plain,
style=filled,
width=2.3472];
LLM_Tagger -> Additional_Tools [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 217.63 723 229.12 704.41 242.34 683.02 257.06 659.19 273.09 \
633.26 290.21 605.57 308.2 576.46 326.85 546.28 345.95 515.37 365.29 484.07 384.66 452.74 403.84 421.7 422.62 391.31 440.79 361.91 \
458.14 333.84 474.45 307.44 489.52 283.07 503.12 261.06 515.05 241.75 525.09 225.5 533.04 212.63 531.34 211.59 523.43 224.47 513.44 \
240.76 501.58 260.11 488.05 282.17 473.07 306.59 456.84 333.04 439.59 361.17 421.52 390.63 402.84 421.08 383.76 452.18 364.5 483.58 \
345.26 514.94 326.26 545.91 307.71 576.16 289.82 605.33 272.79 633.08 256.85 659.06 242.2 682.94 229.06 704.37 217.63 723 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 217.54 723.15 217.8 730.36 211.25 733.37 210.99 726.16 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#LLM_Tagger👉 Additional_Tools",
penwidth=2,
pos="s,211.25,733.37 217.63,723 287.83,608.99 486.79,285.86 532.19,212.11",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Workflow_1__Single_Level_Tagging [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#eee7de P 4 866.5 1187 772.5 1187 772.5 1128 866.5 1128 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 773.5 1182.7 -1 73 32 -Workflow 1: Single-Level Tagging F 4.75 5 -Agave c 7 -#44475a t 0 T 773.5 \
1177.95 -1 73 32 -One level of clusters with tags. F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1173.2 -1 68 31 - # 1. cache embeddings (\
once) F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1168.45 -1 91 40 -./llm-tagger.sh init total.ndjson # 2. F 4.75 5 -Agave c 7 -#ff79c6 \
T 773.5 1163.7 -1 73 32 -cluster and tag ./llm-tagger.sh F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1158.95 -1 88 39 -educe-tags subset.ndjson \
output.ndjson F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1154.2 -1 7 4 -20 F 4.75 5 -Agave c 7 -#44475a T 773.5 1149.45 -1 3 1 - F \
4.75 5 -Agave c 7 -#44475a t 4 T 776.5 1149.45 -1 16 7 -Result: F 4.75 5 -Agave c 7 -#44475a t 0 T 792.5 1149.45 -1 73 32 - Documents \
with cluster and tags F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1144.7 -1 41 19 - { \"description\": F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 \
1139.95 -1 48 21 -\"...\", \"cluster\": 5, F 4.75 5 -Agave c 7 -#ff79c6 T 773.5 1135.2 -1 43 19 -\"tags\": \"hardware, F 4.75 5 -Agave \
c 7 -#ff79c6 T 773.5 1130.45 -1 21 10 -tools\" } ",
fillcolor="#EEE7DE",
fontsize=4.75,
height=0.81944,
href="#Workflow_1__Single_Level_Tagging",
label=<Workflow 1: Single-Level Tagging One level of clusters with tags. # 1. cache embeddings (once) ./llm-tagger.sh init total.ndjson # 2. cluster and tag ./llm-tagger.sh educe-tags subset.ndjson output.ndjson 20 Result: Documents with cluster and tags { "description": "...", "cluster": 5, "tags": "hardware, tools" }
|
>,
pos="819.5,1157.5",
shape=plain,
style=filled,
width=1.3056];
Workflows -> Workflow_1__Single_Level_Tagging [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 564.32 878.78 591.45 874.62 638.57 872.12 665.5 898 736.94 966.65 637.3 1042.5 \
701.5 1118 716.6 1135.7 740.04 1145.5 761.94 1150.7 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 771.86 1152.9 761.12 1155.13 766.98 1151.82 762.1 1150.73 762.1 \
1150.73 762.1 1150.73 766.98 1151.82 763.07 1146.34 771.86 1152.9 ",
arrowhead=open,
arrowsize=1.0,
href="#Workflows👉 Workflow_1__Single_Level_Tagging",
pos="e,771.86,1152.9 564.32,878.78 591.45,874.62 638.57,872.12 665.5,898 736.94,966.65 637.3,1042.5 701.5,1118 716.6,1135.7 740.04,1145.5 \
761.94,1150.7",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Workflow_2__Hierarchical_Tagging [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#eee7de P 4 868 1109.5 771 1109.5 771 1017.5 868 1017.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 772.5 1105.7 -1 73 32 -Workflow 2: Hierarchical Tagging F 4.75 5 -Agave c 7 -#44475a t 0 T 772.5 \
1100.95 -1 75 33 -Two levels: fine-grained + broad F 4.75 5 -Agave c 7 -#44475a T 772.5 1096.2 -1 25 11 -categories. F 4.75 5 -Agave \
c 7 -#ff79c6 T 772.5 1091.45 -1 68 31 - # 1. cache embeddings (once) F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1086.7 -1 91 40 -./llm-tagger.sh \
init total.ndjson # 2. F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1081.95 -1 91 40 -fine-grained clustering ./llm-tagger.sh F 4.75 \
5 -Agave c 7 -#ff79c6 T 772.5 1077.2 -1 95 42 -educe-tags subset.ndjson level1.ndjson 5 F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1072.45 \
-1 59 26 -# 3. cluster the clusters F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1067.7 -1 66 29 -./llm-tagger.sh hierarchical F 4.75 \
5 -Agave c 7 -#ff79c6 T 772.5 1062.95 -1 68 31 -level1.ndjson level2.ndjson 3 F 4.75 5 -Agave c 7 -#44475a T 772.5 1058.2 -1 3 \
1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 775.5 1058.2 -1 16 7 -Result: F 4.75 5 -Agave c 7 -#44475a t 0 T 791.5 1058.2 -1 59 26 - \
Documents with two levels F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1053.45 -1 46 21 - { \"description\": F 4.75 5 -Agave c 7 -#ff79c6 \
T 772.5 1048.7 -1 21 9 -\"...\", F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1043.95 -1 46 20 -\"cluster_l1\": 12, F 4.75 5 -Agave c \
7 -#ff79c6 T 772.5 1039.2 -1 46 20 -\"tags_l1\": \"screws, F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1034.45 -1 32 14 -fasteners\", F \
4.75 5 -Agave c 7 -#ff79c6 T 772.5 1029.7 -1 43 19 -\"cluster_l2\": 2, F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1024.95 -1 25 11 -\"\
tags_l2\": F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 1020.2 -1 30 14 -\"hardware\" } ",
fillcolor="#EEE7DE",
fontsize=4.75,
height=1.2778,
href="#Workflow_2__Hierarchical_Tagging",
label=<Workflow 2: Hierarchical Tagging Two levels: fine-grained + broad categories. # 1. cache embeddings (once) ./llm-tagger.sh init total.ndjson # 2. fine-grained clustering ./llm-tagger.sh educe-tags subset.ndjson level1.ndjson 5 # 3. cluster the clusters ./llm-tagger.sh hierarchical level1.ndjson level2.ndjson 3 Result: Documents with two levels { "description": "...", "cluster_l1": 12, "tags_l1": "screws, fasteners", "cluster_l2": 2, "tags_l2": "hardware" }
|
>,
pos="819.5,1063.5",
shape=plain,
style=filled,
width=1.3472];
Workflows -> Workflow_2__Hierarchical_Tagging [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 564.21 879.37 590.77 875.96 636.83 874.41 665.5 898 705.22 930.68 667.47 969.43 \
701.5 1008 717.16 1025.7 739.77 1038.2 760.91 1046.7 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 770.5 1050.4 759.55 1051 765.84 1048.6 761.17 1046.8 761.17 1046.8 \
761.17 1046.8 765.84 1048.6 762.79 1042.6 770.5 1050.4 ",
arrowhead=open,
arrowsize=1.0,
href="#Workflows👉 Workflow_2__Hierarchical_Tagging",
pos="e,770.5,1050.4 564.21,879.37 590.77,875.96 636.83,874.41 665.5,898 705.22,930.68 667.47,969.43 701.5,1008 717.16,1025.7 739.77,1038.2 \
760.91,1046.7",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Workflow_3__Multiple_Subsets [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#eee7de P 4 872.5 999.5 766.5 999.5 766.5 931.5 872.5 931.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 767.5 995.7 -1 64 28 -Workflow 3: Multiple Subsets F 4.75 5 -Agave c 7 -#44475a t 0 T 767.5 990.95 \
-1 88 39 -Analyze different slices independently. F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 986.2 -1 75 34 - # 1. cache embeddings (\
once for F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 981.45 -1 91 40 -all) ./llm-tagger.sh init total.ndjson F 4.75 5 -Agave c 7 -#ff79c6 \
T 767.5 976.7 -1 73 32 -# 2. tag each subset (different F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 971.95 -1 84 37 -patterns) ./llm-tagger.sh \
educe-tags F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 967.2 -1 82 36 -january.ndjson jan-tagged.ndjson 15 F 4.75 5 -Agave c 7 -#ff79c6 \
T 767.5 962.45 -1 61 27 -./llm-tagger.sh educe-tags F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 957.7 -1 82 36 -hardware.ndjson hw-tagged.ndjson \
20 F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 952.95 -1 61 27 -./llm-tagger.sh educe-tags F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 948.2 \
-1 75 33 -vendor-x.ndjson vx-tagged.ndjson F 4.75 5 -Agave c 7 -#ff79c6 T 767.5 943.45 -1 7 4 -10 F 4.75 5 -Agave c 7 -#44475a \
T 767.5 938.7 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 770.5 938.7 -1 19 8 -Benefit: F 4.75 5 -Agave c 7 -#44475a t 0 T 789.5 \
938.7 -1 82 36 - Each subset gets unique clustering F 4.75 5 -Agave c 7 -#44475a T 793.5 933.95 -1 52 23 -reflecting its patterns ",
fillcolor="#EEE7DE",
fontsize=4.75,
height=0.94444,
href="#Workflow_3__Multiple_Subsets",
label=<Workflow 3: Multiple Subsets Analyze different slices independently. # 1. cache embeddings (once for all) ./llm-tagger.sh init total.ndjson # 2. tag each subset (different patterns) ./llm-tagger.sh educe-tags january.ndjson jan-tagged.ndjson 15 ./llm-tagger.sh educe-tags hardware.ndjson hw-tagged.ndjson 20 ./llm-tagger.sh educe-tags vendor-x.ndjson vx-tagged.ndjson 10 Benefit: Each subset gets unique clustering reflecting its patterns |
>,
pos="819.5,965.5",
shape=plain,
style=filled,
width=1.4722];
Workflows -> Workflow_3__Multiple_Subsets [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 564.04 882.67 588.85 882.91 631.49 885.38 665.5 898 683.53 904.69 684.36 913.28 \
701.5 922 718.68 930.75 738.08 938.63 756.05 945.19 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 765.86 948.69 754.93 949.57 761.15 947.01 756.44 945.33 756.44 \
945.33 756.44 945.33 761.15 947.01 757.95 941.09 765.86 948.69 ",
arrowhead=open,
arrowsize=1.0,
href="#Workflows👉 Workflow_3__Multiple_Subsets",
pos="e,765.86,948.69 564.04,882.67 588.85,882.91 631.49,885.38 665.5,898 683.53,904.69 684.36,913.28 701.5,922 718.68,930.75 738.08,938.63 \
756.05,945.19",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Workflow_4__Multiple_Subsets___Hierarchy [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#eee7de P 4 866 913 773 913 773 854 866 854 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 774.5 908.7 -1 91 40 -Workflow 4: Multiple Subsets + Hierarchy F 4.75 5 -Agave c 7 -#44475a t \
0 T 774.5 903.95 -1 55 24 -Combine both approaches. F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 899.2 -1 68 31 - # 1. cache embeddings (\
once) F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 894.45 -1 91 40 -./llm-tagger.sh init total.ndjson # 2. F 4.75 5 -Agave c 7 -#ff79c6 \
T 774.5 889.7 -1 91 40 -subset 1 with hierarchy ./llm-tagger.sh F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 884.95 -1 91 40 -educe-tags \
january.ndjson jan-l1.ndjson F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 880.2 -1 70 31 -5 ./llm-tagger.sh hierarchical F 4.75 5 -Agave \
c 7 -#ff79c6 T 774.5 875.45 -1 88 39 -jan-l1.ndjson jan-final.ndjson 3 # 3. F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 870.7 -1 91 40 \
-subset 2 with hierarchy ./llm-tagger.sh F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 865.95 -1 91 40 -educe-tags hardware.ndjson hw-l1.ndjson \
F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 861.2 -1 70 31 -5 ./llm-tagger.sh hierarchical F 4.75 5 -Agave c 7 -#ff79c6 T 774.5 856.45 \
-1 70 32 -hw-l1.ndjson hw-final.ndjson 3 ",
fillcolor="#EEE7DE",
fontsize=4.75,
height=0.81944,
href="#Workflow_4__Multiple_Subsets___Hierarchy",
label=<Workflow 4: Multiple Subsets + Hierarchy Combine both approaches. # 1. cache embeddings (once) ./llm-tagger.sh init total.ndjson # 2. subset 1 with hierarchy ./llm-tagger.sh educe-tags january.ndjson jan-l1.ndjson 5 ./llm-tagger.sh hierarchical jan-l1.ndjson jan-final.ndjson 3 # 3. subset 2 with hierarchy ./llm-tagger.sh educe-tags hardware.ndjson hw-l1.ndjson 5 ./llm-tagger.sh hierarchical hw-l1.ndjson hw-final.ndjson 3
|
>,
pos="819.5,883.5",
shape=plain,
style=filled,
width=1.2917];
Workflows -> Workflow_4__Multiple_Subsets___Hierarchy [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 564.13 883 605.74 883 700.95 883 762.22 883 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 772.49 883 762.49 887.5 767.49 883 762.49 883 762.49 883 762.49 \
883 767.49 883 762.49 878.5 772.49 883 ",
arrowhead=open,
arrowsize=1.0,
href="#Workflows👉 Workflow_4__Multiple_Subsets___Hierarchy",
pos="e,772.49,883 564.13,883 605.74,883 700.95,883 762.22,883",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
X__Parallel_Tag_Extraction [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 850 834.5 789 834.5 789 810.5 850 810.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 790.5 830.7 -1 59 26 -1. Parallel Tag Extraction F 4.75 5 -Agave c 7 -#44475a t 0 T 790.5 822.7 \
-1 50 25 -• 8 concurrent workers F 4.75 5 -Agave c 7 -#44475a T 790.5 817.7 -1 50 25 -• removed sleep delays F 4.75 5 -Agave \
c 7 -#44475a T 790.5 812.7 -1 25 14 -• 8x faster ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.33333,
href="#1__Parallel_Tag_Extraction",
label=<1. Parallel Tag Extraction
|
| • 8 concurrent workers | | • removed sleep delays | | • 8x faster |
|
>,
pos="819.5,822.5",
shape=plain,
style=filled,
width=0.84722];
Performance_Changes -> X__Parallel_Tag_Extraction [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 577.64 772.09 582.55 773.39 587.69 774.75 593.06 776.16 598.63 \
777.62 604.39 779.12 610.31 780.65 616.39 782.21 622.61 783.79 628.94 785.39 635.37 787.01 641.89 788.63 648.47 790.25 655.09 791.86 \
661.75 793.47 668.43 795.06 675.09 796.63 681.74 798.17 688.35 799.68 694.9 801.15 701.38 802.58 705.81 803.54 710.3 804.49 714.83 \
805.43 719.39 806.37 723.98 807.3 728.58 808.21 733.17 809.12 737.76 810.01 742.33 810.88 746.87 811.74 751.36 812.58 755.8 813.41 \
760.17 814.21 764.47 814.99 768.68 815.75 772.79 816.48 776.79 817.19 780.68 817.88 784.43 818.53 788.04 819.16 788.38 817.18 784.76 \
816.59 781 815.97 777.11 815.33 773.11 814.65 768.99 813.96 764.77 813.24 760.47 812.5 756.1 811.74 751.65 810.95 747.16 810.15 \
742.62 809.34 738.05 808.51 733.45 807.66 728.85 806.8 724.25 805.93 719.65 805.04 715.09 804.15 710.55 803.25 706.06 802.34 701.62 \
801.42 695.14 800.06 688.58 798.65 681.96 797.2 675.3 795.72 668.62 794.21 661.94 792.68 655.27 791.14 648.62 789.59 642.03 788.03 \
635.5 786.47 629.06 784.92 622.71 783.37 616.48 781.85 610.39 780.35 604.45 778.87 598.68 777.43 593.09 776.02 587.72 774.66 582.56 \
773.35 577.64 772.09 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 577.51 772.06 570.69 774.4 565.9 769.01 572.72 766.66 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Performance_Changes👉 1__Parallel_Tag_Extraction",
penwidth=2,
pos="s,565.9,769.01 577.64,772.09 609.55,780.43 658.57,792.84 701.5,802 730.85,808.26 764.61,814.21 788.21,818.17",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Connection_Pooling [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 854.5 792 784.5 792 784.5 773 854.5 773 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 785.5 787.7 -1 48 21 -2. Connection Pooling F 4.75 5 -Agave c 7 -#44475a t 0 T 785.5 779.7 -1 \
68 33 -• requests.Session() for reuse F 4.75 5 -Agave c 7 -#44475a T 785.5 774.7 -1 34 18 -• all API calls ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.26389,
href="#2__Connection_Pooling",
label=<2. Connection Pooling
|
| • requests.Session() for reuse | | • all API calls |
|
>,
pos="819.5,782.5",
shape=plain,
style=filled,
width=0.97222];
Performance_Changes -> X__Connection_Pooling [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 598.73 767.02 607.22 767.69 616.08 768.38 625.27 769.1 634.73 \
769.84 644.42 770.6 654.28 771.37 664.27 772.15 674.34 772.94 684.44 773.73 694.53 774.52 704.54 775.3 714.44 776.08 724.18 776.84 \
733.71 777.59 742.97 778.31 751.92 779.01 760.52 779.69 768.7 780.33 776.43 780.93 783.66 781.5 783.8 779.5 776.57 779.02 768.84 \
778.49 760.64 777.94 752.04 777.36 743.08 776.76 733.81 776.13 724.28 775.49 714.54 774.83 704.63 774.16 694.6 773.49 684.51 772.81 \
674.4 772.12 664.32 771.44 654.32 770.77 644.45 770.1 634.76 769.45 625.29 768.81 616.1 768.19 607.23 767.59 598.73 767.02 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 598.66 767.01 592.39 770.57 586.69 766.15 592.96 762.59 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Performance_Changes👉 2__Connection_Pooling",
penwidth=2,
pos="s,586.69,766.15 598.73,767.02 654.01,771.05 737.34,777.12 783.73,780.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Parallel_Embedding [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 845.5 755.5 793.5 755.5 793.5 731.5 845.5 731.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 794.5 751.7 -1 48 21 -3. Parallel Embedding F 4.75 5 -Agave c 7 -#44475a t 0 T 794.5 743.7 -1 \
50 25 -• 4 concurrent workers F 4.75 5 -Agave c 7 -#44475a T 794.5 738.7 -1 48 26 -• batch size: 32 → 64 F 4.75 5 -Agave \
c 7 -#44475a T 794.5 733.7 -1 46 23 -• maintains ordering ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.33333,
href="#3__Parallel_Embedding",
label=<3. Parallel Embedding
|
| • 4 concurrent workers | | • batch size: 32 → 64 | | • maintains ordering |
|
>,
pos="819.5,743.5",
shape=plain,
style=filled,
width=0.72222];
Performance_Changes -> X__Parallel_Embedding [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 598.79 758.97 607.88 758.35 617.4 757.71 627.27 757.04 637.45 \
756.35 647.87 755.65 658.47 754.93 669.2 754.21 679.99 753.47 690.78 752.74 701.52 752.02 712.14 751.3 722.59 750.59 732.81 749.9 \
742.73 749.23 752.3 748.58 761.47 747.96 770.15 747.37 778.31 746.82 785.88 746.31 792.8 745.84 792.66 743.84 785.74 744.38 778.18 \
744.97 770.03 745.61 761.34 746.29 752.19 747 742.62 747.75 732.71 748.52 722.5 749.32 712.06 750.13 701.44 750.96 690.71 751.8 \
679.92 752.64 669.14 753.48 658.43 754.32 647.83 755.14 637.42 755.96 627.25 756.75 617.38 757.52 607.88 758.26 598.79 758.97 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 598.66 758.98 592.96 763.4 586.69 759.85 592.38 755.43 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Performance_Changes👉 3__Parallel_Embedding",
penwidth=2,
pos="s,586.69,759.85 598.79,758.97 657.86,754.67 748.91,748.03 792.73,744.84",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__HDBSCAN_Multi_core [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 846.5 713.5 792.5 713.5 792.5 687.5 846.5 687.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 793.5 709.7 -1 48 21 -4. HDBSCAN Multi-core F 4.75 5 -Agave c 7 -#44475a t 0 T 793.5 701.7 -1 \
48 24 -• core_dist_n_jobs=-1 F 4.75 5 -Agave c 7 -#44475a T 793.5 696.7 -1 37 19 -• uses all cores F 4.75 5 -Agave c 7 -#44475a \
T 793.5 689.7 -1 52 23 -**Overall speedup: 5-8x ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.36111,
href="#4__HDBSCAN_Multi_core",
label=<4. HDBSCAN Multi-core
|
| • core_dist_n_jobs=-1 | | • uses all cores |
|
| **Overall speedup: 5-8x |
>,
pos="819.5,700.5",
shape=plain,
style=filled,
width=0.75];
Performance_Changes -> X__HDBSCAN_Multi_core [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 576.55 753.73 581.46 752.4 586.63 751.02 592.02 749.58 597.63 \
748.09 603.43 746.56 609.41 745 615.55 743.4 621.83 741.78 628.23 740.14 634.74 738.49 641.33 736.83 648 735.17 654.71 733.52 661.46 \
731.87 668.22 730.25 674.98 728.64 681.72 727.07 688.42 725.52 695.06 724.02 701.63 722.57 706.3 721.55 711.04 720.55 715.83 719.55 \
720.65 718.56 725.5 717.59 730.35 716.62 735.2 715.68 740.04 714.74 744.85 713.83 749.61 712.94 754.33 712.06 758.97 711.21 763.54 \
710.39 768.01 709.58 772.37 708.81 776.62 708.06 780.73 707.34 784.71 706.66 788.52 706 792.16 705.39 791.82 703.41 788.18 704.07 \
784.37 704.76 780.4 705.48 776.29 706.23 772.05 707.02 767.69 707.83 763.22 708.68 758.66 709.55 754.02 710.44 749.31 711.36 744.55 \
712.29 739.75 713.25 734.92 714.23 730.07 715.22 725.22 716.23 720.38 717.25 715.56 718.28 710.78 719.32 706.04 720.37 701.37 721.43 \
694.81 722.95 688.18 724.51 681.49 726.11 674.77 727.75 668.02 729.41 661.27 731.1 654.54 732.81 647.83 734.52 641.18 736.24 634.6 \
737.96 628.11 739.67 621.72 741.37 615.46 743.05 609.33 744.7 603.37 746.32 597.58 747.9 591.98 749.44 586.6 750.93 581.45 752.36 \
576.55 753.73 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 576.42 753.76 571.71 759.22 564.86 756.97 569.57 751.51 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Performance_Changes👉 4__HDBSCAN_Multi_core",
penwidth=2,
pos="s,564.86,756.97 576.55,753.73 608.4,744.96 658.04,731.73 701.5,722 732.43,715.07 768.31,708.52 791.99,704.4",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Phase_1__init_total_ndjson [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#8bd1a4 P 4 852.5 668.5 786.5 668.5 786.5 644.5 852.5 644.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 787.5 664.7 -1 59 26 -Phase 1: init total.ndjson F 4.75 5 -Agave c 7 -#44475a t 0 T 787.5 656.7 \
-1 64 31 -• pre-compute all embeddings F 4.75 5 -Agave c 7 -#44475a T 787.5 651.7 -1 34 18 -• save to cache F 4.75 5 -Agave \
c 7 -#44475a T 787.5 646.7 -1 43 22 -• no clustering yet ",
fillcolor="#8BD1A4",
fontsize=4.75,
height=0.33333,
href="#Phase_1__init_total_ndjson",
label=<Phase 1: init total.ndjson
|
| • pre-compute all embeddings | | • save to cache | | • no clustering yet |
|
>,
pos="819.5,656.5",
shape=plain,
style=filled,
width=0.91667];
Two_Phase_Architecture -> Phase_1__init_total_ndjson [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 605.8 639.22 614.37 639.99 623.26 640.78 632.42 641.6 641.8 \
642.44 651.36 643.29 661.06 644.16 670.85 645.03 680.68 645.91 690.51 646.79 700.3 647.66 710 648.53 719.56 649.38 728.95 650.22 \
738.11 651.04 747 651.84 755.57 652.6 763.78 653.34 771.59 654.04 778.95 654.69 785.82 655.31 785.98 653.31 779.11 652.78 771.75 \
652.2 763.93 651.59 755.71 650.94 747.13 650.27 738.23 649.58 729.06 648.86 719.67 648.13 710.1 647.38 700.39 646.62 690.59 645.85 \
680.75 645.08 670.91 644.31 661.11 643.54 651.4 642.79 641.83 642.04 632.44 641.3 623.27 640.59 614.38 639.89 605.8 639.22 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 605.49 639.19 599.17 642.68 593.53 638.19 599.84 634.71 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Two_Phase_Architecture👉 Phase_1__init_total_ndjson",
penwidth=2,
pos="s,593.53,638.19 605.8,639.22 661.82,643.91 741.87,650.62 785.9,654.31",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Phase_2__educe_tags_subset_ndjson [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#8bd1a4 P 4 858 626 781 626 781 597 858 597 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 782.5 621.7 -1 75 33 -Phase 2: educe-tags subset.ndjson F 4.75 5 -Agave c 7 -#44475a t 0 T 782.5 \
613.7 -1 55 27 -• load cached embeddings F 4.75 5 -Agave c 7 -#44475a T 782.5 608.7 -1 48 24 -• cluster subset only F 4.75 \
5 -Agave c 7 -#44475a T 782.5 603.7 -1 70 34 -• generate subset-specific tags F 4.75 5 -Agave c 7 -#44475a T 782.5 598.7 -1 68 \
33 -• each subset: unique patterns ",
fillcolor="#8BD1A4",
fontsize=4.75,
height=0.40278,
href="#Phase_2__educe_tags_subset_ndjson",
label=<Phase 2: educe-tags subset.ndjson
|
| • load cached embeddings | | • cluster subset only | | • generate subset-specific tags | | • each subset: unique patterns |
|
>,
pos="819.5,611.5",
shape=plain,
style=filled,
width=1.0694];
Two_Phase_Architecture -> Phase_2__educe_tags_subset_ndjson [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 605.65 629.02 613.87 628.41 622.38 627.78 631.14 627.12 640.12 \
626.46 649.27 625.78 658.56 625.09 667.93 624.39 677.37 623.69 686.81 622.98 696.24 622.28 705.59 621.59 714.84 620.9 723.95 620.22 \
732.87 619.56 741.57 618.91 750.01 618.28 758.14 617.68 765.93 617.1 773.33 616.55 780.31 616.03 780.15 614.03 773.18 614.63 765.78 \
615.27 758 615.94 749.88 616.63 741.45 617.36 732.76 618.11 723.84 618.87 714.74 619.65 705.5 620.45 696.15 621.25 686.74 622.06 \
677.3 622.87 667.88 623.68 658.51 624.48 649.23 625.28 640.09 626.06 631.12 626.83 622.36 627.59 613.86 628.32 605.65 629.02 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 605.49 629.03 599.83 633.5 593.53 629.99 599.19 625.52 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Two_Phase_Architecture👉 Phase_2__educe_tags_subset_ndjson",
penwidth=2,
pos="s,593.53,629.99 605.65,629.02 659.35,624.72 735.21,618.64 780.23,615.03",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Benefits [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#8bd1a4 P 4 864.5 578.5 774.5 578.5 774.5 544.5 864.5 544.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 775.5 574.7 -1 19 8 -Benefits F 4.75 5 -Agave c 7 -#44475a t 0 T 775.5 566.7 -1 59 29 -• embeddings \
computed once F 4.75 5 -Agave c 7 -#44475a T 775.5 561.7 -1 84 40 -• each subset independently clustered F 4.75 5 -Agave c 7 \
-#44475a T 775.5 556.7 -1 66 32 -• tags reflect subset context F 4.75 5 -Agave c 7 -#44475a T 775.5 551.7 -1 79 40 -• january.ndjson \
→ january patterns F 4.75 5 -Agave c 7 -#44475a T 775.5 546.7 -1 88 44 -• hardware.ndjson → hardware categories ",
fillcolor="#8BD1A4",
fontsize=4.75,
height=0.47222,
href="#Benefits",
label=<Benefits
|
| • embeddings computed once | | • each subset independently clustered | | • tags reflect subset context | | • january.ndjson → january patterns | | • hardware.ndjson → hardware categories |
|
>,
pos="819.5,561.5",
shape=plain,
style=filled,
width=1.25];
Two_Phase_Architecture -> Benefits [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 574.98 624.54 579.89 623.11 585.07 621.61 590.5 620.04 596.14 \
618.41 602 616.73 608.04 615.01 614.25 613.25 620.61 611.45 627.1 609.63 633.7 607.78 640.39 605.93 647.16 604.06 653.98 602.19 \
660.84 600.33 667.71 598.48 674.58 596.65 681.43 594.84 688.24 593.06 694.99 591.32 701.66 589.62 705.26 588.71 708.89 587.81 712.56 \
586.9 716.25 586 719.96 585.1 723.69 584.21 727.43 583.32 731.17 582.43 734.9 581.55 738.63 580.68 742.34 579.82 746.03 578.97 749.7 \
578.13 753.33 577.31 756.92 576.49 760.47 575.69 763.97 574.91 767.41 574.14 770.8 573.39 774.11 572.66 773.67 570.7 770.36 571.47 \
766.98 572.25 763.55 573.06 760.05 573.88 756.51 574.71 752.92 575.56 749.3 576.42 745.64 577.3 741.95 578.18 738.25 579.08 734.53 \
579.99 730.8 580.9 727.07 581.82 723.34 582.75 719.61 583.68 715.91 584.62 712.22 585.56 708.56 586.5 704.93 587.44 701.34 588.38 \
694.68 590.15 687.95 591.96 681.15 593.8 674.32 595.68 667.46 597.58 660.61 599.5 653.77 601.42 646.96 603.36 640.21 605.29 633.54 \
607.21 626.95 609.12 620.48 611.01 614.14 612.86 607.95 614.69 601.92 616.47 596.08 618.21 590.45 619.89 585.04 621.51 579.88 623.06 \
574.98 624.54 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 574.87 624.57 570.26 630.12 563.37 628 567.98 622.45 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Two_Phase_Architecture👉 Benefits",
penwidth=2,
pos="s,563.37,628 574.98,624.54 606.78,615.09 657.37,600.39 701.5,589 725.32,582.85 752.05,576.61 773.89,571.68",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Workflow [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#fff4e5 P 4 868 526.5 771 526.5 771 486.5 868 486.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 772.5 522.7 -1 19 8 -Workflow F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 772.5 513.2 -1 70 32 - # level \
1: fine-grained (many F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 508.45 -1 73 32 -small clusters) ./llm-tagger.sh F 4.75 5 -Agave c \
7 -#ff79c6 T 772.5 503.7 -1 95 42 -educe-tags subset.ndjson level1.ndjson 5 F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 498.95 -1 73 \
32 -# level 2: cluster the clusters F 4.75 5 -Agave c 7 -#ff79c6 T 772.5 494.2 -1 66 29 -./llm-tagger.sh hierarchical F 4.75 5 \
-Agave c 7 -#ff79c6 T 772.5 489.45 -1 68 31 -level1.ndjson level2.ndjson 3 ",
fillcolor="#FFF4E5",
fontsize=4.75,
height=0.55556,
href="#Workflow",
label=<Workflow
# level 1: fine-grained (many small clusters) ./llm-tagger.sh educe-tags subset.ndjson level1.ndjson 5 # level 2: cluster the clusters ./llm-tagger.sh hierarchical level1.ndjson level2.ndjson 3
|
>,
pos="819.5,506.5",
shape=plain,
style=filled,
width=1.3472];
Hierarchical_Tagging -> Workflow [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 619.14 459.91 626.46 461.69 633.94 463.52 641.57 465.38 649.32 \
467.27 657.17 469.18 665.09 471.11 673.05 473.05 681.04 474.99 689.02 476.94 696.98 478.88 704.89 480.8 712.73 482.71 720.47 484.6 \
728.09 486.45 735.56 488.27 742.86 490.05 749.97 491.78 756.85 493.46 763.5 495.08 769.88 496.63 770.34 494.69 763.94 493.22 757.28 \
491.68 750.37 490.09 743.24 488.45 735.91 486.77 728.42 485.05 720.78 483.29 713.01 481.5 705.15 479.7 697.22 477.87 689.23 476.03 \
681.22 474.19 673.21 472.35 665.23 470.51 657.29 468.69 649.42 466.88 641.64 465.09 633.99 463.33 626.48 461.6 619.14 459.91 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 618.85 459.84 612.09 462.35 607.17 457.08 613.93 454.57 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Hierarchical_Tagging👉 Workflow",
penwidth=2,
pos="s,607.17,457.08 619.14,459.91 667.39,471.34 728.46,485.8 770.11,495.66",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
How_It_Works [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#fff4e5 P 4 870.5 468 768.5 468 768.5 415 870.5 415 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 769.5 463.7 -1 28 12 -How It Works F 4.75 5 -Agave c 7 -#44475a t 0 T 769.5 456.7 -1 7 6 -• \
F 4.75 5 -Agave c 7 -#44475a t 4 T 776.5 456.7 -1 16 7 -Level 1 F 4.75 5 -Agave c 7 -#44475a t 0 T 792.5 456.7 -1 77 34 - creates \
detailed clusters (e.g., F 4.75 5 -Agave c 7 -#44475a T 769.5 451.95 -1 43 19 -\"screws\", \"bolts\", F 4.75 5 -Agave c 7 -#44475a \
T 809 447.2 -1 21 9 -\"cables\") F 4.75 5 -Agave c 7 -#44475a T 769.5 442.7 -1 7 6 -• F 4.75 5 -Agave c 7 -#44475a t 4 T 776.5 \
442.7 -1 16 7 -Level 2 F 4.75 5 -Agave c 7 -#44475a t 0 T 792.5 442.7 -1 61 27 - computes cluster centroids F 4.75 5 -Agave c 7 \
-#44475a T 769.5 436.7 -1 68 33 -• Clusters the centroids into F 4.75 5 -Agave c 7 -#44475a T 787.5 431.7 -1 32 14 -super-clusters \
F 4.75 5 -Agave c 7 -#44475a T 769.5 426.7 -1 68 33 -• Generates broad tags (e.g., F 4.75 5 -Agave c 7 -#44475a T 769.5 421.7 \
-1 28 12 -\"hardware\", F 4.75 5 -Agave c 7 -#44475a T 787.5 416.7 -1 32 14 -\"electronics\") ",
fillcolor="#FFF4E5",
fontsize=4.75,
height=0.73611,
href="#How_It_Works",
label=<How It Works
|
• Level 1 creates detailed clusters (e.g., "screws", "bolts", "cables") | | • Level 2 computes cluster centroids | • Clusters the centroids into super-clusters | • Generates broad tags (e.g., "hardware", "electronics") |
|
>,
pos="819.5,441.5",
shape=plain,
style=filled,
width=1.4167];
Hierarchical_Tagging -> How_It_Works [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 646.3 442 652.57 442.05 658.89 442.1 665.25 442.16 671.64 442.21 \
678.06 442.26 684.47 442.31 690.88 442.37 697.27 442.42 703.63 442.47 709.94 442.52 716.2 442.57 722.38 442.63 728.49 442.68 734.5 \
442.73 740.4 442.77 746.18 442.82 751.83 442.87 757.34 442.91 762.69 442.96 767.87 443 767.87 441 762.69 441.04 757.34 441.09 751.83 \
441.13 746.18 441.18 740.4 441.23 734.5 441.27 728.49 441.32 722.38 441.37 716.2 441.43 709.94 441.48 703.63 441.53 697.27 441.58 \
690.88 441.63 684.47 441.69 678.06 441.74 671.64 441.79 665.25 441.84 658.89 441.9 652.57 441.95 646.3 442 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 646.14 442 640.14 446 634.14 442 640.14 438 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Hierarchical_Tagging👉 How_It_Works",
penwidth=2,
pos="s,634.14,442 646.3,442 687.86,442 733.93,442 767.87,442",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Output_Format [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#fff4e5 P 4 845.5 397 793.5 397 793.5 348 845.5 348 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 794.5 392.7 -1 30 13 -Output Format F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 794.5 383.2 -1 46 21 - { \"\
description\": F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 378.45 -1 21 9 -\"...\", F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 373.7 -1 43 19 \
-\"cluster_l1\": 5, F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 368.95 -1 46 20 -\"tags_l1\": \"screws, F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 \
364.2 -1 32 14 -fasteners\", F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 359.45 -1 43 19 -\"cluster_l2\": 1, F 4.75 5 -Agave c 7 -#ff79c6 \
T 794.5 354.7 -1 50 22 -\"tags_l2\": \"hardware, F 4.75 5 -Agave c 7 -#ff79c6 T 794.5 349.95 -1 21 10 -tools\" } ",
fillcolor="#FFF4E5",
fontsize=4.75,
height=0.68056,
href="#Output_Format",
label=<Output Format
{ "description": "...", "cluster_l1": 5, "tags_l1": "screws, fasteners", "cluster_l2": 1, "tags_l2": "hardware, tools" }
|
>,
pos="819.5,372.5",
shape=plain,
style=filled,
width=0.72222];
Hierarchical_Tagging -> Output_Format [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 615.17 423.98 624.11 421.79 633.31 419.53 642.73 417.21 652.33 \
414.86 662.06 412.47 671.88 410.06 681.74 407.64 691.59 405.22 701.4 402.81 711.11 400.43 720.68 398.08 730.06 395.77 739.22 393.52 \
748.1 391.34 756.66 389.24 764.85 387.23 772.64 385.32 779.97 383.52 786.79 381.84 793.07 380.3 792.59 378.36 786.32 379.97 779.51 \
381.72 772.21 383.6 764.44 385.6 756.27 387.7 747.73 389.89 738.88 392.17 729.75 394.52 720.39 396.93 710.84 399.38 701.16 401.87 \
691.38 404.38 681.56 406.91 671.72 409.44 661.93 411.96 652.23 414.45 642.66 416.91 633.26 419.33 624.08 421.69 615.17 423.98 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 615.04 424.01 610.19 429.36 603.4 426.94 608.24 421.6 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Hierarchical_Tagging👉 Output_Format",
penwidth=2,
pos="s,603.4,426.94 615.17,423.98 673.67,409.28 752.93,389.36 792.83,379.33",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Use_Cases [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#fff4e5 P 4 850 329.5 789 329.5 789 305.5 850 305.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 790.5 325.7 -1 21 9 -Use Cases F 4.75 5 -Agave c 7 -#44475a t 0 T 790.5 317.7 -1 50 25 -• multi-level \
taxonomy F 4.75 5 -Agave c 7 -#44475a T 790.5 312.7 -1 52 26 -• drill-down navigation F 4.75 5 -Agave c 7 -#44475a T 790.5 307.7 \
-1 59 29 -• broad overview + details ",
fillcolor="#FFF4E5",
fontsize=4.75,
height=0.33333,
href="#Use_Cases",
label=<Use Cases
|
| • multi-level taxonomy | | • drill-down navigation | | • broad overview + details |
|
>,
pos="819.5,317.5",
shape=plain,
style=filled,
width=0.84722];
Hierarchical_Tagging -> Use_Cases [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 571.05 419.43 575.74 415.83 580.73 412.07 585.99 408.16 591.5 \
404.13 597.27 399.99 603.26 395.78 609.46 391.51 615.85 387.21 622.42 382.88 629.15 378.57 636.03 374.29 643.04 370.05 650.16 365.89 \
657.37 361.82 664.66 357.87 672.02 354.05 679.42 350.39 686.85 346.91 694.29 343.64 701.73 340.59 706.02 338.96 710.38 337.41 714.81 \
335.95 719.29 334.56 723.82 333.25 728.39 332.02 732.97 330.86 737.55 329.77 742.13 328.74 746.69 327.79 751.22 326.9 755.71 326.07 \
760.14 325.3 764.5 324.58 768.78 323.93 772.96 323.33 777.04 322.77 781 322.27 784.83 321.81 788.51 321.4 788.29 319.42 784.59 319.86 \
780.75 320.35 776.78 320.89 772.69 321.47 768.5 322.11 764.21 322.81 759.84 323.56 755.4 324.37 750.9 325.24 746.36 326.17 741.78 \
327.17 737.19 328.23 732.59 329.37 728 330.57 723.43 331.85 718.88 333.2 714.38 334.64 709.94 336.15 705.56 337.74 701.27 339.41 \
693.82 342.54 686.38 345.89 678.95 349.44 671.56 353.16 664.22 357.05 656.95 361.07 649.76 365.21 642.67 369.43 635.69 373.73 628.84 \
378.08 622.14 382.45 615.6 386.83 609.23 391.19 603.07 395.51 597.11 399.78 591.38 403.96 585.89 408.04 580.67 411.99 575.71 415.79 \
571.05 419.43 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 571.05 419.43 568.83 426.29 561.64 426.88 563.86 420.02 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Hierarchical_Tagging👉 Use_Cases",
penwidth=2,
pos="s,561.64,426.88 571.05,419.43 601.22,395.92 651.92,359.8 701.5,340 729.79,328.7 764.31,323.11 788.4,320.41",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Semantic_Search [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 875.5 287.5 763.5 287.5 763.5 235.5 875.5 235.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 764.5 283.7 -1 41 18 -1. Semantic Search F 4.75 5 -Agave c 7 -#44475a t 0 T 764.5 278.95 -1 68 \
30 -Find documents matching query F 4.75 5 -Agave c 7 -#44475a T 764.5 274.2 -1 30 13 -semantically. F 4.75 5 -Agave c 7 -#ff79c6 \
T 764.5 269.45 -1 82 37 - ./llm-tagger.sh search data.ndjson F 4.75 5 -Agave c 7 -#ff79c6 T 764.5 264.7 -1 48 22 -'hardware repair' \
10 F 4.75 5 -Agave c 7 -#44475a T 764.5 259.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 767.5 259.95 -1 16 7 -Output: F 4.75 \
5 -Agave c 7 -#44475a t 0 T 783.5 259.95 -1 91 40 - Top matching documents with similarity F 4.75 5 -Agave c 7 -#44475a T 798.5 \
255.2 -1 16 7 -scores F 4.75 5 -Agave c 7 -#44475a t 4 T 814.5 255.2 -1 23 10 -Use cases: F 4.75 5 -Agave c 7 -#44475a t 0 T 837.5 \
255.2 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a T 764.5 247.7 -1 57 28 -• find relevant documents F 4.75 5 -Agave c 7 -#44475a T \
764.5 242.7 -1 43 22 -• content discovery F 4.75 5 -Agave c 7 -#44475a T 764.5 237.7 -1 52 26 -• query-based filtering ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.72222,
href="#1__Semantic_Search",
label=<1. Semantic Search Find documents matching query semantically. ./llm-tagger.sh search data.ndjson 'hardware repair' 10 Output: Top matching documents with similarity scores Use cases: |
| • find relevant documents | | • content discovery | | • query-based filtering |
|
>,
pos="819.5,261.5",
shape=plain,
style=filled,
width=1.5556];
Additional_Tools -> X__Semantic_Search [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 619.05 214.89 625.94 216.57 632.97 218.29 640.14 220.04 647.41 \
221.81 654.78 223.61 662.22 225.42 669.7 227.25 677.22 229.08 684.74 230.92 692.25 232.75 699.73 234.57 707.16 236.39 714.52 238.18 \
721.79 239.96 728.95 241.7 735.97 243.42 742.84 245.09 749.54 246.73 756.05 248.32 762.34 249.85 762.8 247.91 756.49 246.46 749.96 \
244.96 743.24 243.41 736.35 241.83 729.3 240.21 722.12 238.56 714.83 236.89 707.45 235.19 699.99 233.48 692.49 231.76 684.95 230.02 \
677.4 228.29 669.86 226.56 662.35 224.84 654.89 223.12 647.5 221.43 640.21 219.75 633.02 218.1 625.96 216.48 619.05 214.89 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 618.85 214.84 612.09 217.35 607.17 212.08 613.93 209.57 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Additional_Tools👉 1__Semantic_Search",
penwidth=2,
pos="s,607.17,212.08 619.05,214.89 664.48,225.65 721.3,239.1 762.57,248.88",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Find_Similar_Documents [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 875 217.5 764 217.5 764 175.5 875 175.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 765.5 213.7 -1 57 25 -2. Find Similar Documents F 4.75 5 -Agave c 7 -#44475a t 0 T 765.5 208.95 \
-1 84 37 -Detect duplicates or near-duplicates. F 4.75 5 -Agave c 7 -#ff79c6 T 765.5 204.2 -1 57 26 - ./llm-tagger.sh similar \
F 4.75 5 -Agave c 7 -#ff79c6 T 765.5 199.45 -1 39 18 -data.ndjson 0.95 F 4.75 5 -Agave c 7 -#44475a T 765.5 194.7 -1 3 1 - F \
4.75 5 -Agave c 7 -#44475a t 4 T 768.5 194.7 -1 16 7 -Output: F 4.75 5 -Agave c 7 -#44475a t 0 T 784.5 194.7 -1 64 28 - Pairs of \
similar documents F 4.75 5 -Agave c 7 -#44475a t 4 T 848.5 194.7 -1 23 10 -Use cases: F 4.75 5 -Agave c 7 -#44475a t 0 T 871.5 \
194.7 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a T 765.5 187.7 -1 48 24 -• duplicate detection F 4.75 5 -Agave c 7 -#44475a T 765.5 \
182.7 -1 32 17 -• data quality F 4.75 5 -Agave c 7 -#44475a T 765.5 177.7 -1 48 24 -• identify redundancy ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.58333,
href="#2__Find_Similar_Documents",
label=<2. Find Similar Documents Detect duplicates or near-duplicates. ./llm-tagger.sh similar data.ndjson 0.95 Output: Pairs of similar documents Use cases: |
| • duplicate detection | | • data quality | | • identify redundancy |
|
>,
pos="819.5,196.5",
shape=plain,
style=filled,
width=1.5417];
Additional_Tools -> X__Find_Similar_Documents [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 639.44 197 645.7 197.05 652.02 197.1 658.41 197.15 664.84 197.21 \
671.3 197.26 677.78 197.31 684.26 197.36 690.74 197.41 697.19 197.47 703.62 197.52 710 197.57 716.32 197.62 722.57 197.67 728.73 \
197.72 734.8 197.77 740.76 197.82 746.59 197.87 752.29 197.91 757.84 197.96 763.23 198 763.23 196 757.84 196.04 752.29 196.09 746.59 \
196.13 740.76 196.18 734.8 196.23 728.73 196.28 722.57 196.33 716.32 196.38 710 196.43 703.62 196.48 697.19 196.53 690.74 196.59 \
684.26 196.64 677.78 196.69 671.3 196.74 664.84 196.79 658.41 196.85 652.02 196.9 645.7 196.95 639.44 197 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 639.35 197 633.35 201 627.35 197 633.35 193 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Additional_Tools👉 2__Find_Similar_Documents",
penwidth=2,
pos="s,627.35,197 639.44,197 680.89,197 727.87,197 763.23,197",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Custom_Prompts [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 861.5 157.5 777.5 157.5 777.5 65.5 861.5 65.5 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 778.5 153.7 -1 39 17 -3. Custom Prompts F 4.75 5 -Agave c 7 -#44475a t 0 T 778.5 148.95 -1 82 \
36 -Ask different questions to clusters. F 4.75 5 -Agave c 7 -#ff79c6 T 778.5 144.2 -1 70 32 - ./llm-tagger.sh custom-prompt F \
4.75 5 -Agave c 7 -#ff79c6 T 778.5 139.45 -1 61 29 -tagged.ndjson 'Zhrň hlavné F 4.75 5 -Agave c 7 -#ff79c6 T 778.5 134.7 -1 \
43 21 -témy:\n{examples}' F 4.75 5 -Agave c 7 -#44475a T 798 129.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 801 129.95 -1 \
37 16 -Prompt examples: F 4.75 5 -Agave c 7 -#44475a t 0 T 838 129.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a T 778.5 123.7 -1 5 \
5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 783.5 123.7 -1 32 17 - 'Zhrň hlavné F 4.75 5 -Agave c 7 -#ff79c6 T 778.5 118.95 -1 43 \
21 -témy:\n{examples}' F 4.75 5 -Agave c 7 -#44475a T 821.5 118.95 -1 25 11 -- summaries F 4.75 5 -Agave c 7 -#44475a T 778.5 \
114.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 783.5 114.7 -1 32 15 - 'Identifikuj F 4.75 5 -Agave c 7 -#ff79c6 T 778.5 109.95 \
-1 48 23 -riziká:\n{examples}' F 4.75 5 -Agave c 7 -#44475a T 826.5 109.95 -1 34 15 -- risk analysis F 4.75 5 -Agave c 7 -#44475a \
T 778.5 105.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 783.5 105.7 -1 34 17 - 'Aké patterny F 4.75 5 -Agave c 7 -#ff79c6 \
T 778.5 100.95 -1 46 23 -vidíš:\n{examples}' F 4.75 5 -Agave c 7 -#44475a T 824.5 100.95 -1 23 10 -- insights F 4.75 5 -Agave \
c 7 -#44475a T 778.5 96.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 783.5 96.7 -1 25 14 - 'Prečo sú F 4.75 5 -Agave c 7 -#\
ff79c6 T 778.5 91.95 -1 55 26 -zoskupené:\n{examples}' F 4.75 5 -Agave c 7 -#44475a T 833.5 91.95 -1 25 11 -- reasoning F 4.75 \
5 -Agave c 7 -#44475a T 778.5 85.7 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 781.5 85.7 -1 23 10 -Use cases: F 4.75 5 -Agave \
c 7 -#44475a t 0 T 804.5 85.7 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a T 778.5 77.7 -1 55 27 -• different perspectives F 4.75 5 \
-Agave c 7 -#44475a T 778.5 72.7 -1 50 25 -• specialized analysis F 4.75 5 -Agave c 7 -#44475a T 778.5 67.7 -1 39 20 -• custom \
insights ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=1.2778,
href="#3__Custom_Prompts",
label=<3. Custom Prompts Ask different questions to clusters. ./llm-tagger.sh custom-prompt tagged.ndjson 'Zhrň hlavné témy:\n{examples}' Prompt examples: |
• 'Zhrň hlavné témy:\n{examples}' - summaries | • 'Identifikuj riziká:\n{examples}' - risk analysis | • 'Aké patterny vidíš:\n{examples}' - insights | • 'Prečo sú zoskupené:\n{examples}' - reasoning |
|
| Use cases: |
| • different perspectives | | • specialized analysis | | • custom insights |
|
>,
pos="819.5,111.5",
shape=plain,
style=filled,
width=1.1667];
Additional_Tools -> X__Custom_Prompts [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 603.44 178.44 611.49 176 619.83 173.46 628.43 170.85 637.25 \
168.17 646.26 165.44 655.41 162.66 664.66 159.85 673.98 157.02 683.33 154.18 692.67 151.35 701.97 148.53 711.17 145.73 720.25 142.97 \
729.16 140.27 737.88 137.62 746.35 135.05 754.54 132.56 762.41 130.17 769.93 127.89 777.06 125.73 776.46 123.81 769.36 126.06 761.87 \
128.42 754.02 130.9 745.86 133.48 737.42 136.14 728.74 138.88 719.85 141.69 710.8 144.55 701.63 147.44 692.37 150.36 683.06 153.3 \
673.74 156.24 664.45 159.18 655.23 162.09 646.11 164.97 637.14 167.8 628.35 170.58 619.77 173.28 611.46 175.91 603.44 178.44 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 603.4 178.45 598.85 184.05 591.94 182 596.49 176.4 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Additional_Tools👉 3__Custom_Prompts",
penwidth=2,
pos="s,591.94,182 603.44,178.44 655.91,162.19 730.75,139.02 776.76,124.77",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Visualize_Embeddings [_draw_="S 17 -setlinewidth(0.8) c 9 -#fffffe00 C 7 -#ffffff P 4 937 47 702 47 702 0 937 0 ",
_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 703.5 42.7 -1 52 23 -4. Visualize Embeddings F 4.75 5 -Agave c 7 -#44475a t 0 T 703.5 37.95 -1 \
93 41 -Interactive 2D visualization of document F 4.75 5 -Agave c 7 -#44475a T 703.5 33.2 -1 14 6 -space. F 4.75 5 -Agave c 7 -#\
ff79c6 T 703.5 28.45 -1 61 28 - ./llm-tagger.sh visualize F 4.75 5 -Agave c 7 -#ff79c6 T 703.5 23.7 -1 59 27 -tagged.ndjson output.html \
F 4.75 5 -Agave c 7 -#44475a T 703.5 18.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 706.5 18.95 -1 16 7 -Output: F 4.75 5 -Agave \
c 7 -#44475a t 0 T 722.5 18.95 -1 68 30 - Interactive HTML with plotly F 4.75 5 -Agave c 7 -#44475a t 4 T 790.5 18.95 -1 30 13 \
-Requirements: F 4.75 5 -Agave c 7 -#44475a t 0 T 820.5 18.95 -1 3 1 - F 4.75 5 -Agave c 7 -#ff79c6 T 823.5 18.95 -1 55 26 - pip \
install umap-learn F 4.75 5 -Agave c 7 -#44475a T 878.5 18.95 -1 32 14 -in Dockerfile F 4.75 5 -Agave c 7 -#44475a t 4 T 910.5 \
18.95 -1 23 10 -Use cases: F 4.75 5 -Agave c 7 -#44475a t 0 T 933.5 18.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a T 703.5 11.7 -1 \
64 31 -• explore document landscape F 4.75 5 -Agave c 7 -#44475a T 703.5 6.7 -1 61 30 -• verify clustering quality F 4.75 \
5 -Agave c 7 -#44475a T 703.5 1.7 -1 55 27 -• find outliers visually ",
fillcolor="#FFFFFF",
fontsize=4.75,
height=0.65278,
href="#4__Visualize_Embeddings",
label=<4. Visualize Embeddings Interactive 2D visualization of document space. ./llm-tagger.sh visualize tagged.ndjson output.html Output: Interactive HTML with plotly Requirements: pip install umap-learn in Dockerfile Use cases: |
| • explore document landscape | | • verify clustering quality | | • find outliers visually |
|
>,
pos="819.5,23.5",
shape=plain,
style=filled,
width=3.2639];
Additional_Tools -> X__Visualize_Embeddings [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 564.45 172.61 568.88 167.78 573.66 162.66 578.78 157.26 584.23 \
151.63 589.98 145.81 596.03 139.82 602.35 133.69 608.93 127.47 615.75 121.19 622.79 114.88 630.04 108.58 637.49 102.32 645.11 96.13 \
652.88 90.05 660.8 84.12 668.84 78.36 677 72.81 685.24 67.51 693.55 62.49 701.93 57.78 702.88 57.27 703.84 56.76 704.81 56.26 705.78 \
55.76 706.76 55.27 707.74 54.78 708.73 54.3 709.72 53.83 710.72 53.35 711.72 52.89 712.73 52.42 713.74 51.96 714.75 51.51 715.77 \
51.06 716.79 50.62 717.82 50.18 718.84 49.75 719.88 49.32 720.91 48.89 721.95 48.47 721.19 46.62 720.15 47.05 719.11 47.49 718.07 \
47.94 717.04 48.39 716.01 48.84 714.98 49.3 713.96 49.76 712.94 50.23 711.93 50.7 710.92 51.17 709.91 51.66 708.91 52.14 707.91 \
52.64 706.92 53.13 705.93 53.63 704.95 54.14 703.97 54.65 703 55.17 702.03 55.69 701.07 56.22 692.7 61.04 684.39 66.16 676.17 71.57 \
668.04 77.22 660.03 83.07 652.15 89.1 644.42 95.27 636.84 101.55 629.45 107.89 622.25 114.28 615.26 120.66 608.5 127.02 601.97 133.31 \
595.71 139.5 589.72 145.55 584.02 151.44 578.63 157.12 573.56 162.57 568.83 167.74 564.45 172.61 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 564.18 172.92 563.19 180.06 556.22 181.9 557.2 174.76 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Additional_Tools👉 4__Visualize_Embeddings",
penwidth=2,
pos="s,556.22,181.9 564.45,172.61 592.57,141.38 645.5,87.631 701.5,57 707.86,53.52 714.63,50.378 721.57,47.547",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
}
}