-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
229 lines (193 loc) · 7.79 KB
/
Copy pathconfig.example.yaml
File metadata and controls
229 lines (193 loc) · 7.79 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
# Basis-URL deiner Paperless-ngx Instanz (ohne abschließenden Slash)
paperless_url: "http://localhost:8000"
# API-Token aus Paperless (Benutzerprofil -> API Tokens)
paperless_token: "PASTE_PAPERLESS_TOKEN"
# API-Key für OpenAI-kompatiblen Anbieter (z. B. OpenAI, OpenRouter, Local Gateway)
ai_api_key: "PASTE_AI_KEY"
# Modellname beim jeweiligen Anbieter
ai_model: "gpt-4.1-mini"
# OpenAI-kompatible Basis-URL
# OpenAI: https://api.openai.com/v1
# Lokale Gateways sind ebenfalls möglich
ai_base_url: "https://api.openai.com/v1"
# Maximale Anzahl Dokumente pro Lauf
max_documents: 25
# true = nur anzeigen, nichts in Paperless zurückschreiben
dry_run: true
# Falls true: fehlende Tags/Typen/Korrespondenten/Ablagepfade automatisch anlegen
create_missing_entities: true
# Mindest-Confidence der KI (0-1), darunter wird übersprungen
confidence_threshold: 0.70
# API Timeout für Paperless und KI-Requests
request_timeout_seconds: 30
# Datei für Laufmetriken (Tokens/Kosten), wird pro Lauf aktualisiert
metrics_file: "run_metrics.json"
# DEBUG, INFO, WARNING, ERROR
log_level: "INFO"
# Optionaler Vorab-Check auf verfügbare API-Tokens über RateLimit-Header.
# Hinweis: Das ist NICHT das ChatGPT-Web-Abo-Kontingent.
enable_token_precheck: false
# Mindestanzahl verbleibender Tokens laut x-ratelimit-remaining-tokens Header.
# Nur relevant, wenn enable_token_precheck=true.
min_remaining_tokens: 1500
# Optional: Kostenmodell (EUR pro 1.000 Tokens)
# Trage hier die Werte deines Anbieters/Modells ein.
input_cost_per_1k_tokens_eur: 0.0
output_cost_per_1k_tokens_eur: 0.0
# Optional: Zusätzliche Regeln für die KI-Klassifizierung (mehrzeilig möglich).
# Diese Regeln werden als Ergänzung zum Standard-Prompt genutzt.
custom_prompt_instructions: |
Bitte lege so wenig neue Tags an wie möglich.
Nutze bestehende Speicherpfade bevorzugt.
basis_config:
people:
owner:
full_name: "Max Mustermann"
aliases: []
address:
street: "Musterstraße 1"
postal_code: "12345"
city: "Musterstadt"
contact:
mobile: "0123456789"
tax:
tax_number: ""
household:
children: []
relatives: []
contacts: []
organizations:
employer_current:
name: ""
preferred_storage_path: ""
employer_former:
name: ""
locations: []
preferred_storage_path: ""
only_if_clear_business_context: true
clubs: []
identifiers:
meters: []
classification_rules:
document_type:
invoice_addressed_to_owner: "Rechnung"
legal_documents_force_type:
type: "Rechtsanwalt"
trigger_terms: ["Rechtsanwalt", "Gericht", "Klage", "Beschluss", "Einspruch", "Aktenzeichen"]
correspondent:
normalize:
- if_contains_any: ["Hotel", "Pension", "Unterkunft", "Übernachtung"]
set_to: "Hotel"
storage_path:
mappings: []
default: "Privat"
tags:
add_year_tag_for_invoices: true
add_customer_number_tag_for_contracts: true
legal_case_tag_prefers_case_reference: true
keep_sparse: true
date:
prefer_document_date_over_upload_date: true
guardrails:
forbidden_path_assignments: []
# Optional: Nur Dokumente mit diesem Tag verarbeiten (z. B. "#NEU").
# Leer lassen = kein Tag-Filter.
process_only_tag: ""
# Wenn true, werden vorhandene Dokumenttypen/Korrespondenten/Speicherpfade
# als Kontext an die KI übergeben, damit bestehende Werte bevorzugt werden.
include_existing_entities_in_prompt: true
# KI-Notizen in Paperless-Notizfeld aktivieren
enable_ai_notes: true
# Maximale Länge der KI-Begründung in der Notiz
ai_notes_max_chars: 800
# Optional: Kurz-Zusammenfassung in KI-Notizen
enable_ai_note_summary: true
ai_note_summary_max_chars: 220
# Optional: Benutzerdefinierte Felder für Verträge und Lohnabrechnungen
# automatisch aus dem Dokument extrahieren und direkt in Paperless speichern.
# Das ist besonders nützlich, wenn nachgelagerte Systeme wie SecondBrain mit
# diesen strukturierten Werten weiterarbeiten sollen.
enable_custom_field_enrichment: false
# Falls true: fehlende Paperless-Custom-Fields bei Bedarf automatisch anlegen.
# Angelegt werden nur Felder aus dem festen Standard-Katalog dieses Projekts.
create_missing_custom_fields: true
# Standard-Katalog der automatisch befüllten Felder:
# Verträge:
# - Vertragsnummer
# - Kundennummer
# - Vertragsbeginn
# - Vertragsende
# - Kündigen bis
# - Monatliche Aufwendungen
#
# Lohnabrechnungen:
# - Brutto
# - Netto
# - Boni
# - Sonstige Bezüge
# - Steuern/Sozialabgaben
# - Sonstige Abzüge
# - Abgaben gesamt
# Optional: Bereits in Paperless angelegte `sb_`-Custom-Fields für SecondBrain
# aus der KI-Klassifikation befüllen. Diese Felder werden NICHT automatisch
# angelegt, sondern nur genutzt, wenn sie in Paperless bereits vorhanden sind.
# Für Kalenderübergaben an SecondBrain sind besonders relevant:
# - sb_calendar_date (date): Termin-, Einladungs-, Frist- oder Verhandlungsdatum
# - sb_calendar_time (string): optionale Uhrzeit im Format HH:MM
# - sb_calendar_type (select): Termin, Einladung, Frist, Gericht, Zahlung,
# Erinnerung oder Sonstiges
# - sb_calendar_title (string): kurzer Titel für den Kalendereintrag
# - sb_calendar_location (string): Ort, Raum oder Adresse des Kalendereintrags
# - sb_calendar_events (string): kompakte JSON-Liste aller relevanten Termine
enable_secondbrain_custom_fields: false
# Bestehende `sb_`-Feldwerte standardmäßig NICHT überschreiben.
secondbrain_custom_fields_overwrite_existing: false
# Falls die KI für ein bereits vorhandenes `sb_`-Feld keinen belastbaren Wert
# liefern kann, kann das Feld optional leer an das Dokument angehängt werden.
secondbrain_custom_fields_attach_empty_when_unknown: false
# Nur `sb_`-Vorschläge oberhalb dieses Confidence-Schwellwertes werden nach
# Paperless geschrieben.
secondbrain_custom_fields_confidence_threshold: 0.70
# Fehlende `sb_`-Felder im Paperless-System im Log sichtbar machen, aber den
# Dokumentlauf nicht abbrechen.
secondbrain_custom_fields_log_missing_fields: true
# Alternativ koennen dieselben Optionen auch gruppiert notiert werden:
# secondbrain_custom_fields:
# enabled: true
# overwrite_existing: false
# attach_empty_when_unknown: false
# confidence_threshold: 0.70
# log_missing_fields: true
# Steuerorientierte Zusatzanalyse fuer private deutsche Einkommensteuerfaelle.
# Diese Funktion greift zusaetzlich zur normalen Klassifikation und erzeugt
# strukturierte Exporte fuer manuelle Weiterarbeit, z. B. Richtung WISO Steuer.
enable_tax_enrichment: false
# Zielverzeichnis fuer Steuer-Exporte. Pro Steuerjahr wird ein Unterordner mit
# tax_export.json und tax_review.csv angelegt.
tax_export_dir: "tax_exports"
# Steuerjahre, fuer die Exporte geschrieben werden sollen.
# Leer = alle erkannten Jahre exportieren.
tax_export_years:
- 2025
# Optional: Bereits mit KI-Tag versehene Dokumente einmal nur durch die
# Steuerpruefung laufen lassen, ohne die normale Dokument-Klassifikation erneut
# auszufuehren. Nützlich fuer Altbestände.
tax_process_ki_tagged_documents: false
# Optional: Eigener KI-Provider nur fuer Tax Enrichment.
# So kann die Hauptklassifikation weiter auf einem Cloud-Modell laufen,
# waehrend die steuerliche Extraktion auf einem lokalen OpenAI-kompatiblen
# Endpoint wie Ollama/vLLM auf dem Unraid-Server ausgefuehrt wird.
# Wenn diese Felder leer bleiben, werden automatisch ai_api_key, ai_model und
# ai_base_url des Hauptpfads verwendet.
tax_ai_api_key: "<AI_API_KEY_ODER_DUMMY>"
tax_ai_model: "gpt-4.1-mini"
tax_ai_base_url: "https://api.openai.com/v1"
# Optional: Freitext mit privatem Steuerkontext fuer die Steuer-KI.
# Beispiel: verheiratet/getrennt, Kinder mit Alter, Betreuungsmodell,
# Haushaltszuordnung, Pflege-/Unterhaltskonstellationen.
tax_personal_context: |
Steuerpflichtiger: Max Mustermann
Familienstand:
Kinder:
Betreuungsmodell:
Sonstige steuerlich wichtige Hinweise: