neue KI Features

This commit is contained in:
Ralph Soika 2026-08-15 09:46:17 +02:00
parent aeba05cc19
commit b8d0660526
8 changed files with 1814 additions and 6 deletions

View file

@ -25,7 +25,7 @@ services:
POSTGRES_CONNECTION: "jdbc:postgresql://db/office-alexander-logistics"
TZ: "CET"
LANG: "en_US.UTF-8"
MAILGATEWAY: "mailgateway"
MAILGATEWAY: "mailpit"
ASYNCEVENT_PROCESSOR_ENABLED: "true"
ASYNCEVENT_PROCESSOR_INITIALDELAY: "10000"
@ -102,12 +102,15 @@ services:
###############################################
# Mailgateway
###############################################
mailgateway:
image: imixs/exim4
mailpit:
image: axllent/mailpit:latest
container_name: mailpit
environment:
EXIM_SMARTHOST: "www149.your-server.de:25"
EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:$MAILPASSWORD"
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.18.0.0/12:192.168.0.0/16"
MP_SMTP_BIND_ADDR: "0.0.0.0:25"
ports:
- "1025:25" # Host:1025 -> Container:25 (SMTP)
- "8025:8025" # Web UI
restart: unless-stopped
# prometheus:
# image: prom/prometheus:latest

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<PromptDefinition>
<prompt_options>{"n_predict": 4096, "temperature": 0 }</prompt_options>
<prompt><![CDATA[[INST]You are a clerk at the logistic company 'Alexander Global Logistics'. Your task is to check incoming invoices. [/INST]
<itemvalue>invoice.summary</itemvalue>
</s>[INST]Transfer the invoice data into an XML object with the following structure:
<invoice>
<cdtr.name>...</cdtr.name>
<invoice.number>...</invoice.number>
<invoice.date type="date">2024-12-31</invoice.date>
<invoice.duedate type="date">2024-12-31</invoice.duedate>
<invoice.total type="double">1234.00</invoice.total>
<cdtr.iban>...</cdtr.iban>
<cdtr.bic>...</cdtr.bic>
<invoice.positions>...</invoice.positions>
</invoice>
Transfer the individual invoice data to the XML tags, taking into account the following suggestions for mapping:
- Company name ==> "cdtr.name" (the name of the company that issued the invoice document, not the recipient)
- Invoice number ==> "invoice.number"
- Invoice Date ==> "invoice.date"
- Total ==> "invoice.total" (in EUR or if not available in USD or PLN)
- IBAN ==> "cdtr.iban"
- BIC or SWIFT ==> "cdtr.bic"
- Payment date / Due date ==> "invoice.duedate"
- The Reference Number in the format [2 letters][3 letters][4-digit booking period YYMM][3-digit sequence number] ==> "invoice.positions"
Note: Output only the XML object! Don't add explanations or comments. Use only the XML structure specified in this example and do not create any other XML tags. If you don't have data for some fields, leave the corresponding XML tags blank. Format date values (invoice.date, invoice.duedate) into the ISO 8601 format (YYYY-MM-DD). Format numbers and amounts (type="double") according to ISO 4217.
<<EXAMPLES_XML>>
[/INST]
]]>
</prompt>
</PromptDefinition>

View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<PromptDefinition>
<prompt_options>{"n_predict": 2048, "temperature": 0}</prompt_options>
<prompt><![CDATA[[INST]You are an employee at the logistic company 'Alexander Global Logistics'. Your job is to check incoming invoice documents and forward them internally to employees. [/INST]
<FILECONTEXT>^.+\.([pP][dD][fF])$</FILECONTEXT>
</s>[INST]
Summarize the data from this invoice document.
Extract and summarize the following categories:
1. Vendor information
2. General billing data
3. Invoice total information
4. Payment summary (including bank data)
5. Reference data (Position Number)
Do not summarize the invoice line items.
Use only the values found in the document as default values. Do not perform
any calculations, summing, or changes to amounts yourself. Format all
numbers and amounts according to ISO 4217.
---
1. Vendor information
The vendor is the sender of the invoice, i.e. the company that issued the
invoice document — not the recipient. The recipient is our own company,
Alexander Global Logistics, and must never be extracted as the vendor.
The vendor's company name is often found at the very beginning or the very
end of the invoice document.
2. General billing data
Extract standard billing information such as invoice date, invoice number,
billing period, and any other general invoice metadata present in the
document.
3. Invoice total information
Extract the invoice total(s) exactly as stated in the document (e.g. net
amount, tax amount, gross/total amount). Do not recalculate or verify these
figures — use the values as printed.
4. Payment summary (including bank data)
Extract payment-related information such as payment terms, due date, and
bank details (e.g. IBAN, BIC/SWIFT, bank name, account holder) if present.
5. Reference data (Position Number)
Search the document for our internal "Position Number". It always follows
this structure, regardless of how it is written on the invoice:
[2 letters][3 letters][4-digit booking period YYMM][3-digit sequence number]
Standard formatted example: IM-GCA-2607-100
- "IM" = 2-letter code
- "GCA" = 3-letter code
- "2607" = booking period (YYMM, i.e. year 26, month 07)
- "100" = 3-digit sequence number
Vendors frequently omit the separators or use different separators when
printing this number on their invoices, e.g.:
- No separators at all: "EXGCA2608009"
- Spaces: "EX GCA 2608 009"
- Dots or slashes: "EX.GCA.2608.009" / "EX/GCA/2608/009"
Search the entire document text for any substring matching this pattern
(2 letters, 3 letters, 4 digits, 3 digits — in that order, with or without
separators between the groups). The 4-digit booking period (YYMM) is the
most distinctive part of the pattern and can help you locate it.
Once found, extract it and output it normalized into the standard format:
XX-XXX-YYMM-NNN (e.g. "EXGCA2608009" → "EX-GCA-2608-009").
Do not confuse this number with other codes, order numbers, or customer
numbers that may appear on the invoice.
[/INST]
]]>
</prompt>
</PromptDefinition>