Dr.DOC Web hat seit 01.07.2025 einen MCP Server (Model Context Protocol) integriert.
Dadurch können Sie durch ein KI Modell Dr.DOC Funktionen auswählen, deren Funktions-Parameter generieren lassen und anschließend vom Client ausführen lassen.
https://drdoc.com/node/de/products/web/doku/ai-kuenstliche-intelligenz/mcp
Datensatz laden, in der Maske rechts auf "Dokument AI"
Ab Dr.DOC Web V105 / 08.08.2025
Beim Dokumente Archivieren wird:
Die Magische Archivierung wählt aus allen Document Encodern (siehe unten "Einzelne Document Encoder erstellen/definieren je Prozess"), den passendsten Document Encoder aus.
Geben Sie zur Aktivierung der magischen Archivierung folgende Werte im Document Encoder (rekursive Archivierung) in den Einstellungen für config/recursive/DEFAULT_AI an:
I.d.R. müssen Sie nur das Ollama Endpint, Model und Ihr Standard-Archiv wählen.
| Property Name | Property Value Beispiel-Wert |
Beschreibung |
|---|---|---|
| Enabled | false | |
| Selector_ArchiveName | doc | Standard-Archiv für die Magische Archivierung, falls kein passender Document Encoder gefunden wurde. |
| AI_Enabled | true | Aktiviert die magische Archivierung |
| AI_OllamaEndpoint | http://drdoc.com:8080 | Ollama Endopoint |
| AI_OllamaModel | Ollama Model | |
| AI_DocumentLabel | General Document | Pflichtfeld: Bezeichner, falls kein falls kein passender Document Encoder gefunden wurde. |
| AI_DocumentDescription | Optional: Beschreibung, falls kein falls kein passender Document Encoder gefunden wurde. |
Definieren Sie pro Prozess/Vorgangstyp/Verarbeitungstyp einen Document Encoder.
Dabei kann wieder die KI zum Verschlagworten genutzt werden (siehe unten "Automatische KI Verschlagwortung innerhalb eines Archivs").
Es sind bereits zahlreiche Vorlagen angelegt, die kopiert oder überladen werden können.
Damit die magische Archivierung einen Document Encoder wählen kann, MÜSSEN folgende Document Encoder Properties gesetzt sein:
Enabled: trueAI_DocumentLabel: Kurzbezeichner MUSS vorhandenProto_Extension: Der Prototype MUSS zum Dateinamen passtSelector_ArchiveName: ein Archiv Name sollte vorhanden sein, und das Archiv existieren, andernfalls wird das Archiv aus config/recursive/DEFAULT_AI gewählt.Beispiel:
Anbei ein Beispiel für PDFs
Wann wird der Document Encoder ausgeführt? / via Selektor:
z.B. der Feldauswahl für Feldinhaltsspezifische Einstellungen "IN_INVOICE"
z.B. Feldauswahl für ASCII Import Definition "AI_IN_INVOICE"
Optional: Anlegen der Feldauswahl für Feldvorbelegung "IN_INVOICE"
Legen Sie nun einen Document Encoder an, in denen die KI Archivierung im Speziellen gesteuert werden soll.
via Einstellungen -> Document Encoder (rekursive Archivierung)
Überladen (vererben) Sie vom Document Encoder, und geben Sie als Prototype an "config/recursive/DEFAULT_AI", damit Sie das Ollama Model etc. nicht mehrfach angeben müssen.
Bitte beachten Sie, dass die Pflichtfelder über Vererbung geladen werden können und nicht explizit angegeben werden müssen.
| Property Name | Pflichtfeld | Property Value Beispiel-Wert |
Beschreibung |
|---|---|---|---|
| Enabled | x | true | |
| Proto_Extension | x | *.pdf|*.tif|*.tiff | Selektor für Dokument-Dateitypen (Extensions) |
| - | - | ||
| Selector_ArchiveName | x | doc | Archiv Name |
| Selector_Filename | !AGB*&!*Geschäftsbedingungen*&!*Datenschutz* | Dateinamen filtern | |
| Selector_FieldSelectionNames | IN_INVOICE | Bezeichner für Feldinhaltsspezifische Feldauswahl für Selector | |
| Selector_FieldSelectionType | FIELDCONTENT | Typ der Feldauswahl für Selector | |
| - | - | ||
| AI_Enabled | x | true | Aktiviert die magische Archivierung könnte z.B. vom Prototype config/recursive/DEFAULT_AI geladen werden |
| AI_OllamaEndpoint | x | http://drdoc.com:8080 | Ollama Endopoint könnte z.B. vom Prototype config/recursive/DEFAULT_AI geladen werden |
| AI_OllamaModel | x | Ollama Model könnte z.B. vom Prototype config/recursive/DEFAULT_AI geladen werden |
|
| - | - | ||
| AI_DocumentLabel | x | Eingangsrechnung | Pflichtfeld: Bezeichner |
| AI_DocumentDescription | Rechnung an Empfänger Firma Mustermann GmbH | Optional: Beschreibung | |
| AI_MapFieldSelectionName | AI_IN_INVOICE | Bezeichner einer ASCII Import Feldauswahl mit Feldbeschreibungen. Default: DD_FIELD_DESC |
|
| AI_OverwriteMetaInfo | true | KI kann Meta-Info Feldwerte überschreiben | |
| AI_MaxPagesCount | 5 | Maximal 5 Seiten verarbeiten | |
| - | - | ||
| Action | CreateDocument | Dokument erstellen mit neuer Meta-Info | |
| Action_FieldPreselectionName | IN_INVOICE | Feldauswahl für Feldvorbelegung, bestimmte Feldwerte vorbelegen |
Ollama ist ein Tool für die lokale Ausführung großer neuronaler Netzmodelle / LLMs. Der Ollama Endpoint kann ein anderer Server sein als der, auf dem Dr.DOC installiert ist (OLLAMA_HOST). Es ist eine Ausführung des Ollama Servers im Rechenzentrum oder geeignetem Server im Unternehmen möglich.
Es wird eine große Zahl von KI Modellen angeboten, mit attraktiven Lizenzmodellen für die kommerzielle Nutzung (z.B. MIT Lizenz).
Für wenig erfahrene Administratoren, wenig GPU Leistung und wenig Linux Erfahrung empfehlen wir die Windows Installation. Bitte prüfen Sie die verfügbaren Treiber für Ihre Grafikkarte/GPU/TPU.
Bitte beachten Sie die erforderlichen Ressourcen (z.B. VRAM, RAM) für das gewählte Ollama KI Modell. Das Modell sollte für gute Performance vollständig ins VRAM geladen werden können.
Die GPU brauch ca. ein VRAM der Größe: Model Size * (1+25%)
Je nach Problem/Fragestellung ist es sehr hilfreich, die Context-Länge (in Einheit Tokens) an Ihre konkrete Fragestellung anzupassen.
z.B. mitOLLAMA_CONTEXT_LENGTHodernum_ctx
Ca. 0,4 bis 0,25 Tokens pro Zeichen. Einen guten Überglick gibt: https://platform.openai.com/tokenizer
1. Installieren Sie ollama auf einem geeigneten Server, z.B. mit GPU und installiertem CUDA.
https://ollama.com/download/windows
Es kann eine andere Maschine sein, als die, auf der Dr.DOC Web läuft.
2. ggf. Ollama Parameter ändern
2.1. Option A: Über Umgebungsvariablen:
setx OLLAMA_MODELS "D:\ollama\models" /M
setx OLLAMA_HOST "192.168.111.21:8080" /M
# comma separated list of allowed origins
setx OLLAMA_ORIGINS "http://192.168.100.*,http://192.168.200.*" /M
# The duration that models stay loaded in memory (default "5m")
setx OLLAMA_KEEP_ALIVE "1440m0s" /M
# Debug Mode
setx OLLAMA_DEBUG "1" /M
# Reserve a portion of VRAM per GPU (bytes)
setx OLLAMA_GPU_OVERHEAD "1" /M
setx OLLAMA_LOAD_TIMEOUT "3m0s" /M
# Maximum number of parallel requests
setx OLLAMA_NUM_PARALLEL "2" /M
# Context Length, default is 2048
setx OLLAMA_CONTEXT_LENGTH "16384" /M
# for Nvidia GPUs, improve VRAM usage and token generation speed
setx OLLAMA_FLASH_ATTENTION "1" /M
# KV Cache quantisation von fp16 auf q8_0 oder Q4_K_M ändern für weniger VRAM Verbrauch
setx OLLAMA_KV_CACHE_TYPE "Q4_K_M" /M
2.2. Option B: Durch Erstellen eines eigenen Modelfile:
FROM qwen2.5vl:7b
PARAMETER num_ctx 8096
PARAMETER temperature 0.0
PARAMETER seed 0
ollama create qwen2.5vl:7b --file Modelfile
3. Firewall Zugriff erlauben
netsh advfirewall firewall add rule name= "Ollama Server - TCP Port 8080" dir=in action=allow protocol=TCP localport=8080 program="C:\Users\tp\AppData\Local\Programs\Ollama\ollama.exe" enable=yes
4. Model laden
ollama pull <model>
z.B. ollama pull llama3
5. Ollama Server starten
ollama serve
# ggf. GPUCUDA Treiber installieren
# CUDA installiert?
nvidia-smi
# ggf. Alle Nvidia treiber entfernen für eine saubere CUDA Installation
# apt remove --autoremove --purge -V nvidia-driver\* libxnvctrl\*
# CUDA Toolkit installieren, je nach Plattform - bitte folgende Befehle an Ihre Grafikkarte anpassen (siehe Link)
# https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_network
# https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
# sudo apt-get -y install cuda-toolkit
# sudo apt-get -y install cuda
# Treiber installieren
# sudo apt-get -y install nvidia-open
# sudo apt-get -y install cuda-drivers-570
sudo apt-get -y install cuda-drivers
# Env PATH anpassen
export PATH=/usr/local/cuda/bin:$PATH
# CUDA installiert?
nvcc --version
nvidia-smi
cat /proc/driver/nvidia/version
grep nvidia /etc/modprobe.d/* /lib/modprobe.d/*
# Nach Modul/Treiber Änderung evtl. initramfs Archive in /boot updaten
# sudo update-initramfs -u
# neu starten
systemctl reboot
# Ollama API Doku
# https://github.com/ollama/ollama/blob/main/docs/api.md
# Doku Install Doku:
# https://github.com/ollama/ollama/blob/main/docs/linux.md
curl -fsSL https://ollama.com/install.sh | sh
# Installationsort rausfinden
whereis ollama
sudo useradd -r -s /bin/false -U -m -d /usr/local/bin/ollama ollama
sudo usermod -a -G ollama $(whoami)
# Hostname und IP dieser Maschine rausfinden
hostname && hostname -I
# Env PATH anpassen
export OLLAMA_HOST=159.100.240.33:80
# Bind und Listen auf niedrigen Ports erlauben, z.B. Port 80 erlauben
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/ollama
# Ollama Dienst erstellen
# ggf. IP und Port anpassen
sudo bash -c 'cat <<'EOF' >> /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Environment="OLLAMA_HOST=159.100.240.33:80"
[Install]
WantedBy=default.target
EOF'
# Ollama Dienst laden und starten
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl restart ollama
# Ollama Installation prüfen
/usr/local/bin/ollama --version
sudo systemctl status ollama
# Optional: Firewall anpasen; nur noch Zugriffe vom Netzwerk in dem Dr.DOC läuft bzw. der Dr.DOC Maschine aus zulassen
# FW Port öffnen
sudo ufw status
# ssh erlauben
sudo ufw allow proto tcp to any port 22
# sudo ufw allow proto tcp to any port 8081
# sudo ufw allow from 192.168.1.50
# FW nur folgende externe Remote IPs zulassen (statt Auth)
sudo ufw allow from 217.92.78.156 to any proto tcp port 80
# FW aus dem internen Netzwerk erlauben
sudo ufw allow from 192.168.1.0/24 to any proto tcp port 80
sudo ufw allow from 159.100.240.0/24 to any proto tcp port 80
# FW prüfen, bevor sie aktiv wird, da SSH Verbindungen und Remotezugriff gekappt werden könnte
sudo ufw status
sudo ufw enable
sudo ufw reload
# Ollama Modell laden
# Bitte Hardware Ressourcen für das jeweilige KI Modell prüfen
/usr/local/bin/ollama pull llama3.3:70b
# Ollama Modelle auflisten
/usr/local/bin/ollama list
# Läuft das Modell auf der GPU?
/usr/local/bin/ollama ps && nvidia-smi
# Ollama Modell starten zum testen
/usr/local/bin/ollama run llama3.3:70b
# Ollama aktualisieren
/usr/local/bin/ollama update
# Ollama API Test
http://159.100.240.33/api/version
# Logs
journalctl -u ollama --no-pager
Dr.DOC Web hat einen MCP Server seit 01.07.2025 integriert.
Das Model Context Protocol (MCP) ist ein offener Standard und Open-Source-Framework, das vom US-Unternehmen Anthropic entwickelt wurde, um die Integration und den Datenaustausch zwischen künstlicher Intelligenz (KI), insbesondere großen Sprachmodellen (LLMs), und externen Tools, Systemen sowie Datenquellen zu standardisieren.
MCP ist also ein Protokoll, mit welchem AI Agents Funktionsaufrufe sowie deren Parameter und Ressourcen über die MCP Server Schnittstelle von Fachanwendungen zugreifen können (einsehen und aufrufen). Damit kann strukstrukturiert und automatisiert auf Ressourcen zugegriffen werden, mit Hilfe von Tools, welche der MCP Server dem AI Agent (MCP Client) zur Verfügung stellt.
MCP basiert auf JSON RPC 2.0, und das wiederrum auf HTTP, und das auf TCP bzw. heutzutage UDP.
Schnittstellenpfad: /mcp
Z.B. https://drdoc.com/mcp
Die Funktionen CreateArchive und DeleteField sind experimentell und sollten nur zu Test/Entwicklungszwecken aufgerufen werden.
Um die Bedeutung (Kontext) von Dr.DOC Feldern für den MCP Server zu beschreiben, können Sie eine ASCII Import Feldauswahl mit dem Name DD_FIELD_DESC anlegen.
Geben Sie eine detaillierte Beschreibung für relevante Felder ein.