Repository navigation
Replies: 1 comment 5 replies
|
My Notion notes for use of Paperless-GPT 0.25.1 will probably be helpful to you. In summary: I've come up with a group of tags that guides you through two rounds of LLM calls. First for OCR, and then for classify. I then strip these extra tags via workflow, as tags make a hacky state machine / DAG.
(Default) Workflows for LLM OCR and Classify combinationAll paperless workflows so far are triggered on consume, or via tags. Tag Auto Matching MUST be turned off in Paperless-NGX. Tag triggered workflows are setup with tags that must be included, and tags that must not be included. This acts like a state machine to keep everything working:
|
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment



Uh oh!
There was an error while loading. Please reload this page.
So just a month ago, I started going paperless. I loaded up a Paperless stack on my Synology DS1821 I got from Marius Hosting using Portainer. It has the normal stuff. I did minimal setup, started scanning, made some iterative changes, and found myself more happy than frustrated with my setup. It still required a bit of care and feeding. I pumped nearly a thousand documents in already.
On a whim during a commute, I asked Gemini if there were any mods for PaperlessNGX that used a previously trained model for categorizing, tagging, etc. It sent me down a wonderful rabbithole of locally hosted models for OCR via Paperless-GPT and document processing via Paperless-AI. I forget the link, but it was the ollama for Paperless-AI and one of the models for OCR. It made sense, but seemed a bit slow and limiting since I running everything via docker on Synology. It wasn't really giving me the answers I was looking for. The things it was focusing on just didn't make sense.
So after another commute, where I was exploring what kinds of changes I should make, Gemini recommended that I revisit scaling back to just Paperless-GPT and using a cloud hosted model. I asked if Gemini could do it, it said yes and told me to do the paid tier to ensure my data was not used to train any models.
So I gave it a rip. Wow. Very nice OCR results. Not sure I understand what I am doing with the document processing. That is where I need help. So here is my docker compose that is running in my paperless stack.
I setup my workflow to tag new documents with.

Based on everything I can tell, all new documents are being processed with Google's OCR no problem. I couldn't tell if the document processing was working. When I did the paperless-gpt-manual for about 100 documents, it gave me outstanding results that aligned with how I was using document types already and tags. I know how the prompts work, so that make sense on why that works so well.
So on a recent whim, I went and assigned all 960 documents to paperless-gpt-auto and paperless-gpt-ocr-auto. 959 still have the paperless-gpt-auto tag. 809 have paperless-gpt-ocr-complete. Now I haven't really dived into it much, but when I look at some of the results, I don't think it processed any documents. It only OCR'd them. The new documents I have added since then have more tags than I am expecting and I can't tell if it is from the model or not because I have been running with scissors. I realized that all of the correspondents, tags, and document types I had established prior to incorporating real AI models all had the default NGX provided models settings on. So a bunch of the manual training I did is now incorporated into NGX's models and it is just bad.
So I need to slow down and figure out what to do next. I kind of need help with a plan of attack. I am assuming I need to figure out a way to test and see if the the normal consumption is getting through both the Gemini OCR and document processing. I am assuming logs, but unsure of where to go for that and what to look for. I assume I will want to remove all of my currently assigned Tags and Document Types, and reset all of the entries to be None:Disabled Matching. Is my docker compose correct? Anything else obvious that I missed? Any other best practices?
Thanks!
All reactions