Suya OCR API — vLLM-backed, OpenAI-compatible OCR service

FastAPI service wrapping the Surya-OCR-2 model (datalab-to) served through vLLM:
legacy /v1/api/ai/* endpoints, an OpenAI-compatible /v1/chat/completions endpoint,
a coalescing request batcher, a local OCR CLI, Docker packaging, multilingual
example outputs, and quantization/concurrency benchmarks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Fu Dai
2026-06-17 10:20:02 +04:00
co-authored by Claude Opus 4.8
commit 1a585693be
147 changed files with 13827 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
concurrency,requests,success,failed,wall_seconds,throughput_rps,latency_min,latency_mean,latency_p50,latency_p95,latency_max
1,1,1,0,7.6577067924663424,0.13058739738949013,7.656610286794603,7.656610286794603,7.656610286794603,7.656610286794603,7.656610286794603
2,2,2,0,11.936453193426132,0.16755395992349534,11.934747929684818,11.935045637656003,11.934747929684818,11.935343345627189,11.935343345627189
4,4,4,0,20.956660461612046,0.19087010582278188,20.942796256393194,20.951773355016485,20.954541454091668,20.95546007528901,20.95546007528901
6,6,6,0,29.489064288325608,0.20346525550406608,29.45817438978702,29.47708616297071,29.48345213010907,29.487088727764785,29.487088727764785
8,8,8,0,41.46563811413944,0.192930830534405,11.84945331979543,34.050638656364754,41.457184289582074,41.46130123361945,41.46130123361945
10,10,10,0,50.19571524951607,0.19922019141058875,12.104127056896687,42.553733562212436,50.15600565075874,50.19275312870741,50.19275312870741
12,12,12,0,59.99224958010018,0.20002583807059768,25.362822842784226,45.54706535985073,59.93020099774003,59.95823861565441,59.98695467971265
20,20,20,0,99.85960746835917,0.20028117981874766,16.85126264579594,66.68330737100914,55.060471390374005,92.9106959477067,99.76074412371963
30,30,30,0,147.6483807535842,0.20318543181362822,20.873554840683937,90.49832232653473,97.37336550559849,147.4727698881179,147.48508568760008
40,40,40,0,195.21150322351605,0.20490595758693703,25.34921144787222,114.89935769808945,102.41363409627229,194.96774306707084,194.99985321611166
50,50,50,0,241.15029445569962,0.20733957680978582,88.28880738746375,149.28542947791516,126.26868482958525,240.86813501361758,240.87839913833886
1 concurrency requests success failed wall_seconds throughput_rps latency_min latency_mean latency_p50 latency_p95 latency_max
2 1 1 1 0 7.6577067924663424 0.13058739738949013 7.656610286794603 7.656610286794603 7.656610286794603 7.656610286794603 7.656610286794603
3 2 2 2 0 11.936453193426132 0.16755395992349534 11.934747929684818 11.935045637656003 11.934747929684818 11.935343345627189 11.935343345627189
4 4 4 4 0 20.956660461612046 0.19087010582278188 20.942796256393194 20.951773355016485 20.954541454091668 20.95546007528901 20.95546007528901
5 6 6 6 0 29.489064288325608 0.20346525550406608 29.45817438978702 29.47708616297071 29.48345213010907 29.487088727764785 29.487088727764785
6 8 8 8 0 41.46563811413944 0.192930830534405 11.84945331979543 34.050638656364754 41.457184289582074 41.46130123361945 41.46130123361945
7 10 10 10 0 50.19571524951607 0.19922019141058875 12.104127056896687 42.553733562212436 50.15600565075874 50.19275312870741 50.19275312870741
8 12 12 12 0 59.99224958010018 0.20002583807059768 25.362822842784226 45.54706535985073 59.93020099774003 59.95823861565441 59.98695467971265
9 20 20 20 0 99.85960746835917 0.20028117981874766 16.85126264579594 66.68330737100914 55.060471390374005 92.9106959477067 99.76074412371963
10 30 30 30 0 147.6483807535842 0.20318543181362822 20.873554840683937 90.49832232653473 97.37336550559849 147.4727698881179 147.48508568760008
11 40 40 40 0 195.21150322351605 0.20490595758693703 25.34921144787222 114.89935769808945 102.41363409627229 194.96774306707084 194.99985321611166
12 50 50 50 0 241.15029445569962 0.20733957680978582 88.28880738746375 149.28542947791516 126.26868482958525 240.86813501361758 240.87839913833886