Repository navigation
Expand file tree
/
Copy pathdebug.log
More file actions
2072 lines (2016 loc) · 112 KB
/
Copy pathdebug.log
File metadata and controls
2072 lines (2016 loc) · 112 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
warning: unused import: `super::*`
--> src/storage/rdf.rs:16:13
|
16 | use super::*;
| ^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused imports: `CSVLLMPluginFactory` and `ImageLLMPluginFactory`
--> src/plugins/examples.rs:9:5
|
9 | ImageLLMPluginFactory,
| ^^^^^^^^^^^^^^^^^^^^^
10 | CSVLLMPluginFactory
| ^^^^^^^^^^^^^^^^^^^
warning: unused import: `crate::error::Result`
--> src/api/ontology_handlers.rs:3:5
|
3 | use crate::error::Result;
| ^^^^^^^^^^^^^^^^^^^^
warning: unused import: `Deserialize`
--> src/api/ontology_handlers.rs:6:13
|
6 | use serde::{Deserialize, Serialize};
| ^^^^^^^^^^^
warning: unused import: `std::collections::HashMap`
--> src/taxonomy/wizard.rs:5:5
|
5 | use std::collections::HashMap;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused import: `std::collections::HashMap`
--> src/taxonomy/owl_formalizer.rs:5:5
|
5 | use std::collections::HashMap;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused variable: `plugins`
--> src/plugins/manager.rs:137:9
|
137 | plugins: &mut HashMap<String, Box<dyn Plugin + Send + Sync>>,
| ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plugins`
|
= note: `#[warn(unused_variables)]` on by default
warning: unused variable: `async_plugins`
--> src/plugins/manager.rs:138:9
|
138 | async_plugins: &mut HashMap<String, Box<dyn AsyncPlugin + Send + Sync>>,
| ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_plugins`
warning: unused variable: `context_prompt`
--> src/plugins/manager.rs:588:9
|
588 | context_prompt: &str,
| ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context_prompt`
warning: variable does not need to be mutable
--> src/plugins/classification/llm.rs:188:13
|
188 | let mut confidence = 0.8; // Default confidence for RDF responses
| ----^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
warning: variable does not need to be mutable
--> src/plugins/classification/llm.rs:189:13
|
189 | let mut reasoning = Some("Generated from RDF triples using Dublin Core predicates".to_string());
| ----^^^^^^^^^
| |
| help: remove this `mut`
warning: variable `text_count` is assigned to, but never used
--> src/plugins/classification/csv_llm.rs:218:21
|
218 | let mut text_count = 0;
| ^^^^^^^^^^
|
= note: consider using `_text_count` instead
warning: variable does not need to be mutable
--> src/plugins/classification/ollm_provider.rs:336:13
|
336 | let mut confidence = 0.9; // Higher confidence for OLLM
| ----^^^^^^^^^^
| |
| help: remove this `mut`
warning: variable does not need to be mutable
--> src/plugins/classification/ollm_provider.rs:337:13
|
337 | let mut reasoning = Some("Generated from RDF triples using OLLM with Dublin Core predicates".to_string());
| ----^^^^^^^^^
| |
| help: remove this `mut`
warning: methods `extract_any_readable_text`, `extract_text_from_streams`, and `decode_stream_content` are never used
--> src/plugins/classification/llm.rs:740:8
|
397 | impl PDFTextExtractor {
| --------------------- methods in this implementation
...
740 | fn extract_any_readable_text(&self, content: &str) -> String {
| ^^^^^^^^^^^^^^^^^^^^^^^^^
...
786 | fn extract_text_from_streams(&self, content: &str) -> String {
| ^^^^^^^^^^^^^^^^^^^^^^^^^
...
812 | fn decode_stream_content(&self, content: &str) -> Result<String> {
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
warning: field `ollm_script_path` is never read
--> src/plugins/classification/ollm_provider.rs:16:5
|
14 | pub struct OllmProvider {
| ------------ field in this struct
15 | python_path: String,
16 | ollm_script_path: String,
| ^^^^^^^^^^^^^^^^
|
= note: `OllmProvider` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
warning: associated items `create_ollm_script` and `write_ollm_script` are never used
--> src/plugins/classification/ollm_provider.rs:39:8
|
21 | impl OllmProvider {
| ----------------- associated items in this implementation
...
39 | fn create_ollm_script() -> String {
| ^^^^^^^^^^^^^^^^^^
...
158 | async fn write_ollm_script(&self) -> Result<String> {
| ^^^^^^^^^^^^^^^^^
warning: methods `parse_rdf_response` and `parse_json_fallback` are never used
--> src/plugins/classification/ollm_provider.rs:325:8
|
323 | impl OllmProvider {
| ----------------- methods in this implementation
324 | /// Parse RDF response from OLLM (reuse logic from OllamaClient)
325 | fn parse_rdf_response(&self, response: &str) -> Result<LLMResponse> {
| ^^^^^^^^^^^^^^^^^^
...
371 | fn parse_json_fallback(&self, response: &str) -> Result<LLMResponse> {
| ^^^^^^^^^^^^^^^^^^^
warning: method `should_use_large_context` is never used
--> src/plugins/classification/llm_router.rs:77:8
|
51 | impl LlmRouter {
| -------------- method in this implementation
...
77 | fn should_use_large_context(&self, content_size: usize) -> bool {
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: field `database` is never read
--> src/api/server.rs:16:5
|
13 | pub struct ApiServer {
| --------- field in this struct
...
16 | database: Arc<dyn DatabaseOperations>,
| ^^^^^^^^
warning: method `path` is never used
--> src/api/plugin_handler.rs:248:8
|
85 | impl PluginFileProcessor {
| ------------------------ method in this implementation
...
248 | fn path(&self, filename: &str) -> String {
| ^^^^
warning: fields `user_ontology` and `validator` are never read
--> src/taxonomy/mod.rs:28:5
|
25 | pub struct TaxonomyManager {
| --------------- fields in this struct
...
28 | user_ontology: Arc<RwLock<Option<wizard::OntologyWizardConfig>>>,
| ^^^^^^^^^^^^^
29 | validator: Arc<validator::ShaclValidator>,
| ^^^^^^^^^
warning: `memesis` (lib) generated 22 warnings (run `cargo fix --lib -p memesis` to apply 10 suggestions)
warning: unused variable: `api_handle`
--> src/main.rs:242:9
|
242 | let api_handle = tokio::spawn(async move {
| ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_handle`
|
= note: `#[warn(unused_variables)]` on by default
warning: `memesis` (bin "memesis") generated 1 warning
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.10s
Running `target/debug/memesis /tmp/memesis_mount`
2025-10-19T05:26:28.080389Z INFO memesis::utils::logging: Starting Tagsistant filesystem
2025-10-19T05:26:28.080709Z INFO memesis::utils::logging: Version: 0.1.0
2025-10-19T05:26:28.080723Z INFO memesis::utils::logging: Build: 0.1.0
2025-10-19T05:26:28.083845Z INFO memesis: Creating repository directory: /Users/mikeholborn/.tagsistant
2025-10-19T05:26:28.083892Z INFO memesis: Parent directory: /Users/mikeholborn
2025-10-19T05:26:28.083940Z INFO memesis: Parent directory exists and is accessible
2025-10-19T05:26:28.083978Z INFO memesis: Repository directory created successfully
2025-10-19T05:26:28.084308Z INFO memesis: Repository directory is writable
2025-10-19T05:26:28.084326Z INFO memesis: Ensuring SQLite database file exists: /Users/mikeholborn/.tagsistant/selftag.db
2025-10-19T05:26:28.089007Z INFO memesis: Database file created successfully using sqlite3
2025-10-19T05:26:28.089029Z INFO memesis: Connecting to database: sqlite:/Users/mikeholborn/.tagsistant/selftag.db
2025-10-19T05:26:28.089055Z INFO memesis::storage::database: Attempting to connect to SQLite database: sqlite:/Users/mikeholborn/.tagsistant/selftag.db
2025-10-19T05:26:28.089096Z INFO memesis::storage::database: Database parent directory: /Users/mikeholborn/.tagsistant
2025-10-19T05:26:28.089111Z INFO memesis::storage::database: Database parent directory exists and is accessible
2025-10-19T05:26:28.089115Z INFO memesis::storage::database: Parsing SQLite connection string: sqlite:/Users/mikeholborn/.tagsistant/selftag.db
2025-10-19T05:26:28.092414Z DEBUG sqlx::query: summary="PRAGMA journal_mode = WAL; …" db.statement="\n\nPRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \n" rows_affected=0 rows_returned=1 elapsed=855.125µs elapsed_secs=0.000855125
2025-10-19T05:26:28.092505Z INFO memesis::storage::database: SQLite database connection established successfully
2025-10-19T05:26:28.092515Z INFO memesis: Database connection established successfully
2025-10-19T05:26:28.092538Z INFO memesis::storage::database: Initializing SQLite database schema
2025-10-19T05:26:28.092713Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS tags (\n tag_id INTEGER PRIMARY KEY AUTOINCREMENT,\n tagname VARCHAR(65) NOT NULL,\n key VARCHAR(65) DEFAULT '',\n value VARCHAR(65) DEFAULT '',\n subject VARCHAR(255) DEFAULT '',\n predicate VARCHAR(255) DEFAULT '',\n object TEXT DEFAULT '',\n namespace VARCHAR(100) DEFAULT '',\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n UNIQUE(tagname, key, value),\n UNIQUE(subject, predicate, object)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=45.334µs elapsed_secs=4.5334e-5
2025-10-19T05:26:28.093202Z DEBUG sqlx::query: summary="PRAGMA journal_mode = WAL; …" db.statement="\n\nPRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \n" rows_affected=0 rows_returned=1 elapsed=298.334µs elapsed_secs=0.000298334
2025-10-19T05:26:28.093283Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS objects (\n inode INTEGER PRIMARY KEY,\n objectname TEXT NOT NULL,\n last_autotag DATETIME DEFAULT CURRENT_TIMESTAMP,\n checksum TEXT(40) DEFAULT '',\n symlink TEXT(1024) DEFAULT '',\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n )\n \n" rows_affected=0 rows_returned=0 elapsed=23.375µs elapsed_secs=2.3375e-5
2025-10-19T05:26:28.093404Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS tagging (\n inode INTEGER NOT NULL,\n tag_id INTEGER NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (inode, tag_id),\n FOREIGN KEY (inode) REFERENCES objects(inode),\n FOREIGN KEY (tag_id) REFERENCES tags(tag_id)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=39.167µs elapsed_secs=3.9167e-5
2025-10-19T05:26:28.093505Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS relations (\n tag1_id INTEGER NOT NULL,\n tag2_id INTEGER NOT NULL,\n relation VARCHAR(32) NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (tag1_id, tag2_id, relation),\n FOREIGN KEY (tag1_id) REFERENCES tags(tag_id),\n FOREIGN KEY (tag2_id) REFERENCES tags(tag_id)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=29.708µs elapsed_secs=2.9708e-5
2025-10-19T05:26:28.093600Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS taxonomy_nodes (\n node_id VARCHAR(100) PRIMARY KEY,\n label VARCHAR(255) NOT NULL,\n description TEXT,\n parent_id VARCHAR(100),\n owl_class_uri VARCHAR(500) NOT NULL,\n dimension VARCHAR(100) NOT NULL,\n children TEXT DEFAULT '[]',\n mapped_documents TEXT DEFAULT '[]',\n density INTEGER DEFAULT 0,\n max_density INTEGER DEFAULT 10,\n is_user_defined BOOLEAN DEFAULT FALSE,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (parent_id) REFERENCES taxonomy_nodes(node_id)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=29.167µs elapsed_secs=2.9167e-5
2025-10-19T05:26:28.093682Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS validation_violations (\n violation_id INTEGER PRIMARY KEY AUTOINCREMENT,\n tag_id INTEGER,\n severity VARCHAR(20) NOT NULL,\n message TEXT NOT NULL,\n path VARCHAR(255),\n value TEXT,\n suggestion TEXT,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (tag_id) REFERENCES tags(tag_id)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=18.5µs elapsed_secs=1.85e-5
2025-10-19T05:26:28.093786Z DEBUG sqlx::query: summary="CREATE TABLE IF NOT …" db.statement="\n\n\n CREATE TABLE IF NOT EXISTS taxonomy_classifications (\n classification_id INTEGER PRIMARY KEY AUTOINCREMENT,\n inode INTEGER NOT NULL,\n node_id VARCHAR(100) NOT NULL,\n dimension VARCHAR(100) NOT NULL,\n confidence REAL DEFAULT 1.0,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (inode) REFERENCES objects(inode),\n FOREIGN KEY (node_id) REFERENCES taxonomy_nodes(node_id)\n )\n \n" rows_affected=0 rows_returned=0 elapsed=21.542µs elapsed_secs=2.1542e-5
2025-10-19T05:26:28.093890Z DEBUG sqlx::query: summary="CREATE INDEX IF NOT …" db.statement="\n\nCREATE INDEX IF NOT EXISTS idx_tags_tagname ON tags(tagname)\n" rows_affected=0 rows_returned=0 elapsed=25.791µs elapsed_secs=2.5791e-5
2025-10-19T05:26:28.093976Z DEBUG sqlx::query: summary="CREATE INDEX IF NOT …" db.statement="\n\nCREATE INDEX IF NOT EXISTS idx_tagging_inode ON tagging(inode)\n" rows_affected=0 rows_returned=0 elapsed=17.125µs elapsed_secs=1.7125e-5
2025-10-19T05:26:28.094045Z DEBUG sqlx::query: summary="CREATE INDEX IF NOT …" db.statement="\n\nCREATE INDEX IF NOT EXISTS idx_tagging_tag_id ON tagging(tag_id)\n" rows_affected=0 rows_returned=0 elapsed=9.417µs elapsed_secs=9.417e-6
2025-10-19T05:26:28.094059Z INFO memesis::storage::database: Database schema initialized successfully
2025-10-19T05:26:28.094075Z INFO memesis::storage::file_storage: Initializing file storage at: /Users/mikeholborn/.tagsistant/archive
2025-10-19T05:26:28.094091Z INFO memesis::storage::file_storage: Loading existing file index...
2025-10-19T05:26:28.094519Z INFO memesis::plugins::manager: Loaded 8 plugins from /Users/mikeholborn/.tagsistant/plugins
2025-10-19T05:26:28.112757Z INFO memesis::fuse::filesystem: Initializing Tagsistant filesystem
Selftag filesystem initialized successfully!
Mount point: /tmp/memesis_mount
Repository: /Users/mikeholborn/.tagsistant
Database: sqlite:/Users/mikeholborn/.tagsistant/selftag.db
Plugin directory: /Users/mikeholborn/.tagsistant/plugins
2025-10-19T05:26:28.112952Z DEBUG sqlx::query: summary="SELECT COUNT(*) FROM tags" db.statement="" rows_affected=0 rows_returned=1 elapsed=61.833µs elapsed_secs=6.1833e-5
2025-10-19T05:26:28.113054Z DEBUG sqlx::query: summary="SELECT COUNT(*) FROM objects" db.statement="" rows_affected=0 rows_returned=1 elapsed=27.334µs elapsed_secs=2.7334e-5
2025-10-19T05:26:28.113131Z DEBUG sqlx::query: summary="SELECT COUNT(*) FROM relations" db.statement="" rows_affected=0 rows_returned=1 elapsed=17.5µs elapsed_secs=1.75e-5
Database stats: 0 tags, 0 objects, 0 relations
Cache stats: 0 entries, 0.0% hit rate
Plugin stats: 8 plugins loaded, 0 supported MIME types
2025-10-19T05:26:28.113222Z DEBUG memesis::query::engine: Processing query: /tags/
2025-10-19T05:26:28.113282Z DEBUG memesis::query::engine: Query returned 7 results
Test query returned 7 results
2025-10-19T05:26:28.113379Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Starting file processing for test.txt (31 bytes, text/plain)
2025-10-19T05:26:28.113410Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Available plugins: ["date", "generic", "auto-classifier", "csv-llm", "pdf-llm", "filename", "size", "image-llm"]
2025-10-19T05:26:28.113424Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin date can handle text/plain: true
2025-10-19T05:26:28.113432Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin generic can handle text/plain: true
2025-10-19T05:26:28.113439Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin auto-classifier can handle text/plain: true
2025-10-19T05:26:28.113453Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin csv-llm can handle text/plain: false
2025-10-19T05:26:28.113460Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin pdf-llm can handle text/plain: false
2025-10-19T05:26:28.113466Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin filename can handle text/plain: true
2025-10-19T05:26:28.113472Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin size can handle text/plain: true
2025-10-19T05:26:28.113480Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Plugin image-llm can handle text/plain: false
2025-10-19T05:26:28.113487Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Found 5 plugins for MIME type text/plain
2025-10-19T05:26:28.113495Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Found 5 regular plugins for MIME type text/plain
2025-10-19T05:26:28.113534Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}:plugin_execution{plugin_name=date}: memesis::plugins::manager: Plugin date generated 4 tags
2025-10-19T05:26:28.113578Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}:plugin_execution{plugin_name=generic}: memesis::plugins::manager: Plugin generic generated 2 tags
2025-10-19T05:26:28.113693Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}:plugin_execution{plugin_name=auto-classifier}: memesis::plugins::manager: Plugin auto-classifier generated 8 tags
2025-10-19T05:26:28.113717Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}:plugin_execution{plugin_name=filename}: memesis::plugins::manager: Plugin filename generated 1 tags
2025-10-19T05:26:28.113735Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}:plugin_execution{plugin_name=size}: memesis::plugins::manager: Plugin size generated 2 tags
2025-10-19T05:26:28.113764Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Found 0 async plugins for MIME type text/plain
2025-10-19T05:26:28.113773Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Found 0 metadata extractors for MIME type text/plain
2025-10-19T05:26:28.113792Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Found 0 file processors for MIME type text/plain
2025-10-19T05:26:28.113827Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: Removed 2 duplicate tags (17 -> 15)
2025-10-19T05:26:28.113837Z INFO process_file{filename=test.txt mime_type=text/plain file_size=31}: memesis::plugins::manager: File processing completed: 15 total tags generated
Plugin processing generated 15 tags
2025-10-19T05:26:28.113981Z DEBUG sqlx::query: summary="SELECT tag2_id FROM relations …" db.statement="\n\nSELECT tag2_id FROM relations WHERE tag1_id = ? AND relation = ?\n" rows_affected=0 rows_returned=0 elapsed=43.625µs elapsed_secs=4.3625e-5
Reasoning engine found 0 related tags
API server started on port 8080
Mounting filesystem at: /tmp/memesis_mount
FUSE support not compiled in. Filesystem simulation mode.
Mount point: /tmp/memesis_mount
Repository: /Users/mikeholborn/.tagsistant
Database: sqlite:/Users/mikeholborn/.tagsistant/selftag.db
Plugin directory: /Users/mikeholborn/.tagsistant/plugins
Filesystem ready for mounting!
To mount with FUSE: sudo mount -t fuse.selftag /dev/fuse /tmp/memesis_mount
Note: FUSE support requires the 'fuse' feature to be enabled and FUSE libraries to be installed.
Filesystem simulation running.
Press Ctrl+C to exit...
Starting API server on port 8080
2025-10-19T05:26:28.114531Z INFO Server::run{addr=0.0.0.0:8080}: warp::server: listening on http://0.0.0.0:8080
2025-10-19T05:26:32.446716Z DEBUG hyper::proto::h1::io: parsed 7 headers
2025-10-19T05:26:32.446759Z DEBUG hyper::proto::h1::conn: incoming body is content-length (860 bytes)
2025-10-19T05:26:32.446853Z DEBUG hyper::proto::h1::conn: incoming body completed
2025-10-19T05:26:32.446997Z INFO memesis::api::plugin_handler: Processing 1 files with plugin system
2025-10-19T05:26:32.447004Z INFO memesis::api::plugin_handler: Processing file 1/1: debug_test.pdf
2025-10-19T05:26:32.447058Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Starting file processing for debug_test.pdf (454 bytes, application/pdf)
2025-10-19T05:26:32.447078Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Available plugins: ["date", "generic", "auto-classifier", "csv-llm", "pdf-llm", "filename", "size", "image-llm"]
2025-10-19T05:26:32.447091Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin date can handle application/pdf: true
2025-10-19T05:26:32.447098Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin generic can handle application/pdf: true
2025-10-19T05:26:32.447104Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin auto-classifier can handle application/pdf: true
2025-10-19T05:26:32.447119Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin csv-llm can handle application/pdf: false
2025-10-19T05:26:32.447124Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin pdf-llm can handle application/pdf: true
2025-10-19T05:26:32.447132Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin filename can handle application/pdf: true
2025-10-19T05:26:32.447139Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin size can handle application/pdf: true
2025-10-19T05:26:32.447144Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Plugin image-llm can handle application/pdf: false
2025-10-19T05:26:32.447150Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Found 6 plugins for MIME type application/pdf
2025-10-19T05:26:32.447156Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Found 6 regular plugins for MIME type application/pdf
2025-10-19T05:26:32.447180Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=date}: memesis::plugins::manager: Plugin date generated 4 tags
2025-10-19T05:26:32.447205Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=generic}: memesis::plugins::manager: Plugin generic generated 2 tags
2025-10-19T05:26:32.447250Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=auto-classifier}: memesis::plugins::manager: Plugin auto-classifier generated 8 tags
2025-10-19T05:26:32.447322Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 🔍 PDF text extraction starting...
2025-10-19T05:26:32.447331Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF size: 454 bytes
2025-10-19T05:26:32.447338Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📋 Method 1: Direct PDF text extraction
2025-10-19T05:26:32.447353Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF content length: 454 characters
2025-10-19T05:26:32.447372Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📝 Extracted text chunk: Test
2025-10-19T05:26:32.447384Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📊 Direct extraction: BT=1, ET=1, text_length=5
2025-10-19T05:26:32.447390Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: ✅ Direct text extraction successful: 5 characters
2025-10-19T05:26:32.447412Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 🤖 Starting LLM analysis for file: debug_test.pdf
2025-10-19T05:26:32.447429Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 📊 Content size: 5 bytes
2025-10-19T05:26:32.447435Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 📄 Content preview: Test
2025-10-19T05:26:32.447441Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 🔧 Context: Some("PDF document")
2025-10-19T05:26:32.447467Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 🏷️ Max tags requested: Some(15)
2025-10-19T05:26:32.447477Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 📝 Generated prompt length: 4285 characters
2025-10-19T05:26:32.447483Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 📋 Full prompt: You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.
CRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.
DOCUMENT TO ANALYZE:
Filename: debug_test.pdf
Content: Test
ANALYSIS INSTRUCTIONS:
1. Read and understand the ACTUAL CONTENT of the document
2. Generate 15 highly relevant RDF triples based on the real content
3. Focus on what the document is ACTUALLY about, not generic file type tags
4. Use Dublin Core predicates to describe the real content, topics, and themes
5. The subject should be the file URI: <file://debug_test.pdf>
6. Use proper RDF/Turtle format with namespace prefixes
CONTENT-SPECIFIC ANALYSIS FOCUS:
- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?
- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?
- **Specific Details**: What are the key facts, dates, numbers, or specific information?
- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?
- **Document Purpose**: What is this document actually trying to communicate or achieve?
- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?
- **Technical Content**: If technical, what specific technologies, methods, or processes?
- **Business Content**: If business-related, what specific industries, markets, or business concepts?
- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?
DUBLIN CORE PREDICATES FOR REAL CONTENT:
- dc:title - the actual title or main topic from the content
- dc:subject - specific topics, themes, and concepts actually discussed
- dc:description - what the document is really about based on content
- dc:creator - actual authors, organizations, or entities mentioned
- dc:type - the real document type (legal-document, policy, manual, etc.)
- dc:format - technical format and structure
- dc:language - language and communication style
- dc:date - actual dates, time periods, or temporal context from content
- dc:coverage - geographic, temporal, or topical coverage mentioned
- dc:rights - actual rights, permissions, or legal implications discussed
- dc:source - actual sources, references, or citations in the content
- dc:relation - related documents, laws, or concepts mentioned
- dc:publisher - actual publishing entity or authority
- dc:audience - who this document is actually intended for
EXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:
For "Digital Personal Data Protection Bill 2023.pdf":
- dc:subject "data-protection-law"
- dc:subject "privacy-rights"
- dc:subject "personal-data-governance"
- dc:subject "digital-privacy-regulation"
- dc:subject "data-subject-rights"
- dc:subject "consent-management"
- dc:subject "data-breach-notification"
- dc:subject "privacy-by-design"
- dc:date "2023"
- dc:type "legal-document"
- dc:type "legislation"
- dc:coverage "India"
- dc:rights "data-subject-rights"
For "Machine Learning Research Paper.pdf":
- dc:subject "neural-networks"
- dc:subject "deep-learning-algorithms"
- dc:subject "computer-vision"
- dc:subject "image-classification"
- dc:subject "convolutional-neural-networks"
- dc:subject "transfer-learning"
- dc:type "research-paper"
- dc:type "academic-publication"
RESPONSE FORMAT:
Return ONLY valid RDF/Turtle format with this structure:
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<file://debug_test.pdf> dc:title "Actual Document Title from Content" .
<file://debug_test.pdf> dc:subject "real-topic-from-content" .
<file://debug_test.pdf> dc:subject "specific-concept-discussed" .
<file://debug_test.pdf> dc:subject "actual-theme-covered" .
<file://debug_test.pdf> dc:type "real-document-type" .
<file://debug_test.pdf> dc:description "what-document-actually-contains" .
<file://debug_test.pdf> dc:date "actual-dates-from-content" .
<file://debug_test.pdf> dc:coverage "real-geographic-temporal-context" .
Generate RDF triples based on the ACTUAL CONTENT now:
2025-10-19T05:26:32.447592Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 🔗 Making request to Ollama at: http://localhost:11434
2025-10-19T05:26:32.447600Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: ⏱️ Request timeout: 30s
2025-10-19T05:26:32.447760Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 📤 Full request payload: {
"model": "qwen2.5:latest",
"options": {
"max_tokens": 2000,
"temperature": 0.3,
"top_p": 0.9
},
"prompt": "You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.\n\nCRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.\n\nDOCUMENT TO ANALYZE:\nFilename: debug_test.pdf\nContent: Test \n\nANALYSIS INSTRUCTIONS:\n1. Read and understand the ACTUAL CONTENT of the document\n2. Generate 15 highly relevant RDF triples based on the real content\n3. Focus on what the document is ACTUALLY about, not generic file type tags\n4. Use Dublin Core predicates to describe the real content, topics, and themes\n5. The subject should be the file URI: <file://debug_test.pdf>\n6. Use proper RDF/Turtle format with namespace prefixes\n\nCONTENT-SPECIFIC ANALYSIS FOCUS:\n- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?\n- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?\n- **Specific Details**: What are the key facts, dates, numbers, or specific information?\n- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?\n- **Document Purpose**: What is this document actually trying to communicate or achieve?\n- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?\n- **Technical Content**: If technical, what specific technologies, methods, or processes?\n- **Business Content**: If business-related, what specific industries, markets, or business concepts?\n- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?\n\nDUBLIN CORE PREDICATES FOR REAL CONTENT:\n- dc:title - the actual title or main topic from the content\n- dc:subject - specific topics, themes, and concepts actually discussed\n- dc:description - what the document is really about based on content\n- dc:creator - actual authors, organizations, or entities mentioned\n- dc:type - the real document type (legal-document, policy, manual, etc.)\n- dc:format - technical format and structure\n- dc:language - language and communication style\n- dc:date - actual dates, time periods, or temporal context from content\n- dc:coverage - geographic, temporal, or topical coverage mentioned\n- dc:rights - actual rights, permissions, or legal implications discussed\n- dc:source - actual sources, references, or citations in the content\n- dc:relation - related documents, laws, or concepts mentioned\n- dc:publisher - actual publishing entity or authority\n- dc:audience - who this document is actually intended for\n\nEXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:\nFor \"Digital Personal Data Protection Bill 2023.pdf\":\n- dc:subject \"data-protection-law\"\n- dc:subject \"privacy-rights\"\n- dc:subject \"personal-data-governance\"\n- dc:subject \"digital-privacy-regulation\"\n- dc:subject \"data-subject-rights\"\n- dc:subject \"consent-management\"\n- dc:subject \"data-breach-notification\"\n- dc:subject \"privacy-by-design\"\n- dc:date \"2023\"\n- dc:type \"legal-document\"\n- dc:type \"legislation\"\n- dc:coverage \"India\"\n- dc:rights \"data-subject-rights\"\n\nFor \"Machine Learning Research Paper.pdf\":\n- dc:subject \"neural-networks\"\n- dc:subject \"deep-learning-algorithms\"\n- dc:subject \"computer-vision\"\n- dc:subject \"image-classification\"\n- dc:subject \"convolutional-neural-networks\"\n- dc:subject \"transfer-learning\"\n- dc:type \"research-paper\"\n- dc:type \"academic-publication\"\n\nRESPONSE FORMAT:\nReturn ONLY valid RDF/Turtle format with this structure:\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n@prefix dcterms: <http://purl.org/dc/terms/> .\n\n<file://debug_test.pdf> dc:title \"Actual Document Title from Content\" .\n<file://debug_test.pdf> dc:subject \"real-topic-from-content\" .\n<file://debug_test.pdf> dc:subject \"specific-concept-discussed\" .\n<file://debug_test.pdf> dc:subject \"actual-theme-covered\" .\n<file://debug_test.pdf> dc:type \"real-document-type\" .\n<file://debug_test.pdf> dc:description \"what-document-actually-contains\" .\n<file://debug_test.pdf> dc:date \"actual-dates-from-content\" .\n<file://debug_test.pdf> dc:coverage \"real-geographic-temporal-context\" .\n\nGenerate RDF triples based on the ACTUAL CONTENT now:",
"stream": false
}
2025-10-19T05:26:32.450544Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: reqwest::connect: starting new connection: http://localhost:11434/
2025-10-19T05:26:32.450628Z DEBUG hyper::client::connect::dns: resolving host="localhost"
2025-10-19T05:26:32.451173Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: hyper::client::connect::http: connecting to [::1]:11434
2025-10-19T05:26:32.451322Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: hyper::client::connect::http: connecting to 127.0.0.1:11434
2025-10-19T05:26:32.451469Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: hyper::client::connect::http: connected to 127.0.0.1:11434
2025-10-19T05:26:32.451767Z DEBUG hyper::proto::h1::io: flushed 4664 bytes
2025-10-19T05:27:02.452412Z ERROR process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: ❌ Ollama request failed: error sending request for url (http://localhost:11434/api/generate): operation timed out
2025-10-19T05:27:02.452566Z ERROR process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=debug_test.pdf}: memesis::plugins::classification::llm: 🔍 Request details: URL=http://localhost:11434, Model=qwen2.5:latest, Timeout=30s
2025-10-19T05:27:02.452719Z WARN process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::manager: Plugin pdf-llm failed to process file debug_test.pdf: Plugin error: Ollama request failed: error sending request for url (http://localhost:11434/api/generate): operation timed out
2025-10-19T05:27:02.452823Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=filename}: memesis::plugins::manager: Plugin filename generated 2 tags
2025-10-19T05:27:02.452891Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}:plugin_execution{plugin_name=size}: memesis::plugins::manager: Plugin size generated 2 tags
2025-10-19T05:27:02.452960Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Found 0 async plugins for MIME type application/pdf
2025-10-19T05:27:02.452981Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Found 0 metadata extractors for MIME type application/pdf
2025-10-19T05:27:02.453000Z DEBUG process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: Found 0 file processors for MIME type application/pdf
2025-10-19T05:27:02.453029Z INFO process_file{filename=debug_test.pdf mime_type=application/pdf file_size=454}: memesis::plugins::manager: File processing completed: 18 total tags generated
2025-10-19T05:27:02.453084Z INFO memesis::api::plugin_handler: Completed file debug_test.pdf in 30.01s with 0 tags
2025-10-19T05:27:02.453105Z INFO memesis::api::plugin_handler: Processed 1 files in 30.01s: 18 total tags, 0 LLM tags
2025-10-19T05:27:02.453121Z INFO memesis::api::handlers: Plugin processing completed: 1 files, 18 tags
2025-10-19T05:27:02.453604Z DEBUG hyper::proto::h1::io: flushed 4802 bytes
2025-10-19T05:27:02.453743Z DEBUG hyper::proto::h1::conn: read eof
2025-10-19T05:27:38.385919Z DEBUG hyper::proto::h1::io: parsed 7 headers
2025-10-19T05:27:38.385952Z DEBUG hyper::proto::h1::conn: incoming body is content-length (874 bytes)
2025-10-19T05:27:38.385980Z DEBUG hyper::proto::h1::conn: incoming body completed
2025-10-19T05:27:38.386055Z INFO memesis::api::plugin_handler: Processing 1 files with plugin system
2025-10-19T05:27:38.386063Z INFO memesis::api::plugin_handler: Processing file 1/1: no_llm_test.pdf
2025-10-19T05:27:38.386096Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Starting file processing for no_llm_test.pdf (463 bytes, application/pdf)
2025-10-19T05:27:38.386114Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Available plugins: ["date", "generic", "auto-classifier", "csv-llm", "pdf-llm", "filename", "size", "image-llm"]
2025-10-19T05:27:38.386128Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin date can handle application/pdf: true
2025-10-19T05:27:38.386136Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin generic can handle application/pdf: true
2025-10-19T05:27:38.386142Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin auto-classifier can handle application/pdf: true
2025-10-19T05:27:38.386154Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin csv-llm can handle application/pdf: false
2025-10-19T05:27:38.386160Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin pdf-llm can handle application/pdf: true
2025-10-19T05:27:38.386168Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin filename can handle application/pdf: true
2025-10-19T05:27:38.386174Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin size can handle application/pdf: true
2025-10-19T05:27:38.386180Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Plugin image-llm can handle application/pdf: false
2025-10-19T05:27:38.386185Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Found 6 plugins for MIME type application/pdf
2025-10-19T05:27:38.386202Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}: memesis::plugins::manager: Found 6 regular plugins for MIME type application/pdf
2025-10-19T05:27:38.386218Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=date}: memesis::plugins::manager: Plugin date generated 4 tags
2025-10-19T05:27:38.386242Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=generic}: memesis::plugins::manager: Plugin generic generated 2 tags
2025-10-19T05:27:38.386286Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=auto-classifier}: memesis::plugins::manager: Plugin auto-classifier generated 8 tags
2025-10-19T05:27:38.386332Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 🔍 PDF text extraction starting...
2025-10-19T05:27:38.386340Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF size: 463 bytes
2025-10-19T05:27:38.386345Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📋 Method 1: Direct PDF text extraction
2025-10-19T05:27:38.386351Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF content length: 463 characters
2025-10-19T05:27:38.386369Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📝 Extracted text chunk: Test Document
2025-10-19T05:27:38.386379Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📊 Direct extraction: BT=1, ET=1, text_length=14
2025-10-19T05:27:38.386385Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: ✅ Direct text extraction successful: 14 characters
2025-10-19T05:27:38.386396Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🤖 Starting LLM analysis for file: no_llm_test.pdf
2025-10-19T05:27:38.386404Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📊 Content size: 14 bytes
2025-10-19T05:27:38.386410Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📄 Content preview: Test Document
2025-10-19T05:27:38.386416Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🔧 Context: Some("PDF document")
2025-10-19T05:27:38.386423Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🏷️ Max tags requested: Some(15)
2025-10-19T05:27:38.386431Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📝 Generated prompt length: 4304 characters
2025-10-19T05:27:38.386442Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📋 Full prompt: You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.
CRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.
DOCUMENT TO ANALYZE:
Filename: no_llm_test.pdf
Content: Test Document
ANALYSIS INSTRUCTIONS:
1. Read and understand the ACTUAL CONTENT of the document
2. Generate 15 highly relevant RDF triples based on the real content
3. Focus on what the document is ACTUALLY about, not generic file type tags
4. Use Dublin Core predicates to describe the real content, topics, and themes
5. The subject should be the file URI: <file://no_llm_test.pdf>
6. Use proper RDF/Turtle format with namespace prefixes
CONTENT-SPECIFIC ANALYSIS FOCUS:
- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?
- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?
- **Specific Details**: What are the key facts, dates, numbers, or specific information?
- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?
- **Document Purpose**: What is this document actually trying to communicate or achieve?
- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?
- **Technical Content**: If technical, what specific technologies, methods, or processes?
- **Business Content**: If business-related, what specific industries, markets, or business concepts?
- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?
DUBLIN CORE PREDICATES FOR REAL CONTENT:
- dc:title - the actual title or main topic from the content
- dc:subject - specific topics, themes, and concepts actually discussed
- dc:description - what the document is really about based on content
- dc:creator - actual authors, organizations, or entities mentioned
- dc:type - the real document type (legal-document, policy, manual, etc.)
- dc:format - technical format and structure
- dc:language - language and communication style
- dc:date - actual dates, time periods, or temporal context from content
- dc:coverage - geographic, temporal, or topical coverage mentioned
- dc:rights - actual rights, permissions, or legal implications discussed
- dc:source - actual sources, references, or citations in the content
- dc:relation - related documents, laws, or concepts mentioned
- dc:publisher - actual publishing entity or authority
- dc:audience - who this document is actually intended for
EXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:
For "Digital Personal Data Protection Bill 2023.pdf":
- dc:subject "data-protection-law"
- dc:subject "privacy-rights"
- dc:subject "personal-data-governance"
- dc:subject "digital-privacy-regulation"
- dc:subject "data-subject-rights"
- dc:subject "consent-management"
- dc:subject "data-breach-notification"
- dc:subject "privacy-by-design"
- dc:date "2023"
- dc:type "legal-document"
- dc:type "legislation"
- dc:coverage "India"
- dc:rights "data-subject-rights"
For "Machine Learning Research Paper.pdf":
- dc:subject "neural-networks"
- dc:subject "deep-learning-algorithms"
- dc:subject "computer-vision"
- dc:subject "image-classification"
- dc:subject "convolutional-neural-networks"
- dc:subject "transfer-learning"
- dc:type "research-paper"
- dc:type "academic-publication"
RESPONSE FORMAT:
Return ONLY valid RDF/Turtle format with this structure:
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<file://no_llm_test.pdf> dc:title "Actual Document Title from Content" .
<file://no_llm_test.pdf> dc:subject "real-topic-from-content" .
<file://no_llm_test.pdf> dc:subject "specific-concept-discussed" .
<file://no_llm_test.pdf> dc:subject "actual-theme-covered" .
<file://no_llm_test.pdf> dc:type "real-document-type" .
<file://no_llm_test.pdf> dc:description "what-document-actually-contains" .
<file://no_llm_test.pdf> dc:date "actual-dates-from-content" .
<file://no_llm_test.pdf> dc:coverage "real-geographic-temporal-context" .
Generate RDF triples based on the ACTUAL CONTENT now:
2025-10-19T05:27:38.386526Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🔗 Making request to Ollama at: http://localhost:11434
2025-10-19T05:27:38.386533Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: ⏱️ Request timeout: 30s
2025-10-19T05:27:38.386645Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📤 Full request payload: {
"model": "qwen2.5:latest",
"options": {
"max_tokens": 2000,
"temperature": 0.3,
"top_p": 0.9
},
"prompt": "You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.\n\nCRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.\n\nDOCUMENT TO ANALYZE:\nFilename: no_llm_test.pdf\nContent: Test Document \n\nANALYSIS INSTRUCTIONS:\n1. Read and understand the ACTUAL CONTENT of the document\n2. Generate 15 highly relevant RDF triples based on the real content\n3. Focus on what the document is ACTUALLY about, not generic file type tags\n4. Use Dublin Core predicates to describe the real content, topics, and themes\n5. The subject should be the file URI: <file://no_llm_test.pdf>\n6. Use proper RDF/Turtle format with namespace prefixes\n\nCONTENT-SPECIFIC ANALYSIS FOCUS:\n- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?\n- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?\n- **Specific Details**: What are the key facts, dates, numbers, or specific information?\n- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?\n- **Document Purpose**: What is this document actually trying to communicate or achieve?\n- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?\n- **Technical Content**: If technical, what specific technologies, methods, or processes?\n- **Business Content**: If business-related, what specific industries, markets, or business concepts?\n- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?\n\nDUBLIN CORE PREDICATES FOR REAL CONTENT:\n- dc:title - the actual title or main topic from the content\n- dc:subject - specific topics, themes, and concepts actually discussed\n- dc:description - what the document is really about based on content\n- dc:creator - actual authors, organizations, or entities mentioned\n- dc:type - the real document type (legal-document, policy, manual, etc.)\n- dc:format - technical format and structure\n- dc:language - language and communication style\n- dc:date - actual dates, time periods, or temporal context from content\n- dc:coverage - geographic, temporal, or topical coverage mentioned\n- dc:rights - actual rights, permissions, or legal implications discussed\n- dc:source - actual sources, references, or citations in the content\n- dc:relation - related documents, laws, or concepts mentioned\n- dc:publisher - actual publishing entity or authority\n- dc:audience - who this document is actually intended for\n\nEXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:\nFor \"Digital Personal Data Protection Bill 2023.pdf\":\n- dc:subject \"data-protection-law\"\n- dc:subject \"privacy-rights\"\n- dc:subject \"personal-data-governance\"\n- dc:subject \"digital-privacy-regulation\"\n- dc:subject \"data-subject-rights\"\n- dc:subject \"consent-management\"\n- dc:subject \"data-breach-notification\"\n- dc:subject \"privacy-by-design\"\n- dc:date \"2023\"\n- dc:type \"legal-document\"\n- dc:type \"legislation\"\n- dc:coverage \"India\"\n- dc:rights \"data-subject-rights\"\n\nFor \"Machine Learning Research Paper.pdf\":\n- dc:subject \"neural-networks\"\n- dc:subject \"deep-learning-algorithms\"\n- dc:subject \"computer-vision\"\n- dc:subject \"image-classification\"\n- dc:subject \"convolutional-neural-networks\"\n- dc:subject \"transfer-learning\"\n- dc:type \"research-paper\"\n- dc:type \"academic-publication\"\n\nRESPONSE FORMAT:\nReturn ONLY valid RDF/Turtle format with this structure:\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n@prefix dcterms: <http://purl.org/dc/terms/> .\n\n<file://no_llm_test.pdf> dc:title \"Actual Document Title from Content\" .\n<file://no_llm_test.pdf> dc:subject \"real-topic-from-content\" .\n<file://no_llm_test.pdf> dc:subject \"specific-concept-discussed\" .\n<file://no_llm_test.pdf> dc:subject \"actual-theme-covered\" .\n<file://no_llm_test.pdf> dc:type \"real-document-type\" .\n<file://no_llm_test.pdf> dc:description \"what-document-actually-contains\" .\n<file://no_llm_test.pdf> dc:date \"actual-dates-from-content\" .\n<file://no_llm_test.pdf> dc:coverage \"real-geographic-temporal-context\" .\n\nGenerate RDF triples based on the ACTUAL CONTENT now:",
"stream": false
}
2025-10-19T05:27:38.386918Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: reqwest::connect: starting new connection: http://localhost:11434/
2025-10-19T05:27:38.386959Z DEBUG hyper::client::connect::dns: resolving host="localhost"
2025-10-19T05:27:38.387208Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: hyper::client::connect::http: connecting to [::1]:11434
2025-10-19T05:27:38.387314Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: hyper::client::connect::http: connecting to 127.0.0.1:11434
2025-10-19T05:27:38.387438Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: hyper::client::connect::http: connected to 127.0.0.1:11434
2025-10-19T05:27:38.387546Z DEBUG hyper::proto::h1::io: flushed 4683 bytes
2025-10-19T05:27:53.676716Z DEBUG hyper::proto::h1::io: parsed 7 headers
2025-10-19T05:27:53.676773Z DEBUG hyper::proto::h1::conn: incoming body is content-length (291 bytes)
2025-10-19T05:27:53.676811Z DEBUG hyper::proto::h1::conn: incoming body completed
2025-10-19T05:27:53.676879Z INFO memesis::api::plugin_handler: Processing 1 files with plugin system
2025-10-19T05:27:53.676888Z INFO memesis::api::plugin_handler: Processing file 1/1: test.txt
2025-10-19T05:27:53.676938Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Starting file processing for test.txt (40 bytes, text/plain)
2025-10-19T05:27:53.676963Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Available plugins: ["date", "generic", "auto-classifier", "csv-llm", "pdf-llm", "filename", "size", "image-llm"]
2025-10-19T05:27:53.676995Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin date can handle text/plain: true
2025-10-19T05:27:53.677002Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin generic can handle text/plain: true
2025-10-19T05:27:53.677008Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin auto-classifier can handle text/plain: true
2025-10-19T05:27:53.677024Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin csv-llm can handle text/plain: false
2025-10-19T05:27:53.677030Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin pdf-llm can handle text/plain: false
2025-10-19T05:27:53.677034Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin filename can handle text/plain: true
2025-10-19T05:27:53.677039Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin size can handle text/plain: true
2025-10-19T05:27:53.677046Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Plugin image-llm can handle text/plain: false
2025-10-19T05:27:53.677052Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Found 5 plugins for MIME type text/plain
2025-10-19T05:27:53.677058Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Found 5 regular plugins for MIME type text/plain
2025-10-19T05:27:53.677077Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}:plugin_execution{plugin_name=date}: memesis::plugins::manager: Plugin date generated 4 tags
2025-10-19T05:27:53.677108Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}:plugin_execution{plugin_name=generic}: memesis::plugins::manager: Plugin generic generated 2 tags
2025-10-19T05:27:53.677150Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}:plugin_execution{plugin_name=auto-classifier}: memesis::plugins::manager: Plugin auto-classifier generated 8 tags
2025-10-19T05:27:53.677177Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}:plugin_execution{plugin_name=filename}: memesis::plugins::manager: Plugin filename generated 1 tags
2025-10-19T05:27:53.677195Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}:plugin_execution{plugin_name=size}: memesis::plugins::manager: Plugin size generated 2 tags
2025-10-19T05:27:53.677218Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Found 0 async plugins for MIME type text/plain
2025-10-19T05:27:53.677228Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Found 0 metadata extractors for MIME type text/plain
2025-10-19T05:27:53.677237Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Found 0 file processors for MIME type text/plain
2025-10-19T05:27:53.677249Z DEBUG process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: Removed 2 duplicate tags (17 -> 15)
2025-10-19T05:27:53.677254Z INFO process_file{filename=test.txt mime_type=text/plain file_size=40}: memesis::plugins::manager: File processing completed: 15 total tags generated
2025-10-19T05:27:53.677272Z INFO memesis::api::plugin_handler: Completed file test.txt in 0.00s with 0 tags
2025-10-19T05:27:53.677278Z INFO memesis::api::plugin_handler: Processed 1 files in 0.00s: 15 total tags, 0 LLM tags
2025-10-19T05:27:53.677282Z INFO memesis::api::handlers: Plugin processing completed: 1 files, 15 tags
2025-10-19T05:27:53.677425Z DEBUG hyper::proto::h1::io: flushed 3818 bytes
2025-10-19T05:27:53.677865Z DEBUG hyper::proto::h1::conn: read eof
2025-10-19T05:28:05.766451Z DEBUG hyper::proto::h1::io: parsed 7 headers
2025-10-19T05:28:05.766483Z DEBUG hyper::proto::h1::conn: incoming body is content-length (952 bytes)
2025-10-19T05:28:05.766512Z DEBUG hyper::proto::h1::conn: incoming body completed
2025-10-19T05:28:05.766607Z INFO memesis::api::plugin_handler: Processing 1 files with plugin system
2025-10-19T05:28:05.766615Z INFO memesis::api::plugin_handler: Processing file 1/1: ai_research.pdf
2025-10-19T05:28:05.766669Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Starting file processing for ai_research.pdf (525 bytes, application/pdf)
2025-10-19T05:28:05.766693Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Available plugins: ["date", "generic", "auto-classifier", "csv-llm", "pdf-llm", "filename", "size", "image-llm"]
2025-10-19T05:28:05.766707Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin date can handle application/pdf: true
2025-10-19T05:28:05.766714Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin generic can handle application/pdf: true
2025-10-19T05:28:05.766719Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin auto-classifier can handle application/pdf: true
2025-10-19T05:28:05.766735Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin csv-llm can handle application/pdf: false
2025-10-19T05:28:05.766741Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin pdf-llm can handle application/pdf: true
2025-10-19T05:28:05.766750Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin filename can handle application/pdf: true
2025-10-19T05:28:05.766756Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin size can handle application/pdf: true
2025-10-19T05:28:05.766763Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Plugin image-llm can handle application/pdf: false
2025-10-19T05:28:05.766768Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Found 6 plugins for MIME type application/pdf
2025-10-19T05:28:05.766775Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}: memesis::plugins::manager: Found 6 regular plugins for MIME type application/pdf
2025-10-19T05:28:05.766795Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=date}: memesis::plugins::manager: Plugin date generated 4 tags
2025-10-19T05:28:05.766824Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=generic}: memesis::plugins::manager: Plugin generic generated 2 tags
2025-10-19T05:28:05.766872Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=auto-classifier}: memesis::plugins::manager: Plugin auto-classifier generated 8 tags
2025-10-19T05:28:05.766929Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 🔍 PDF text extraction starting...
2025-10-19T05:28:05.766951Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF size: 525 bytes
2025-10-19T05:28:05.766957Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📋 Method 1: Direct PDF text extraction
2025-10-19T05:28:05.766973Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📄 PDF content length: 525 characters
2025-10-19T05:28:05.766999Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📝 Extracted text chunk: Artificial Intelligence Research Machine Learning Algorithms
2025-10-19T05:28:05.767010Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: 📊 Direct extraction: BT=1, ET=1, text_length=61
2025-10-19T05:28:05.767016Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}: memesis::plugins::classification::llm: ✅ Direct text extraction successful: 61 characters
2025-10-19T05:28:05.767030Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 🤖 Starting LLM analysis for file: ai_research.pdf
2025-10-19T05:28:05.767038Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 📊 Content size: 61 bytes
2025-10-19T05:28:05.767045Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 📄 Content preview: Artificial Intelligence Research Machine Learning Algorithms
2025-10-19T05:28:05.767052Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 🔧 Context: Some("PDF document")
2025-10-19T05:28:05.767060Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 🏷️ Max tags requested: Some(15)
2025-10-19T05:28:05.767070Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 📝 Generated prompt length: 4351 characters
2025-10-19T05:28:05.767077Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 📋 Full prompt: You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.
CRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.
DOCUMENT TO ANALYZE:
Filename: ai_research.pdf
Content: Artificial Intelligence Research Machine Learning Algorithms
ANALYSIS INSTRUCTIONS:
1. Read and understand the ACTUAL CONTENT of the document
2. Generate 15 highly relevant RDF triples based on the real content
3. Focus on what the document is ACTUALLY about, not generic file type tags
4. Use Dublin Core predicates to describe the real content, topics, and themes
5. The subject should be the file URI: <file://ai_research.pdf>
6. Use proper RDF/Turtle format with namespace prefixes
CONTENT-SPECIFIC ANALYSIS FOCUS:
- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?
- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?
- **Specific Details**: What are the key facts, dates, numbers, or specific information?
- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?
- **Document Purpose**: What is this document actually trying to communicate or achieve?
- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?
- **Technical Content**: If technical, what specific technologies, methods, or processes?
- **Business Content**: If business-related, what specific industries, markets, or business concepts?
- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?
DUBLIN CORE PREDICATES FOR REAL CONTENT:
- dc:title - the actual title or main topic from the content
- dc:subject - specific topics, themes, and concepts actually discussed
- dc:description - what the document is really about based on content
- dc:creator - actual authors, organizations, or entities mentioned
- dc:type - the real document type (legal-document, policy, manual, etc.)
- dc:format - technical format and structure
- dc:language - language and communication style
- dc:date - actual dates, time periods, or temporal context from content
- dc:coverage - geographic, temporal, or topical coverage mentioned
- dc:rights - actual rights, permissions, or legal implications discussed
- dc:source - actual sources, references, or citations in the content
- dc:relation - related documents, laws, or concepts mentioned
- dc:publisher - actual publishing entity or authority
- dc:audience - who this document is actually intended for
EXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:
For "Digital Personal Data Protection Bill 2023.pdf":
- dc:subject "data-protection-law"
- dc:subject "privacy-rights"
- dc:subject "personal-data-governance"
- dc:subject "digital-privacy-regulation"
- dc:subject "data-subject-rights"
- dc:subject "consent-management"
- dc:subject "data-breach-notification"
- dc:subject "privacy-by-design"
- dc:date "2023"
- dc:type "legal-document"
- dc:type "legislation"
- dc:coverage "India"
- dc:rights "data-subject-rights"
For "Machine Learning Research Paper.pdf":
- dc:subject "neural-networks"
- dc:subject "deep-learning-algorithms"
- dc:subject "computer-vision"
- dc:subject "image-classification"
- dc:subject "convolutional-neural-networks"
- dc:subject "transfer-learning"
- dc:type "research-paper"
- dc:type "academic-publication"
RESPONSE FORMAT:
Return ONLY valid RDF/Turtle format with this structure:
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<file://ai_research.pdf> dc:title "Actual Document Title from Content" .
<file://ai_research.pdf> dc:subject "real-topic-from-content" .
<file://ai_research.pdf> dc:subject "specific-concept-discussed" .
<file://ai_research.pdf> dc:subject "actual-theme-covered" .
<file://ai_research.pdf> dc:type "real-document-type" .
<file://ai_research.pdf> dc:description "what-document-actually-contains" .
<file://ai_research.pdf> dc:date "actual-dates-from-content" .
<file://ai_research.pdf> dc:coverage "real-geographic-temporal-context" .
Generate RDF triples based on the ACTUAL CONTENT now:
2025-10-19T05:28:05.767166Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 🔗 Making request to Ollama at: http://localhost:11434
2025-10-19T05:28:05.767173Z INFO process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: ⏱️ Request timeout: 30s
2025-10-19T05:28:05.767294Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: memesis::plugins::classification::llm: 📤 Full request payload: {
"model": "qwen2.5:latest",
"options": {
"max_tokens": 2000,
"temperature": 0.3,
"top_p": 0.9
},
"prompt": "You are an expert content analyst specializing in deep document understanding and semantic analysis. Your task is to analyze the ACTUAL CONTENT of the document and generate highly relevant, contextually accurate RDF triples.\n\nCRITICAL: You must analyze the REAL CONTENT, not just the filename. Generate tags that reflect what the document actually contains and discusses.\n\nDOCUMENT TO ANALYZE:\nFilename: ai_research.pdf\nContent: Artificial Intelligence Research Machine Learning Algorithms \n\nANALYSIS INSTRUCTIONS:\n1. Read and understand the ACTUAL CONTENT of the document\n2. Generate 15 highly relevant RDF triples based on the real content\n3. Focus on what the document is ACTUALLY about, not generic file type tags\n4. Use Dublin Core predicates to describe the real content, topics, and themes\n5. The subject should be the file URI: <file://ai_research.pdf>\n6. Use proper RDF/Turtle format with namespace prefixes\n\nCONTENT-SPECIFIC ANALYSIS FOCUS:\n- **Actual Topics**: What subjects, themes, and concepts are discussed in the content?\n- **Real Entities**: What people, organizations, laws, products, or concepts are mentioned?\n- **Specific Details**: What are the key facts, dates, numbers, or specific information?\n- **Contextual Relevance**: How does this content relate to real-world applications, personal impact, or practical use?\n- **Document Purpose**: What is this document actually trying to communicate or achieve?\n- **Legal/Regulatory Content**: If it's legal, what specific laws, regulations, or legal concepts?\n- **Technical Content**: If technical, what specific technologies, methods, or processes?\n- **Business Content**: If business-related, what specific industries, markets, or business concepts?\n- **Personal Relevance**: How might this content affect individuals, privacy, rights, or daily life?\n\nDUBLIN CORE PREDICATES FOR REAL CONTENT:\n- dc:title - the actual title or main topic from the content\n- dc:subject - specific topics, themes, and concepts actually discussed\n- dc:description - what the document is really about based on content\n- dc:creator - actual authors, organizations, or entities mentioned\n- dc:type - the real document type (legal-document, policy, manual, etc.)\n- dc:format - technical format and structure\n- dc:language - language and communication style\n- dc:date - actual dates, time periods, or temporal context from content\n- dc:coverage - geographic, temporal, or topical coverage mentioned\n- dc:rights - actual rights, permissions, or legal implications discussed\n- dc:source - actual sources, references, or citations in the content\n- dc:relation - related documents, laws, or concepts mentioned\n- dc:publisher - actual publishing entity or authority\n- dc:audience - who this document is actually intended for\n\nEXAMPLES OF GOOD CONTENT-SPECIFIC TAGS:\nFor \"Digital Personal Data Protection Bill 2023.pdf\":\n- dc:subject \"data-protection-law\"\n- dc:subject \"privacy-rights\"\n- dc:subject \"personal-data-governance\"\n- dc:subject \"digital-privacy-regulation\"\n- dc:subject \"data-subject-rights\"\n- dc:subject \"consent-management\"\n- dc:subject \"data-breach-notification\"\n- dc:subject \"privacy-by-design\"\n- dc:date \"2023\"\n- dc:type \"legal-document\"\n- dc:type \"legislation\"\n- dc:coverage \"India\"\n- dc:rights \"data-subject-rights\"\n\nFor \"Machine Learning Research Paper.pdf\":\n- dc:subject \"neural-networks\"\n- dc:subject \"deep-learning-algorithms\"\n- dc:subject \"computer-vision\"\n- dc:subject \"image-classification\"\n- dc:subject \"convolutional-neural-networks\"\n- dc:subject \"transfer-learning\"\n- dc:type \"research-paper\"\n- dc:type \"academic-publication\"\n\nRESPONSE FORMAT:\nReturn ONLY valid RDF/Turtle format with this structure:\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n@prefix dcterms: <http://purl.org/dc/terms/> .\n\n<file://ai_research.pdf> dc:title \"Actual Document Title from Content\" .\n<file://ai_research.pdf> dc:subject \"real-topic-from-content\" .\n<file://ai_research.pdf> dc:subject \"specific-concept-discussed\" .\n<file://ai_research.pdf> dc:subject \"actual-theme-covered\" .\n<file://ai_research.pdf> dc:type \"real-document-type\" .\n<file://ai_research.pdf> dc:description \"what-document-actually-contains\" .\n<file://ai_research.pdf> dc:date \"actual-dates-from-content\" .\n<file://ai_research.pdf> dc:coverage \"real-geographic-temporal-context\" .\n\nGenerate RDF triples based on the ACTUAL CONTENT now:",
"stream": false
}
2025-10-19T05:28:05.767616Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: reqwest::connect: starting new connection: http://localhost:11434/
2025-10-19T05:28:05.767669Z DEBUG hyper::client::connect::dns: resolving host="localhost"
2025-10-19T05:28:05.768007Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: hyper::client::connect::http: connecting to [::1]:11434
2025-10-19T05:28:05.768133Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: hyper::client::connect::http: connecting to 127.0.0.1:11434
2025-10-19T05:28:05.768276Z DEBUG process_file{filename=ai_research.pdf mime_type=application/pdf file_size=525}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=ai_research.pdf}: hyper::client::connect::http: connected to 127.0.0.1:11434
2025-10-19T05:28:05.768448Z DEBUG hyper::proto::h1::io: flushed 4730 bytes
2025-10-19T05:28:07.760503Z DEBUG hyper::proto::h1::io: parsed 3 headers
2025-10-19T05:28:07.760652Z DEBUG hyper::proto::h1::conn: incoming body is chunked encoding
2025-10-19T05:28:07.760760Z DEBUG hyper::proto::h1::decode: incoming chunked header: 0x1AAA (6826 bytes)
2025-10-19T05:28:07.760839Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📡 Response status: 200 OK (took 29.374034125s)
2025-10-19T05:28:07.761016Z DEBUG hyper::proto::h1::conn: incoming body completed
2025-10-19T05:28:07.761293Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📥 Response received: 6826 characters (took 29.374034125s)
2025-10-19T05:28:07.761372Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📄 Full response: {"model":"qwen2.5:latest","created_at":"2025-10-19T05:28:07.756756Z","response":"@prefix dc: \u003chttp://purl.org/dc/elements/1.1/\u003e .\n@prefix dcterms: \u003chttp://purl.org/dc/terms/\u003e .\n\n\u003cfile://no_llm_test.pdf\u003e dc:title \"Test Document\" .\n\u003cfile://no_llm_test.pdf\u003e dc:subject \"testing\" .\n\u003cfile://no_llm_test.pdf\u003e dc:subject \"document analysis\" .\n\u003cfile://no_llm_test.pdf\u003e dc:subject \"content understanding\" .\n\u003cfile://no_llm_test.pdf\u003e dc:type \"test-document\" .\n\u003cfile://no_llm_test.pdf\u003e dc:description \"This document is a test to analyze the actual content and generate RDF triples based on it.\" .\n\u003cfile://no_llm_test.pdf\u003e dc:date \"2023-10-05\" .\n\u003cfile://no_ll_m_test.pdf\u003e dc:coverage \"general-context\" .","done":true,"done_reason":"stop","context":[151644,8948,198,2610,525,1207,16948,11,3465,553,54364,14817,13,1446,525,264,10950,17847,13,151645,198,151644,872,198,2610,525,458,6203,2213,18237,57294,304,5538,2197,8660,323,41733,6358,13,4615,3383,374,311,23643,279,21116,16383,35768,315,279,2197,323,6923,7548,9760,11,2266,1832,13382,68399,88561,382,8973,46817,25,1446,1969,23643,279,25272,35768,11,537,1101,279,3899,13,19813,9492,429,8708,1128,279,2197,3520,5610,323,34334,382,44097,5146,65757,40209,36,510,20759,25,902,42995,76,4452,15995,198,2762,25,3393,11789,4710,1093,969,74464,1964,92531,510,16,13,4457,323,3535,279,21116,16383,35768,315,279,2197,198,17,13,19813,220,16,20,7548,9760,68399,88561,3118,389,279,1931,2213,198,18,13,25806,389,1128,279,2197,374,21116,52,28455,911,11,537,13954,1034,943,9492,198,19,13,5443,32877,9518,80027,311,7512,279,1931,2213,11,13347,11,323,21386,198,20,13,576,3832,1265,387,279,1034,16020,25,366,1192,1110,2152,42995,76,4452,15995,397,21,13,5443,6169,68399,16731,21744,3561,448,4473,62576,271,67872,6222,10943,33635,65757,74464,434,66224,510,12,3070,28123,40894,95518,3555,14878,11,21386,11,323,18940,525,14078,304,279,2213,5267,12,3070,12768,52249,95518,3555,1251,11,11104,11,6872,11,3871,11,476,18940,525,9733,5267,12,3070,47514,12309,95518,3555,525,279,1376,13064,11,12713,11,5109,11,476,3151,1995,5267,12,3070,1972,928,1032,32094,95518,2585,1558,419,2213,28143,311,1931,30084,8357,11,4345,5421,11,476,14976,990,5267,12,3070,7524,29045,95518,3555,374,419,2197,3520,4460,311,19032,476,11075,5267,12,3070,52786,14,3477,37120,8883,95518,1416,432,594,5777,11,1128,3151,6872,11,14305,11,476,5777,18940,5267,12,3070,62226,8883,95518,1416,10916,11,1128,3151,14310,11,5413,11,476,11364,5267,12,3070,22727,8883,95518,1416,2562,13904,11,1128,3151,19102,11,11725,11,476,2562,18940,5267,12,3070,34027,1032,32094,95518,2585,2578,419,2213,7802,7775,11,12345,11,3188,11,476,7298,2272,1939,35,14119,687,50183,393,6504,1317,30304,4613,25272,35768,510,12,19402,58649,481,279,5042,2265,476,1887,8544,504,279,2213,198,12,19402,25,11501,481,3151,13347,11,21386,11,323,18940,3520,14078,198,12,19402,93323,481,1128,279,2197,374,2167,911,3118,389,2213,198,12,19402,25,32398,481,5042,12014,11,11104,11,476,14744,9733,198,12,19402,46445,481,279,1931,2197,943,320,6428,82233,11,4842,11,11376,11,4992,28175,12,19402,25,2243,481,10916,3561,323,5944,198,12,19402,25,11528,481,4128,323,10535,1707,198,12,19402,93263,481,5042,12713,11,882,18346,11,476,35915,2266,504,2213,198,12,19402,25,54250,481,45039,11,35915,11,476,65276,10191,9733,198,12,19402,42352,82,481,5042,3188,11,8541,11,476,5777,24154,14078,198,12,19402,25,2427,481,5042,8173,11,15057,11,476,51846,304,279,2213,198,12,19402,25,22221,481,5435,9293,11,6872,11,476,18940,9733,198,12,19402,44389,15182,481,5042,22913,5387,476,11198,198,12,19402,25,7880,1835,481,879,419,2197,374,3520,10602,369,271,95875,50,3008,21722,35768,6222,10943,33635,21494,50,510,2461,330,38112,19207,2885,19171,8596,220,17,15,17,18,15995,4660,12,19402,25,11501,330,691,9838,39141,30312,698,12,19402,25,11501,330,46821,86556,698,12,19402,25,11501,330,29612,13945,2371,6706,681,698,12,19402,25,11501,330,57269,12,46821,32163,2914,698,12,19402,25,11501,330,691,17967,583,86556,698,12,19402,25,11501,330,6254,306,54785,698,12,19402,25,11501,330,691,1455,22606,90724,698,12,19402,25,11501,330,46821,14319,46017,698,12,19402,93263,330,17,15,17,18,698,12,19402,46445,330,6428,82233,698,12,19402,46445,330,1937,58221,698,12,19402,25,54250,330,33548,698,12,19402,42352,82,330,691,17967,583,86556,1837,2461,330,21605,20909,8319,17862,15995,4660,12,19402,25,11501,330,811,4176,56732,82,698,12,19402,25,11501,330,32880,70756,18779,18980,698,12,19402,25,11501,330,43111,8273,1816,698,12,19402,25,11501,330,1805,14800,2404,698,12,19402,25,11501,330,12027,3214,278,39978,4176,56732,82,698,12,19402,25,11501,330,24188,70756,698,12,19402,46445,330,60464,76719,698,12,19402,46445,330,90256,56471,367,1837,67783,25223,52225,510,5598,26687,2697,68399,16731,21744,3561,448,419,5944,510,31,11849,19402,25,366,1254,1110,79,1085,2659,97333,14,21423,14,16,13,16,9685,16448,31,11849,294,74069,1011,25,366,1254,1110,79,1085,2659,97333,96763,9685,6762,27,1192,1110,2152,42995,76,4452,15995,29,19402,58649,330,28123,11789,10869,504,8883,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,7951,85700,38051,6808,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,51240,14859,1484,51665,58842,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,11944,33185,83308,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,46445,330,7951,82233,10604,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,93323,330,12555,82233,12,73028,12,13372,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,93263,330,11944,1737,973,38051,6808,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,54250,330,7951,12,709,12679,68190,9819,63633,1,6762,31115,68399,88561,3118,389,279,21116,16383,35768,1431,25,151645,198,151644,77091,198,31,11849,19402,25,366,1254,1110,79,1085,2659,97333,14,21423,14,16,13,16,9685,16448,31,11849,294,74069,1011,25,366,1254,1110,79,1085,2659,97333,96763,9685,6762,27,1192,1110,2152,42995,76,4452,15995,29,19402,58649,330,2271,11789,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,8840,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,6062,6358,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,25,11501,330,1796,8660,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,46445,330,1944,82233,1,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,93323,330,1986,2197,374,264,1273,311,23643,279,5042,2213,323,6923,68399,88561,3118,389,432,1189,16448,27,1192,1110,2152,42995,76,4452,15995,29,19402,93263,330,17,15,17,18,12,16,15,12,15,20,1,16448,27,1192,1110,2152,42995,717,4452,15995,29,19402,25,54250,330,24595,63633,1,659],"total_duration":29369025875,"load_duration":58653041,"prompt_eval_count":1047,"prompt_eval_duration":7500591916,"eval_count":190,"eval_duration":21809349459}
2025-10-19T05:28:07.762309Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🔍 Parsing Ollama JSON response...
2025-10-19T05:28:07.763435Z INFO process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 📊 JSON parsing successful, analyzing response structure...
2025-10-19T05:28:07.764067Z DEBUG process_file{filename=no_llm_test.pdf mime_type=application/pdf file_size=463}:plugin_execution{plugin_name=pdf-llm}:llm_analysis{model=qwen2.5:latest filename=no_llm_test.pdf}: memesis::plugins::classification::llm: 🔍 Full JSON response: {
"context": [
151644,
8948,
198,
2610,
525,
1207,
16948,
11,
3465,
553,
54364,
14817,
13,
1446,
525,
264,
10950,
17847,
13,
151645,
198,
151644,
872,
198,
2610,
525,
458,
6203,
2213,
18237,
57294,
304,
5538,
2197,
8660,
323,
41733,
6358,
13,
4615,
3383,
374,
311,
23643,
279,
21116,
16383,
35768,
315,
279,
2197,
323,
6923,
7548,
9760,
11,
2266,
1832,
13382,
68399,
88561,
382,
8973,
46817,
25,
1446,
1969,
23643,
279,
25272,
35768,
11,
537,
1101,
279,
3899,
13,
19813,
9492,
429,
8708,
1128,
279,
2197,
3520,
5610,
323,
34334,
382,
44097,
5146,
65757,
40209,
36,
510,
20759,
25,
902,
42995,
76,
4452,
15995,
198,
2762,
25,
3393,
11789,
4710,
1093,
969,
74464,
1964,
92531,
510,
16,
13,
4457,
323,
3535,
279,
21116,
16383,
35768,
315,
279,
2197,
198,
17,
13,
19813,
220,
16,
20,
7548,
9760,
68399,
88561,
3118,
389,
279,
1931,
2213,
198,
18,
13,
25806,
389,
1128,
279,
2197,
374,
21116,
52,
28455,
911,
11,
537,
13954,
1034,
943,
9492,
198,
19,
13,
5443,
32877,
9518,
80027,
311,
7512,
279,
1931,
2213,
11,
13347,
11,
323,
21386,
198,
20,
13,
576,
3832,
1265,
387,
279,
1034,
16020,
25,
366,
1192,
1110,
2152,
42995,
76,
4452,
15995,
397,
21,
13,
5443,
6169,
68399,
16731,
21744,
3561,
448,
4473,
62576,
271,
67872,
6222,
10943,
33635,
65757,
74464,
434,
66224,
510,
12,
3070,
28123,
40894,
95518,
3555,
14878,
11,
21386,
11,
323,
18940,
525,
14078,
304,
279,
2213,
5267,
12,
3070,
12768,
52249,
95518,
3555,
1251,
11,
11104,