Files
Dokumenten-Check/dc-backend/target/classes/de/frigosped/dc/service/EvaluationService.class

106 lines
9.3 KiB
Plaintext
Raw Normal View History

2026-06-01 14:21:42 +02:00
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<01>
2026-04-27 14:57:33 +02:00
 java/lang/Object<init>()V
 
java/lang/StringisBlank()Z  )de/frigosped/dc/service/EvaluationServiceLOGLorg/jboss/logging/Logger;#Starte Übersetzung (%d Zeichen)...
 length()I
  org/jboss/logging/Loggerdebugf(Ljava/lang/String;I)V"eDu bist ein professioneller Übersetzer für rechtliche und logistische Dokumente.
Übersetze den folgenden Text ins Deutsche.
Regeln:
- Behalte die Markdown-Formatierung exakt bei
- Fachbegriffe korrekt übersetzen
- Wenn der Text bereits auf Deutsch ist, gib ihn unverändert zurück
- Antworte NUR mit dem übersetzten Text, ohne Kommentar oder Präambel
$%& '(*dev/langchain4j/data/message/SystemMessagefrom@(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;
2026-06-01 14:21:42 +02:00
*+, '-(dev/langchain4j/data/message/UserMessage>(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage; /01 23java/util/Listof6(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; 5 67 mainModel.Ldev/langchain4j/model/chat/ChatLanguageModel; 9:; <=,dev/langchain4j/model/chat/ChatLanguageModelgenerate9(Ljava/util/List;)Ldev/langchain4j/model/output/Response; ? @A costTracker.Lde/frigosped/dc/service/AiCostTrackerService;CmainE TRANSLATE
GHI JKjava/lang/LongvalueOf(J)Ljava/lang/Long;
MNO PQ%dev/langchain4j/model/output/Response
tokenUsage+()Ldev/langchain4j/model/output/TokenUsage;
STU VW,de/frigosped/dc/service/AiCostTrackerServicetrackp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ldev/langchain4j/model/output/TokenUsage;)V
MY Z[content()Ljava/lang/Object;]&dev/langchain4j/data/message/AiMessage
\_ `atext()Ljava/lang/String;
c datrimfWerte Frage %d aus: %s
hij kl"de/frigosped/dc/model/OrdsQuestion getQuestionId()Ljava/lang/Long;
hn oagetQuestionText
q rs
2026-04-27 14:57:33 +02:00
abbreviate'(Ljava/lang/String;I)Ljava/lang/String;
2026-06-01 14:21:42 +02:00
u v9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
x yabuildEvaluationSystem
{ |}buildEvaluationUserJ(Lde/frigosped/dc/model/OrdsQuestion;Ljava/lang/String;)Ljava/lang/String;EVALUATE
<00> <00><00>parseEvaluationResult`(Ljava/lang/String;Lde/frigosped/dc/model/OrdsQuestion;)Lde/frigosped/dc/model/EvaluationResult;<00><02>Du bist ein Experte für Transportrecht, AGB-Recht und Vertragsanalyse.
2026-04-27 14:57:33 +02:00
Du prüfst Transport- und Speditionsdokumente gegen einen Fragenkatalog.
Antworte AUSSCHLIESSLICH mit einem gültigen JSON-Objekt kein Text davor oder danach.
Das JSON-Objekt muss folgende Felder enthalten:
{
"answer": "<Deine Antwort auf Deutsch. Zitate aus dem Dokument in Originalsprache angeben und danach in Klammern übersetzen>",
"score": <Zahl 0 bis 100, wie gut das Dokument die Anforderung erfüllt>,
"result_type": "<OK wenn score >= Schwellwert, UNKLAR wenn grenzwertig, NOK wenn klar nicht erfüllt>",
"the_comment": "<Kurzer fachlicher Kommentar auf Deutsch, max. 3 Sätze>"
}
2026-06-01 14:21:42 +02:00
<00>java/lang/StringBuilder
<00><00>## Zu prüfendes Dokument
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
<00><00> <00><00>append-(Ljava/lang/String;)Ljava/lang/StringBuilder;<00>
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
<00>---
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
<00>## Prüffrage (Kategorie:
h<00> <00>agetCategoryName<00>)
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
h<00> <00><00> getThreshold()Ljava/lang/Integer;<00>**Schwellwert:**
<00><00> <00><00>-(Ljava/lang/Object;)Ljava/lang/StringBuilder;<00>9% unterhalb gilt die Anforderung als nicht erfüllt
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
h<00> <00>agetExample0Percent<00>(**Beispiel: 0% Erfüllung (nicht ok):**
2026-04-27 14:57:33 +02:00
2026-06-01 14:21:42 +02:00
h<00> <00>agetExample100Percent<00>1**Beispiel: 100% Erfüllung (vollständig ok):**
<00>(---
2026-04-27 14:57:33 +02:00
Antworte jetzt mit dem JSON-Objekt:
2026-06-01 14:21:42 +02:00
<00><00> <00>atoString
<00> <00><00> extractJson&(Ljava/lang/String;)Ljava/lang/String; <00> <00><00> objectMapper-Lcom/fasterxml/jackson/databind/ObjectMapper;<00>&de/frigosped/dc/model/EvaluationResult
<00><00><00> <00><00>+com/fasterxml/jackson/databind/ObjectMapper readValue7(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
<00><00> <00><00>getScore
<00><00><00> J<00>java/lang/Integer(I)Ljava/lang/Integer;
<00><00> <00><00>setScore(Ljava/lang/Integer;)V
<00><00> <00>a getResultType
<00> <00><00>isValidResultType(Ljava/lang/String;)Z
<00><00> <00>intValue
<00> <00><00>deriveResultType((ILjava/lang/Integer;)Ljava/lang/String;
<00><00> <00><00> setResultType(Ljava/lang/String;)V
<00><00> <00>a getAnswer<00>Keine Antwort erhalten.
<00><00> <00><00> setAnswer<00>java/lang/Exception<00>HJSON-Parsing fehlgeschlagen für Frage %d, verwende Fallback. Fehler: %s
<00><00> <00>a
2026-04-27 14:57:33 +02:00
getMessage
2026-06-01 14:21:42 +02:00
<00> <00>vwarnf<00>Rohe KI-Antwort: %s
<00> <00>'(Ljava/lang/String;Ljava/lang/Object;)V
<00><00>Parsing-Fehler<00>UNKLAR<00>9Automatische Auswertung konnte nicht strukturiert werden.
<00> <00> setTheComment"java/lang/IllegalArgumentExceptionLeere KI-Antwort
 <00> 
   JSON_PATTERNLjava/util/regex/Pattern;
 java/util/regex/Patternmatcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
  java/util/regex/Matcherfind
 group(I)Ljava/lang/String;
 indexOf(I)I
! " lastIndexOf
$ %& substring(II)Ljava/lang/String;('Kein JSON-Objekt in KI-Antwort gefunden*OK
, -.equals(Ljava/lang/Object;)Z0NOK2 3<00>makeConcatWithConstants
5 67 getLogger-(Ljava/lang/Class;)Lorg/jboss/logging/Logger;9,```(?:json)?\s*([\s\S]*?)```|([{][\s\S]*[}])
; <=compile.(Ljava/lang/String;I)Ljava/util/regex/Pattern;RuntimeVisibleAnnotationsLjakarta/inject/Inject;Ljakarta/inject/Named;valueCodeLineNumberTableLocalVariableTablethis+Lde/frigosped/dc/service/EvaluationService; translate'(Ljava/lang/String;J)Ljava/lang/String; originalTextLjava/lang/String; projectIdJmessagesLjava/util/List;response'Ldev/langchain4j/model/output/Response;LocalVariableTypeTable<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;QLdev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>; StackMapTableMethodParametersevaluatea(Lde/frigosped/dc/model/OrdsQuestion;Ljava/lang/String;J)Lde/frigosped/dc/model/EvaluationResult;question$Lde/frigosped/dc/model/OrdsQuestion; documentText systemPrompt
2026-04-27 14:57:33 +02:00
userPromptrawTextsbLjava/lang/StringBuilder;jsonresult(Lde/frigosped/dc/model/EvaluationResult;fallbackeLjava/lang/Exception; candidatemLjava/util/regex/Matcher;startIendtypescore thresholdLjava/lang/Integer;smaxLen<clinit>
2026-06-01 14:21:42 +02:00
SourceFileEvaluationService.java.Ljakarta/enterprise/context/ApplicationScoped;BootstrapMethodsxz
{|} 3~$java/lang/invoke/StringConcatFactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClasses<01>%java/lang/invoke/MethodHandles$Lookup<01>java/lang/invoke/MethodHandlesLookup!  67>?@AsC@A>?<00><00>>? B/*<2A><01>CD EFGHB<00>Y+<2B>
+<2B><07> <0A><>+<2B><17>!<21>#+<2B>)<29>.:*<2A>4<04>8:*<2A>>BD <20>F<05>L<>R<05>X<>\<5C>^<5E>b<>C& =>@A J#@(M5NJOD4YEFYIJYKL(1MN5$OPQ(1MR5$OST U IKVWB4
j<>e+<2B>g*+<2B>mP<>p<>t*<2A>w:*+,<2C>z:<05>#<06>)<29>.:*<2A>4<07>8:*<2A>>B~!<21>F<08>L<>R<08>X<>\<5C>^: * +<2B><00><>C:ab caef$h&i+j.h3m@nUobqD\ jEFjXYjZJjKLN[J$F\J37MN@*OPb]J Q37MR@*OSU XZKyaB-<12><>CyD EF|}BH<00><><00>Y<EFBFBD><00>N-<12><><00>W-,<2C><00><12><><00>W-<12><><00>W-<12><><00>+<2B><00><><00><12><><00>W-+<2B>m<><00><12><><00>W+<2B><00><>-<12><><00>+<2B><00><><00><12><><00>W+<2B><00><> +<2B><00><><07>-<12><><00>+<2B><00><><00><12><><00>W+<2B><00><> +<2B><00><><07>-<12><><00>+<2B><00><><00><12><><00>W-<12><><00>W-<2D><00><>CF<00><00><00><00>!<00>4<00>B<00>I<00>X<00>\<00>m<00>t<00><00><00><00><00><00><00><00><00><00><00>D*<00>EF<00>XY<00>ZJ<00>^_T
<03>\<00>##U XZ<00><00>B<01><00>*+<2B><00>N*<2A><00>-<12><><00><><00>:<04><00><> <03>Ƕ<00><04><00><>*<04>жӚ*<04>Ķ<00>,<2C><00><>ڶ<00><04><00><>
<12><><00><04>N<EFBFBD><12>,<2C>g-<2D><00><><00><><12>+<2B><00><><00>Y<EFBFBD><00>:+<2B>
+<2B>b<><12><><00><03>Ƕ<00><12><><00><12><><04>`a<00>CJ<00><00><00>&<00>:<00>O<00>^<00>a<00>b<00>h<00>o<00>r<00>{<00><00><00><00><00><00><00><00><00><00><00>DH[`JLab<00>,cbbNde<00>EF<00>]J<00>XYTV<07>&<00><0E>h<00><>/h<00><00><00><>h<00><00><00>U ]X<00><00>By+<2B>
+<2B><07><0E>Y<05><07><> +<2B> M,<2C><13>),<04><18> ,<04><18>,<05>N-<2D>-<2D><07>-<2D>b<>+{<7B>>+}<7D> 6<1D><1D> +`<60>#<23><>Y'<27><07>C2 <00> <00><00><00>%<00>;<00>F<00>K<00>R<00>Z<00>d<00>n<00>D>;fJyEFy`J[ghR'ijZkjT
<EFBFBD>D<10>"U`<00><00>Bc#)+<2B>+<2B><12>+<2B>+<2B> /+<2B>+<2B><04><03>C<00>D#EF#lJT@Ul<00><00>B|',<2C> F<><00>M,<2C>ס)<29>,<2C><00>l<><12><>/<2F>C<00>
<00><00>#<00>D 'EF'mj'noT
U mnrsBo+<2B> <0A>+<2B><1C>+<2B>+<1C>#<23>1<00>C
<00><00>D EFpJqjT JU pqrB8<10>4<>8 <20>:<3A> <09>C" #"st>uvyw
<01><01><01>