Die Möglichkeiten des Python 3 Scriptings in Vertec beinhalten einen generischen LLM Client, mit dem LLM-Funktionalitäten von verschiedenen LLM-Anbietern wie Open AI, Anthropic und Google Gemini in Vertec genutzt werden können.
LLM's (Large Language Models) können für eine Vielzahl von Aufgaben genutzt werden, um beispielsweise Informationen zu ergänzen oder zusammenzufassen. Sie nehmen dabei in der Regel Text entgegen und liefern Text zurück. Um solche LLM's in Vertec nutzen zu können, steht eine generische LLM Client Library, also das Modul llm_api_adapter, zur Verfügung. Diese Library kann im Python Scripting in Vertec genutzt werden, um Aufgaben an ein LLM-Modell zu senden und die Resultate anzunehmen und in Vertec weiter zu verarbeiten. Diese Library kann innerhalb eines Python 3 Scripts verwendet werden.
Dieser Artikel beschreibt die grundsätzlichen Möglichkeiten der Library, die anhand eines Anwendungsbeispiels veranschaulicht werden. Eine vollständige Dokumentation finden Sie auf der entsprechende Seite in GitHub, wo das Modul zuvor verlinkt wurde.
In diesem Beispiel wurden mehrere Texteinheiten aus den Leistungen für die erstellte Rechnung zusammengefasst. Der zusammengefasste Text erscheint nach dem Ausführen der Funktion auf der Rechnung.
Zuerst wird ein neues Zusatzfeld erzeugt, worin die Zusammenfassung angezeigt werden soll. Hierfür gehen Sie unter Einstellungen > Customizing > Zusatzfelder.
Dann wird das Zusatzfeld mit den entsprechenden Angaben ausgefüllt und die Klasse Rechnung (Invoice) ausgewählt:

Anschliessend erstellen Sie einen neuen Scripteintrag unter Einstellungen > Berichte & Scripts > Scripts. Im Scripteintrag geben Sie der Funktion eine passende Bezeichnung und wählen die Plattform Python 3 aus. Das Modul ist auch nur mit Python 3 lauffähig. Die Checkbox In Vertec Menüs anzeigen haken Sie an, sodass die Funktion zum Ausführen bereitsteht. Zuletzt wählen Sie unter Klassen Rechnung (Invoice) aus.

Im Feld Script Text können Sie folgenden Code kopieren und individuell anpassen:
# generate invoice summary
from llm_api_adapter.models.messages.chat_message import UserMessage, Prompt
from llm_api_adapter.universal_adapter import UniversalLLMAPIAdapter
import datetime
import json
invoice = argobject
service_list = []
for service in invoice.services:
service_dict = {}
service_dict['service date'] = datetime.date.strftime(service.entrydate, "%Y-%m-%d")
service_dict['collaborator'] = str(service.user)
service_dict['invoice text'] = service.text
service_list.append(service_dict)
json_string = json.dumps(service_list)
instruction = """The input are invoices texts from different collaborators that worked for a project on different dates. Please summarize the invoice texts.
Give back only a summary as not formatted text in the language of the input texts."""
messages = [
Prompt(instruction),
UserMessage(json_string)
]
adapter = UniversalLLMAPIAdapter(
organization="anthropic",
model="claude-sonnet-4-5",
api_key="sk-ant-api03-2Xdw-39FdKnlX7EY4f7wlmjcEXs1rDw6cR0Abwh80Aaa67J-u4Xb42zI40FtU3zccH8tgy7b_Ve9yygTLxJn6Q-1u9F9QAA"
)
response = adapter.chat(
messages=messages, max_tokens=3000
)
invoice.zusammenfassung = response.content
Hinweis: Für die Nutzung des Moduls ist ein eigenes API-Key erforderlich, der bei den jeweiligen LLM-Anbietern beantragt werden kann. Detailliertere Informationen dazu finden Sie auch auf der verlinkten GitHub-Seite.
Wenn ein paar Leistungen und die dazugehörigen Texte erfasst und dann eine Rechnung erstellt wurden, sollte die Funktion Text zusammenfassen per Rechtsklick auf der Rechnung oder im Aktionen Menü ausführbar sein.

Hier wird der zusammengefasste Text auf der Seite Weitere Info folgendermassen abgebildet:
