update models, docu
This commit is contained in:
parent
bafce742e5
commit
7efe8a05bc
10 changed files with 1865 additions and 1215 deletions
18
doc/RAG.md
18
doc/RAG.md
|
|
@ -10,9 +10,16 @@ In summary, Retrieval Augmented Generation (RAG) describes a method that uses ar
|
|||
|
||||
The following section give a general overview how the Retrieval-augmented generation (RAG) is realized in Dynamixs AI.
|
||||
|
||||
## The Model
|
||||
|
||||
The retrieval data in Dynamixs.AI is generated by the LLM [ nomic-embed-text-v2-moe](https://huggingface.co/nomic-ai/nomic-embed-text-v2-moe-GGUF) which is
|
||||
a [sentence-transformers model](https://www.sbert.net/) supporting more then 100 languages and trained on over 1.6B pairs.
|
||||
The model is used in Q4 quantitation and a size of 328MiB which provides a good quality for most use cases.
|
||||
The model maps sentences & paragraphs to a 768 dimensional dense vector space. It can be run on a CPU with adequate performance.
|
||||
|
||||
## Storage
|
||||
|
||||
The retrieval data is stored in a [Cassandra Database](CASSANDRA.md) with the following schema:
|
||||
The retrieval data generated by the LLM is stored in a [Cassandra Database](CASSANDRA.md) with the following schema:
|
||||
|
||||
```sql
|
||||
CREATE TABLE IF NOT EXISTS document_vectors (
|
||||
|
|
@ -24,8 +31,7 @@ CREATE TABLE IF NOT EXISTS document_vectors (
|
|||
);
|
||||
```
|
||||
|
||||
The retrieval data is generated by the LLM [all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) which is
|
||||
a [sentence-transformers model](https://www.sbert.net/) that maps sentences & paragraphs to a 384 dimensional dense vector space.
|
||||
The following section explains the schema in more detail.
|
||||
|
||||
### The Chunk Content
|
||||
|
||||
|
|
@ -51,17 +57,17 @@ Without the stored text, the retrieval part of RAG would not be possible, as you
|
|||
|
||||
### The Content Reference
|
||||
|
||||
Together with the `content_chunk` the RAG system stores also the UniqueID from to the referred process instance within the workflow instance. This is a hybrid concept that provides several advantages:
|
||||
Together with the `content_chunk` the RAG system stores also the UniqueID from to the referred business process instance within the workflow instance. This is a hybrid concept that provides several advantages:
|
||||
|
||||
**1. Normalization and Consistency**
|
||||
|
||||
- Single Source of Truth: The main Document data exist only once in the imixs-workflow system.
|
||||
- Single Source of Truth: The main Document with the full data exist only once in the imixs-workflow system.
|
||||
- Changes to data inside a process instance which is not part of the Vector DB are automatically available without the need to update the Vector DB.
|
||||
- No full data duplication.
|
||||
|
||||
**2. Better Integration**
|
||||
|
||||
- Easy access not only to text chunks but also the complete business process objects with its metadata.
|
||||
- Easy access not only to text chunks but also the complete business process objects with its metadata for further refinement of a result set.
|
||||
- Ability to apply additional business logic (permissions, status, etc.).
|
||||
|
||||
**3. Flexibility**
|
||||
|
|
|
|||
65
docker/import_examples/csv_clean.sh
Executable file
65
docker/import_examples/csv_clean.sh
Executable file
|
|
@ -0,0 +1,65 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Überprüfen, ob eine Eingabedatei angegeben wurde
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Verwendung: $0 input.csv"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
input_file="$1"
|
||||
output_file="${input_file%.*}_clean.csv"
|
||||
|
||||
# Temporäre Datei für die Verarbeitung
|
||||
temp_file=$(mktemp)
|
||||
|
||||
# Verarbeitung:
|
||||
# 1. Zuerst alle echten Zeilenumbrüche (die nicht in Anführungszeichen sind) markieren
|
||||
# 2. Dann Newlines innerhalb von Anführungszeichen durch Leerzeichen ersetzen
|
||||
# 3. HTML-Tags entfernen
|
||||
# 4. Markierte Zeilenumbrüche wiederherstellen
|
||||
|
||||
awk '
|
||||
BEGIN { FPAT = "([^;]*)|(\"[^\"]+\")"; OFS=";"; in_quotes=0 }
|
||||
{
|
||||
# Zeilen zusammenfügen, wenn sie unvollständig sind (nur für Sicherheit)
|
||||
if (NR == 1) {
|
||||
full_line = $0
|
||||
} else {
|
||||
full_line = full_line " " $0
|
||||
}
|
||||
|
||||
# Überprüfen, ob die Zeile vollständig ist (gleich viele öffnende und schließende Anführungszeichen)
|
||||
quotes = gsub(/"/, "&", full_line)
|
||||
if (quotes % 2 == 0) {
|
||||
# Zeile ist vollständig, jetzt verarbeiten
|
||||
$0 = full_line
|
||||
|
||||
# Newlines in jedem Feld durch Leerzeichen ersetzen
|
||||
for (i=1; i<=NF; i++) {
|
||||
# HTML-Tags entfernen
|
||||
gsub(/<[^>]*>/, "", $i)
|
||||
|
||||
# Newlines und mehrfache Leerzeichen bereinigen
|
||||
gsub(/\n/, " ", $i)
|
||||
gsub(/ +/, " ", $i)
|
||||
|
||||
# Feld trimmen
|
||||
sub(/^[ \t]+/, "", $i)
|
||||
sub(/[ \t]+$/, "", $i)
|
||||
|
||||
# Feld wieder in Anführungszeichen setzen, wenn es Semikolons oder Anführungszeichen enthält
|
||||
if (($i ~ /;/ || $i ~ /"/) && $i !~ /^".*"$/) {
|
||||
gsub(/"/, "\"\"", $i) # Escape existing quotes
|
||||
$i = "\"" $i "\""
|
||||
}
|
||||
}
|
||||
|
||||
print
|
||||
full_line = ""
|
||||
}
|
||||
}' "$input_file" > "$temp_file"
|
||||
|
||||
# Endgültige Bereinigung
|
||||
mv "$temp_file" "$output_file"
|
||||
|
||||
echo "Bereinigte Datei wurde erstellt: $output_file"
|
||||
146
docker/import_examples/lupi-product-export_clean.csv
Normal file
146
docker/import_examples/lupi-product-export_clean.csv
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
ID;Name; Description;stock;price;category;Lieferzeit;EAN
|
||||
579;Wandkonsole für LP-65 bis LP-375;Wandhalterung für Pooltauscher LP-65 bis LP375;1;17,9;Wandhalterung;;2091465262179
|
||||
587;LP-175VA 50kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbad- und Poolbezeizung. Ideal in Verbindung mit Solaranlagen bis 50kW.;1;229,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;Die Lieferzeit beträgt 10 bis 15 Tage;5286196620740
|
||||
727;MUSTERARTIKEL;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbad- und Poolbezeizung. Ideal in Verbindung mit Solaranlagen bis 50kW.;0;119,9;Pool Wärmetauscher;;1282898648918
|
||||
737;LP-65VA 20kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbadbezeizung.;1;189,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;3879177514583
|
||||
741;LP-100VA 30kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbadbezeizung.;1;199,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;9055773261265
|
||||
742;LP-230VA 70kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbadbezeizung.;1;289,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;1150028980156
|
||||
743;LP-325VA 95kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbadbezeizung.;0;328,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;5029747624534
|
||||
745;LP-375VA 115kW;Hochwertiger Edelstahl-Wärmetauscher für Schwimmbadbeheizung.;0;439,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;9883725074294
|
||||
747;Edelstahl Pool Wärmetauscher Typ SP-100-K;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;199,9;Pool Wärmetauscher;;1773215338624
|
||||
1000;Abgaswärmetauscher AWT-7/150VA;Abgaswärmetauscher mit Edelstahl Tauscherspirale.Dieser Tauscher wurde speziell für Kamin und Kachelöfen entwickelt.;1;279,9;Abgaswärmetauscher;;4877111475333
|
||||
1002;Abgaswärmetauscher AWT-7/150-Titan;Abgaswärmetauscher mit titanlegierter Edelstahl Tauscherspirale entwickelt für höchste Temperatur- und Feuchtebelastungen. Dieser Tauscher ist für extreme Langlebigkeit und Beständigkeit ausgelegt.;1;285,9;Abgaswärmetauscher;;9680811891595
|
||||
1003;Abgastauscher Regelung Typ ATR-4;Abgastauscher Regelung für eine optimale Ausnutzung und Energieeinsparung in Verbindung mit unseren Abgaswärmetauschern.;1;199,9;Abgaswärmetauscher;;8567222480604
|
||||
1004;Abgastauscher Regelung Typ ATR-6;Abgastauscher Regelung für eine optimale Ausnutzung und Energieeinsparung. Diese Regelung unterstützt durch einen zusätzlichen Sensor die Ansteuerung eines zweiten Heizkreises.;0;239,9;Abgaswärmetauscher;;5686660235911
|
||||
1007;Kehrbesenset für AWT-7;Kehrbesenset für Abgastauscher Reihe AWT-7;1;39,9;Abgaswärmetauscher;;1941032767914
|
||||
1046;Edelstahl Plattenwärmetauscher Typ B3-12A-12;"Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW; Heizkreistrennungen und Solaranlagen";1;69,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;1438856474369
|
||||
1048;Edelstahl Plattenwärmetauscher Typ B3-12A-12 mit Dämmschale;"Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW; Heizkreistrennungen und Solaranlagen";1;74,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;3500722785805
|
||||
1050;Edelstahl Plattenwärmetauscher Typ B3-12A-20;"Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW; Heizkreistrennungen und Solaranlagen";1;79,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;7887280730963
|
||||
1051;Edelstahl Plattenwärmetauscher Typ B3-12A-30;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;99,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;4170125892616
|
||||
1052;Edelstahl Plattenwärmetauscher Typ B3-12A-50;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;0;139,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;6340907128242
|
||||
1053;Edelstahl Plattenwärmetauscher Typ B3-12A-50 mit Dämmschale;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;0;149,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;267078141619
|
||||
1054;Edelstahl Plattenwärmetauscher Typ B3-12A-30 mit Dämmschale;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;104,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;963840013930
|
||||
1055;Edelstahl Plattenwärmetauscher Typ B3-12A-20 mit Dämmschale;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;84,9;Plattenwärmetauscher > B3-12 Baureihe / gelötet;;3918763032312
|
||||
1056;Edelstahl Plattenwärmetauscher Typ B3-23A-30;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;184,9;Plattenwärmetauscher > B3-23 Baureihe / gelötet;;1824359393441
|
||||
1057;Edelstahl Plattenwärmetauscher Typ B3-23A-50;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;224,9;Plattenwärmetauscher > B3-23 Baureihe / gelötet;;9839666739792
|
||||
1058;Edelstahl Plattenwärmetauscher Typ B3-23A-30 mit Dämmschale;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;194,9;Plattenwärmetauscher > B3-23 Baureihe / gelötet;;6501687247749
|
||||
1060;Edelstahl Plattenwärmetauscher Typ B3-23A-50 mit Dämmschale;Edelstahl Plattenwärmetauscher für Pflanzenölvorwärmung bei PKW und LKW;1;254,9;Plattenwärmetauscher > B3-23 Baureihe / gelötet;;9496081864722
|
||||
1076;Wandbefestigung für Plattentauscher M3-54;;1;35,9;Wandhalterung;;3486711401836
|
||||
1077;Wandkonsole für Plattentauscher M4-56;;1;35,9;Wandhalterung;;7097613907430
|
||||
1078;Dämmschale für Plattentauscher M3-S;;1;79,9;Isolierung für Wärmetauscher;;8301096575048
|
||||
1079;Edelstahl Plattenwärmetauscher Typ M5-11-10;"Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze; Milchkühlung sowie als Zwischenkreistauscher für Sole und Grundwasser Wärmepumpen.";1;899;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;6639325474032
|
||||
1080;Edelstahl Plattenwärmetauscher Typ M5-11-30;"Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze; Milchkühlung sowie als Zwischenkreistauscher für Sole und Grundwasser Wärmepumpen.";1;1399;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;5564792899662
|
||||
1081;Edelstahl Plattenwärmetauscher Typ M6-19-10;;1;1090;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;9921752342730
|
||||
1082;Edelstahl Plattenwärmetauscher Typ M6-19-20;;1;1680;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;7107438924403
|
||||
1083;Edelstahl Plattenwärmetauscher Typ M7-17-10;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;0;995;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;2327483415120
|
||||
1084;Edelstahl Plattenwärmetauscher Typ M7-17-20;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;1295;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;6209821998907
|
||||
1085;Edelstahl Plattenwärmetauscher Typ M4-56-10;;1;289,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;7883295446066
|
||||
1088;Edelstahl Plattenwärmetauscher Typ M4-56-20;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;339,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;7670612815694
|
||||
1170;Wandkonsole für Plattentauscher B3-12-xx;Wandhalterung für eine schnelle Montage mit praktischem Klettverschlußband.;1;18,9;Wandhalterung;;2837107354495
|
||||
1181;LP-375VA 115kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;0;459;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;8247903213713
|
||||
1188;Wandkonsole für isolierte Pooltauscher LP-xx;Wandhalterung für eine schnelle Montage mit praktischem Klettverschlußband.;1;19,9;Wandhalterung;;5234087663802
|
||||
1191;LP-65VA 20kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;1;219,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;938364240247
|
||||
1194;LP-100VA 30kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;1;239,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;450118214736
|
||||
1196;LP-175VA 50kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;1;259,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;655296358115
|
||||
1198;LP-230VA 70kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;1;329,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;8611986118980
|
||||
1200;LP-325VA 95kW mit Wärmedämmung;Hochwertiger Schwimmbad-Wärmetauscher aus Edelstahl für Schwimmbadbeheizung mit Wärmedämmung.;0;389,9;Pool Wärmetauscher > Rohrförmig aus Edelstahl;;9005775281402
|
||||
1204;Dämmschale für Plattentauscher M3-M;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;89,9;Isolierung für Wärmetauscher;;5367012957872
|
||||
1205;Dämmschale für Plattentauscher M3-L;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;99,9;Isolierung für Wärmetauscher;;6854117854742
|
||||
1206;Dämmschale für Plattentauscher SP-S;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;79,9;Isolierung für Wärmetauscher;;1382809012286
|
||||
1207;Dämmschale für Plattentauscher SP-M;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;89,9;Isolierung für Wärmetauscher;;5461960384619
|
||||
1252;Dämmschale für Plattentauscher M1-S;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;79,9;Isolierung für Wärmetauscher;;3625664059934
|
||||
1253;Dämmschale für Plattentauscher M1-M;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;89,9;Isolierung für Wärmetauscher;;4894233116968
|
||||
1254;Dämmschale für Plattentauscher M1-L;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;99,9;Isolierung für Wärmetauscher;;8183922928019
|
||||
1257;Wandbefestigung für Plattentauscher M1-53;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;34,9;Wandhalterung;;8183313115592
|
||||
1260;Dämmschale für Plattentauscher M4-L;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;99,9;Isolierung für Wärmetauscher;;3057639268476
|
||||
1261;Dämmschale für Plattentauscher M4-M;Hochwertige Dämmschale für Plattentauscher in verschiedenen Größen;1;89,9;Isolierung für Wärmetauscher;;1974896712011
|
||||
1263;Edelstahl Plattenwärmetauscher Typ M4-56-30;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;399,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;983367163970
|
||||
1264;Edelstahl Plattenwärmetauscher Typ M4-56-15;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;309,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;8481605893389
|
||||
1265;Edelstahl Plattenwärmetauscher Typ M4-56-25;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;369,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;5175038823985
|
||||
1266;Edelstahl Plattenwärmetauscher Typ M4-56-35;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;439,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;2567562782853
|
||||
1267;Edelstahl Plattenwärmetauscher Typ M4-56-40;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;469,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;6744198567221
|
||||
1268;Edelstahl Plattenwärmetauscher Typ M4-56-45;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;499,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;4811928042234
|
||||
1269;Edelstahl Plattenwärmetauscher Typ M4-56-50;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;535,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;3388615003133
|
||||
1270;Edelstahl Plattenwärmetauscher Typ M4-56-60;Edelstahl Plattenwärmetauscher geeignet für Anwendungen mit geschlossenen Kreisläufen wie z.B. Heizungsanwendungen;1;599,9;Plattenwärmetauscher > M4-56 Baureihe / zerlegbar;;6261793125392
|
||||
1326;Abgaswärmetauscher AWT-7/160VA;Abgaswärmetauscher mit Edelstahl Tauscherspirale.Dieser Tauscher wurde speziell für Kamin und Kachelöfen entwickelt.;1;284,9;Abgaswärmetauscher;;6474143371206
|
||||
1327;Abgaswärmetauscher AWT-7/160-Titan;Abgaswärmetauscher mit titanlegierter Edelstahl Tauscherspirale entwickelt für höchste Temperatur- und Feuchtebelastungen. Dieser Tauscher ist für extreme Langlebigkeit und Beständigkeit ausgelegt.;1;289,9;Abgaswärmetauscher;;4089415274929
|
||||
1328;Abgaswärmetauscher AWT-7/180-Titan;Abgaswärmetauscher mit titanlegierter Edelstahl Tauscherspirale entwickelt für höchste Temperatur- und Feuchtebelastungen. Dieser Tauscher ist für extreme Langlebigkeit und Beständigkeit ausgelegt.;1;319,9;Abgaswärmetauscher;;4598541150958
|
||||
1329;Abgaswärmetauscher AWT-7/180VA;Abgaswärmetauscher mit Edelstahl Tauscherspirale.Dieser Tauscher wurde speziell für Kamin und Kachelöfen entwickelt.;1;314,9;Abgaswärmetauscher;;9282813513019
|
||||
1330;Abgaswärmetauscher AWT-7/200VA;Abgaswärmetauscher mit Edelstahl Tauscherspirale.Dieser Tauscher wurde speziell für Kamin und Kachelöfen entwickelt.;1;339,9;Abgaswärmetauscher;;8282848236311
|
||||
1331;Abgaswärmetauscher AWT-7/200-Titan;Abgaswärmetauscher mit titanlegierter Edelstahl Tauscherspirale entwickelt für höchste Temperatur- und Feuchtebelastungen. Dieser Tauscher ist für extreme Langlebigkeit und Beständigkeit ausgelegt.;1;349,9;Abgaswärmetauscher;;7935749142557
|
||||
1332;Abgaswärmetauscher AWT-7/250VA;Abgaswärmetauscher mit Edelstahl Tauscherspirale.Dieser Tauscher wurde speziell für Kamin und Kachelöfen entwickelt.;0;399;Abgaswärmetauscher;;252926529077
|
||||
1333;Abgaswärmetauscher AWT-7/250-Titan;Abgaswärmetauscher mit titanlegierter Edelstahl Tauscherspirale entwickelt für höchste Temperatur- und Feuchtebelastungen. Dieser Tauscher ist für extreme Langlebigkeit und Beständigkeit ausgelegt.;0;399;Abgaswärmetauscher;;3997003361528
|
||||
1377;Frischwasserstation FWS 840;Die LUPI Frischwasserstation der FWS-800 Baureihe ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem zerlegbarem Plattentauscher.;1;1290;Frischwasserstation;;6908065460286
|
||||
1442;Frischwasserstation FWS 620;Die LUPI Frischwasserstation der Baureihe FWS-600 ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem kupfergelöteten Plattentauscher aus Edelstahl.;0;689;Frischwasserstation;;7695934105636
|
||||
1481;Edelstahl Plattenwärmetauscher Typ M5-11-25;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;1299;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;1089969929675
|
||||
1482;Edelstahl Plattenwärmetauscher Typ M5-11-35;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;1499;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;310774792552
|
||||
1483;Edelstahl Plattenwärmetauscher Typ M5-11-40;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;1649;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;1340784358003
|
||||
1484;Edelstahl Plattenwärmetauscher Typ M5-11-45;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;1899;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;7806787405877
|
||||
1485;Edelstahl Plattenwärmetauscher Typ M5-11-50;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;1999;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;168419438521
|
||||
1486;Edelstahl Plattenwärmetauscher Typ M5-11-55;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2199;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;445370808496
|
||||
1487;Edelstahl Plattenwärmetauscher Typ M5-11-60;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2299;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;6855062072649
|
||||
1488;Edelstahl Plattenwärmetauscher Typ M5-11-65;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2480;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;3868467036959
|
||||
1489;Edelstahl Plattenwärmetauscher Typ M5-11-70;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2590;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;9437200314292
|
||||
1490;Edelstahl Plattenwärmetauscher Typ M5-11-75;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2790;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;5328785590239
|
||||
1491;Edelstahl Plattenwärmetauscher Typ M5-11-80;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze;1;2990;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;1396411470228
|
||||
1492;Edelstahl Plattenwärmetauscher Typ M6-19-15;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;1250;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;3163238295239
|
||||
1493;Edelstahl Plattenwärmetauscher Typ M6-19-25;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;1850;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;4862330962177
|
||||
1494;Edelstahl Plattenwärmetauscher Typ M6-19-30;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;1990;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;1710131812265
|
||||
1495;Edelstahl Plattenwärmetauscher Typ M6-19-35;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;2380;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;1287056757693
|
||||
1496;Edelstahl Plattenwärmetauscher Typ M6-19-40;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;2480;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;4874329354658
|
||||
1497;Edelstahl Plattenwärmetauscher Typ M6-19-45;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;2640;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;4147810179628
|
||||
1498;Edelstahl Plattenwärmetauscher Typ M6-19-50;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;2890;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;524638185
|
||||
1499;Edelstahl Plattenwärmetauscher Typ M6-19-55;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;3080;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;4564280934296
|
||||
1500;Edelstahl Plattenwärmetauscher Typ M6-19-60;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;2980;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;1861389468671
|
||||
1501;Edelstahl Plattenwärmetauscher Typ M6-19-65;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;3280;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;7794860625802
|
||||
1502;Edelstahl Plattenwärmetauscher Typ M6-19-70;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;3740;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;3611080124547
|
||||
1503;Edelstahl Plattenwärmetauscher Typ M6-19-75;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;3950;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;3330396409604
|
||||
1504;Edelstahl Plattenwärmetauscher Typ M6-19-80;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;4120;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;9265397743935
|
||||
1505;Edelstahl Plattenwärmetauscher Typ M6-19-85;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;4300;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;5505866454530
|
||||
1506;Edelstahl Plattenwärmetauscher Typ M6-19-90;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;4490;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;3893594435450
|
||||
1507;Edelstahl Plattenwärmetauscher Typ M6-19-95;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;4490;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;8264263605712
|
||||
1508;Edelstahl Plattenwärmetauscher Typ M6-19-100;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend als Zwischenkreistauscher für Sole / Grundwasser Wärmepumpen;1;5270;Plattenwärmetauscher > M6-19 Baureihe / zerlegbar;;7695934105636
|
||||
1516;Edelstahl Plattenwärmetauscher Typ M7-17-30;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;1580;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;1089969929675
|
||||
1517;Edelstahl Plattenwärmetauscher Typ M7-17-40;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;1890;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;310774792552
|
||||
1518;Edelstahl Plattenwärmetauscher Typ M7-17-50;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;2290;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;1340784358003
|
||||
1519;Edelstahl Plattenwärmetauscher Typ M7-17-60;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;2670;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;7806787405877
|
||||
1520;Edelstahl Plattenwärmetauscher Typ M7-17-70;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;2990;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;168419438521
|
||||
1521;Edelstahl Plattenwärmetauscher Typ M7-17-80;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;3390;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;445370808496
|
||||
1522;Edelstahl Plattenwärmetauscher Typ M7-17-90;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;3750;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;6855062072649
|
||||
1523;Edelstahl Plattenwärmetauscher Typ M7-17-100;Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für die Poolerwärmung;1;3990;Plattenwärmetauscher > M7-17 Baureihe / zerlegbar;;3868467036959
|
||||
1535;Frischwasserstation FWS 830;Die LUPI Frischwasserstation der FWS-800 Baureihe ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem zerlegbarem Plattentauscher.;1;1190;Frischwasserstation;;9437200314292
|
||||
1536;Frischwasserstation FWS 850;Die LUPI Frischwasserstation der FWS-800 Baureihe ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem zerlegbarem Plattentauscher.;1;1390;Frischwasserstation;;5328785590239
|
||||
1537;Frischwasserstation FWS 860;Die LUPI Frischwasserstation der FWS-800 Baureihe ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem zerlegbarem Plattentauscher.;0;1590;Frischwasserstation;;1396411470228
|
||||
1538;Frischwasserstation FWS 630;Die LUPI Frischwasserstation der Baureihe FWS-600 ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem kupfergelöteten Plattentauscher aus Edelstahl.;1;699,9;Frischwasserstation;;3163238295239
|
||||
1539;Frischwasserstation FWS 640;Die LUPI Frischwasserstation der Baureihe FWS-600 ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem kupfergelöteten Plattentauscher aus Edelstahl.;1;798;Frischwasserstation;;4862330962177
|
||||
1540;Frischwasserstation FWS 650;Die LUPI Frischwasserstation der Baureihe FWS-600 ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem kupfergelöteten Plattentauscher aus Edelstahl.;1;879;Frischwasserstation;;1710131812265
|
||||
1541;Frischwasserstation FWS 660;Die LUPI Frischwasserstation der Baureihe FWS-600 ist ein leistungsstarkes Frischwassermodul für die hygienische und legionellenfreie Erzeugung von Warmwasser mit einem kupfergelöteten Plattentauscher aus Edelstahl.;0;545;Frischwasserstation;;1287056757693
|
||||
1683;Edelstahl Pool Wärmetauscher Typ SP-170-K;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;219,9;Pool Wärmetauscher;;4874329354658
|
||||
1684;Edelstahl Pool Wärmetauscher Typ SP-220-K;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;279,9;Pool Wärmetauscher > Plattenwärmetauscher mit PVC Anschluss;;4147810179628
|
||||
1685;Edelstahl Pool Wärmetauscher Typ SP-320-K;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;359,9;Pool Wärmetauscher;;524638185
|
||||
1686;Edelstahl Pool Wärmetauscher Typ EP-190-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;219,9;Pool Wärmetauscher;;4564280934296
|
||||
1687;Edelstahl Pool Wärmetauscher Typ EP-240-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;279,9;Pool Wärmetauscher;;1861389468671
|
||||
1688;Edelstahl Pool Wärmetauscher Typ EP-350-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;389,9;Pool Wärmetauscher;;7794860625802
|
||||
1689;Edelstahl Pool Wärmetauscher Typ EP-460-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;519,9;Pool Wärmetauscher;;3611080124547
|
||||
1690;Edelstahl Pool Wärmetauscher Typ EP-660-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;649,9;Pool Wärmetauscher;;3330396409604
|
||||
1691;Titan Pool Wärmetauscher Typ EP-100-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;459,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;9265397743935
|
||||
1693;Titan Pool Wärmetauscher Typ EP-170-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;479,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;5505866454530
|
||||
1694;Titan Pool Wärmetauscher Typ EP-220-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;584,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;3893594435450
|
||||
1695;Titan Pool Wärmetauscher Typ EP-320-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;684,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;8264263605712
|
||||
1696;Titan Pool Wärmetauscher Typ EP-420-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;784,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;7695934105636
|
||||
1697;Titan Pool Wärmetauscher Typ EP-520-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;890;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;1089969929675
|
||||
1698;Titan Pool Wärmetauscher Typ EP-620-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;0;917;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;310774792552
|
||||
1710;Titan Pool Wärmetauscher Typ SP-100-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes sowie salzhaltiges Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;379,9;Pool Wärmetauscher;;1340784358003
|
||||
1716;Titan Pool Wärmetauscher Typ SP-170-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes sowie salzhaltiges Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;459,9;Pool Wärmetauscher;;7806787405877
|
||||
1717;Titan Pool Wärmetauscher Typ SP-220-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes sowie salzhaltiges Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;579,9;Pool Wärmetauscher;;168419438521
|
||||
1718;Titan Pool Wärmetauscher Typ SP-320-TI;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes sowie salzhaltiges Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;679,9;Pool Wärmetauscher;;445370808496
|
||||
1721;Edelstahl Pool Wärmetauscher Typ EP-160-VA;Hochwertiger Plattenwärmetauscher aus Edelstahl zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen.;1;199,9;Pool Wärmetauscher;;6855062072649
|
||||
1796;Wandbefestigung für Plattentauscher EP-100 bis EP-720;;1;35,9;Wandhalterung;;3868467036959
|
||||
1797;Wandbefestigung für Plattentauscher SP-100 bis SP-620;;1;35,9;Wandhalterung;;9437200314292
|
||||
1816;Edelstahl Plattenwärmetauscher Typ M5-11-20;"Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze; Milchkühlung sowie als Zwischenkreistauscher für Sole und Grundwasser Wärmepumpen.";1;1199;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;5328785590239
|
||||
1817;Edelstahl Plattenwärmetauscher Typ M5-11-15;"Der Einsatz dieser Tauscherbaureihe eignet sich hervorragend für Kühlung von Bierwürze; Milchkühlung sowie als Zwischenkreistauscher für Sole und Grundwasser Wärmepumpen.";0;954;Plattenwärmetauscher > M5-11 Baureihe / zerlegbar;;1396411470228
|
||||
1840;Dämmschale für Plattentauscher EP-xx;;1;89,9;Isolierung für Wärmetauscher;;3163238295239
|
||||
2329;Abgastauscher Set AWT-704 inclusive Regler;Abgastauscher Set AWT-704 entwickelt zur Energieeinsparung bei Kaminöfen in Verbindung mit Pufferspeichern;0;750;Abgaswärmetauscher;;4862330962177
|
||||
2529;Titan Pool Wärmetauscher Typ EP-720-Ti;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;1090;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;1710131812265
|
||||
2552;Abgastauscher Set AWT-704 ohne Regler;Abgastauscher Set AWT-704 entwickelt zur Energieeinsparung bei Kaminöfen in Verbindung mit Pufferspeichern;1;870;Abgaswärmetauscher;;1287056757693
|
||||
3003;Titan Pool Wärmetauscher Typ EP-190-Ti;Hochwertiger Plattenwärmetauscher aus Reintitan zur Schwimmbadbeheizung. Geeignet für gechlortes Wasser. Höchstmögliche Wärmeübertragung bei niedrigen Vorlauftemperaturen. Poolseitige Anschlüsse aus Reintitan / hochtemperaturbeständig.;1;498,9;Pool Wärmetauscher > Plattenwärmetauscher mit Edelstahl / Titan Aschluss;;4874329354658
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
Index;Name;Description;Brand;Category;Price;Currency;Stock;EAN;Color;Size;Availability;Internal ID
|
||||
1;Compact Printer Air Advanced Digital;Situation organization these memory much off.;"Garner; Boyle and Flynn";Books & Stationery;265;USD;775;2091465262179;ForestGreen;Large;pre_order;56
|
||||
2;Tablet;Discussion loss politics free one thousand.;Mueller Inc;Shoes & Footwear;502;USD;81;5286196620740;Black;8x10 in;in_stock;29
|
||||
3;Smart Blender Cooker;No situation per.;"Lawson; Keller and Winters";Kitchen Appliances;227;USD;726;1282898648918;SlateGray;XS;in_stock;70
|
||||
4;Advanced Router Rechargeable;For force gas energy six laugh.;Gallagher and Sons;Kitchen Appliances;121;USD;896;3879177514583;PaleGreen;L;discontinued;31
|
||||
5;Portable Mouse Monitor Phone;Feeling back religious however author room scientist.;Irwin LLC;Kids' Clothing;1;USD;925;9055773261265;SeaShell;100x200 mm;discontinued;10
|
||||
6;Radio;Character prove growth contain serious customer.;"Benjamin; Nelson and Hancock";Skincare;426;USD;549;1150028980156;CornflowerBlue;30x40 cm;pre_order;60
|
||||
7;Ultra Projector Oven Thermostat Prime Advanced;Pattern possible look necessary indicate work nearly.;"Mccoy; Waters and Rose";Laptops & Computers;68;USD;871;5029747624534;Purple;S;discontinued;86
|
||||
8;Webcam Stove Grill;Deep area join carry age.;Morrow and Sons;Automotive;159;USD;584;9883725074294;MediumOrchid;8x10 in;pre_order;50
|
||||
9;Eco Radio;Know father for act let.;"Edwards; Odonnell and Conley";Skincare;454;USD;499;1773215338624;DimGray;Medium;pre_order;88
|
||||
10;Ultra Powerbank Brush Charger Max;Meeting add economic task outside.;"Brennan; Archer and Rosales";Fitness Equipment;845;USD;564;4877111475333;Silver;Extra Large;discontinued;88
|
||||
11;Wireless Dock;Whole bill sound whether will.;Russo-West;Health & Wellness;257;USD;168;9680811891595;Wheat;Extra Large;pre_order;30
|
||||
12;Fast Camera Router Fan Smart;Various above trouble itself crime form.;Vazquez and Sons;Cleaning Supplies;221;USD;672;8567222480604;MidnightBlue;Medium;pre_order;32
|
||||
13;Heater Radio;Ten do evidence billion perhaps read bank enter.;Delgado-Blackwell;Cycling;689;USD;156;5686660235911;Orange;L;pre_order;57
|
||||
14;Smart Trimmer Webcam Heater;Example available better.;Contreras PLC;Automotive;279;USD;818;1941032767914;Gainsboro;XXL;pre_order;66
|
||||
15;Webcam Dock Heater;State yet soon traditional your deal.;"Juarez; Powell and Travis";Cleaning Supplies;101;USD;149;1438856474369;Sienna;30x40 cm;pre_order;88
|
||||
16;Automatic Watch Lite Sense;As east entire positive source their.;"Reid; Chase and Ballard";Team Sports;316;USD;329;3500722785805;Tan;5x7 in;limited_stock;44
|
||||
17;Eco Iron Monitor Air;Color single indeed yard event popular food boy.;Barker-Murphy;Automotive;982;USD;47;7887280730963;OliveDrab;XL;out_of_stock;79
|
||||
18;Digital Tablet Router Printer Lite;Accept campaign every research test.;Vazquez-Smith;Health & Wellness;3;USD;732;4170125892616;LemonChiffon;10x10 cm;backorder;87
|
||||
19;Eco Freezer Powerbank Watch;Of price visit interesting enter three set.;"Pruitt; Higgins and Barnett";Cleaning Supplies;340;USD;618;6340907128242;Cyan;S;limited_stock;21
|
||||
20;Cooler Fan;Fall billion city share.;Bray LLC;Smartphones;529;USD;844;0267078141619;Bisque;XS;backorder;22
|
||||
21;Portable Camera Plus Air Ultra;Reality hair explain up bad.;Wang-Valenzuela;Women's Clothing;197;USD;163;0963840013930;Magenta;L;in_stock;96
|
||||
22;Wireless Powerbank 360 Advanced Ultra;Deal head decade age outside military culture.;Carney Ltd;Bedding & Bath;677;USD;418;3918763032312;Beige;M;out_of_stock;90
|
||||
23;Rechargeable Lamp Speakerphone Headphones;Effort own safe main walk quickly.;"Gallegos; Osborne and Carpenter";Skincare;664;USD;577;1824359393441;DarkBlue;L;pre_order;26
|
||||
24;Mini Scooter Microphone;Maybe around expect own whether pay.;"Douglas; Thornton and Soto";Grooming Tools;784;USD;510;9839666739792;DimGray;L;backorder;55
|
||||
25;Rechargeable Webcam Stove Grill;Movement you Mr decide history effect.;Horn-Pope;Health & Wellness;900;USD;623;6501687247749;PaleGreen;5x7 in;out_of_stock;47
|
||||
26;Mini Iron Drone Wireless Pro;From Congress low.;Khan-Parrish;Cycling;909;USD;797;9496081864722;CadetBlue;XXL;limited_stock;93
|
||||
27;Portable Freezer Phone Automatic Smart;Live fish audience piece his ago true.;Burton PLC;Automotive;350;USD;756;3486711401836;Snow;XL;pre_order;61
|
||||
28;Wireless Webcam Stove Grill;Pull at improve health also animal forward person.;Henry Group;Clothing & Apparel;858;USD;912;7097613907430;LightSalmon;50x70 cm;limited_stock;43
|
||||
29;Clock Brush;Other another must explain send somebody consider.;Larson-Spence;Furniture;985;USD;180;8301096575048;SaddleBrown;Extra Large;in_stock;40
|
||||
30;Keyboard Toaster Monitor;My head prove exist change.;Bonilla-Spears;Kids' Clothing;576;USD;988;6639325474032;DarkSlateGray;L;pre_order;40
|
||||
31;Silent Printer Fan Shaver;Region week yet weight.;Love LLC;Sports & Outdoors;102;USD;669;5564792899662;MediumSpringGreen;L;limited_stock;14
|
||||
32;Wireless Scooter Clean Mini;Green main imagine way suffer wall.;Terry-Oliver;Fragrances;283;USD;343;9921752342730;MintCream;S;pre_order;84
|
||||
33;Advanced Microphone Cooler Eco;Most other newspaper beyond real.;"Morales; Weaver and Fernandez";Smartphones;904;USD;532;7107438924403;LightCyan;Extra Large;limited_stock;86
|
||||
34;Automatic Brush Fast Eco;Record response relationship.;Newman Ltd;Kids' Clothing;407;USD;285;2327483415120;SeaGreen;8x10 in;out_of_stock;65
|
||||
35;Premium Bicycle Microphone;Congress how list third rise.;"Novak; Archer and Walton";Shoes & Footwear;480;USD;364;6209821998907;AliceBlue;Extra Large;discontinued;78
|
||||
36;Smart Phone Scooter Clean;Reality kid create thought window.;Marshall-Dougherty;Women's Clothing;635;USD;727;7883295446066;MediumVioletRed;10x10 cm;backorder;74
|
||||
37;Bicycle;Garden mother before ten different increase.;Hays-Cunningham;Smartphones;234;USD;394;7670612815694;White;10x10 cm;backorder;48
|
||||
38;Ultra Dock Trimmer Automatic Edge;Do customer stage act send.;Barnes-Glass;Kids' Clothing;640;USD;780;2837107354495;LightBlue;5x7 in;discontinued;96
|
||||
39;Wireless Tablet Router Printer Wireless Premium Air;North meeting short summer situation positive candidate.;Meyers-Hess;Sports & Outdoors;781;USD;947;8247903213713;BlanchedAlmond;XL;out_of_stock;69
|
||||
40;Clean Printer Advanced Premium Sense;Bag away always often join seat direction.;Williamson PLC;Haircare;913;USD;820;5234087663802;Moccasin;Small;discontinued;77
|
||||
41;Silent Dock Fast;Speak not hospital bit part.;"May; Hendrix and Robbins";Fishing & Hunting;100;USD;802;0938364240247;CadetBlue;M;limited_stock;12
|
||||
42;Ultra Speakerphone Oven Go Smart X;Value bill yeah tell phone.;"Zimmerman; Barr and Davis";Office Supplies;999;USD;853;0450118214736;MediumOrchid;12x18 in;pre_order;23
|
||||
43;Rechargeable Projector Pro;Bank everything ago girl.;"Levine; Martin and Mccann";Home Decor;935;USD;45;0655296358115;SlateBlue;XL;limited_stock;52
|
||||
44;Eco Vacuum;Bit name seat sea.;Werner PLC;Health & Wellness;259;USD;668;8611986118980;LightCoral;5x7 in;in_stock;45
|
||||
45;Smart Grill Tablet Fridge Go Smart Smart;By result ago born become.;"Huff; Cameron and Stephenson";Fitness Equipment;488;USD;966;9005775281402;Cornsilk;10x10 cm;out_of_stock;62
|
||||
46;Digital Stove Silent Pro;Suffer range between step mention peace prepare.;"Suarez; Riddle and Sanders";Health & Wellness;161;USD;349;5367012957872;OrangeRed;Extra Large;limited_stock;9
|
||||
47;Portable Powerbank X Air;Present court note medical bed red movie.;Hanson-Schultz;Camping & Hiking;599;USD;263;6854117854742;Moccasin;Large;discontinued;17
|
||||
48;Clock;Onto story what job require.;"Malone; Jacobson and Hudson";Team Sports;731;USD;664;1382809012286;FloralWhite;S;limited_stock;55
|
||||
49;Radio Treadmill;Through choose record prove happen.;Barron-Little;Office Supplies;511;USD;395;5461960384619;Violet;XL;discontinued;14
|
||||
50;Ultra Cooler Treadmill Touch Pro Ultra;Certainly simple light safe child PM candidate.;Bonilla-Oconnell;Fragrances;214;USD;574;3625664059934;NavajoWhite;XXL;pre_order;33
|
||||
51;Mini Fridge Camera;Little determine at huge month.;Decker and Sons;Fitness Equipment;777;USD;832;4894233116968;PaleGoldenRod;Extra Large;in_stock;16
|
||||
52;Rechargeable Tablet Plus Portable Mini;Expect question how sound.;Mooney-Gonzales;Fragrances;820;USD;535;8183922928019;Cyan;100x200 mm;in_stock;19
|
||||
53;Tablet;Many deal community public beyond safe anyone.;"Blake; Weiss and Montgomery";Beauty & Personal Care;408;USD;922;8183313115592;Chocolate;Medium;backorder;34
|
||||
54;Wireless Light Toaster Lite Touch Eco;Oil guy table industry hand which.;Singleton PLC;Bedding & Bath;791;USD;827;3057639268476;Fuchsia;50x70 cm;in_stock;64
|
||||
55;Scooter;Small approach possible choose according.;Rivas Group;Cameras & Accessories;370;USD;601;1974896712011;DarkOrchid;L;backorder;46
|
||||
56;Advanced Camera Heater Webcam X Ultra Prime;Audience bit past central film each.;Cervantes Ltd;Office Supplies;224;USD;372;0983367163970;Peru;50x70 cm;discontinued;56
|
||||
57;Ultra Keyboard Compact Eco;Bit responsibility cover him mean call civil.;Pace-Hodges;Books & Stationery;514;USD;491;8481605893389;LightGray;8x10 in;backorder;19
|
||||
58;Portable Scale Speaker Powerbank Clean;Throughout special new you view season within.;Morris LLC;Women's Clothing;689;USD;332;5175038823985;PowderBlue;Small;backorder;94
|
||||
59;Oven Speaker Fan;Hot behavior traditional.;Schwartz Ltd;Men's Clothing;489;USD;423;2567562782853;GoldenRod;Small;pre_order;99
|
||||
60;Automatic Speaker Router Lamp Prime;Word score education thousand high treatment.;"Sexton; Dickerson and Blair";Grooming Tools;621;USD;667;6744198567221;FireBrick;5x7 in;in_stock;61
|
||||
61;Smart Webcam Projector Lock;Subject agree you off.;Stokes Inc;Men's Clothing;440;USD;973;4811928042234;SteelBlue;Medium;in_stock;3
|
||||
62;Fast Fan;Avoid very final food scene possible.;Ali-Oliver;Cleaning Supplies;982;USD;804;3388615003133;DarkOrchid;100x200 mm;backorder;70
|
||||
63;Automatic Cooler Edge;Career for much exist.;"Odonnell; Boyle and Oconnor";Beauty & Personal Care;124;USD;513;6261793125392;LimeGreen;50x70 cm;pre_order;83
|
||||
64;Advanced Freezer Advanced Advanced;Chance material himself soldier.;Gill LLC;Office Supplies;489;USD;561;6474143371206;Tomato;S;pre_order;48
|
||||
65;Silent Trimmer Shaver Fast;Task point seat better.;Munoz Group;Smartphones;130;USD;876;4089415274929;DarkSlateGray;5x7 in;in_stock;76
|
||||
66;Treadmill;Vote only run modern.;"Frost; Christensen and Burnett";Women's Clothing;731;USD;744;4598541150958;Cyan;5x7 in;out_of_stock;70
|
||||
67;Mini Charger Lock Oven Sense Sense;Major tell him share allow.;"Burton; Gross and Giles";Haircare;750;USD;623;9282813513019;Olive;12x18 in;in_stock;81
|
||||
68;Thermostat Trimmer;Drug interview hotel decide pattern.;"Hester; Love and Lynch";"Accessories (Bags; Hats; Belts)";206;USD;677;8282848236311;MidnightBlue;8x10 in;discontinued;6
|
||||
69;Clean Iron Premium Air Wireless;Around tough popular present sign herself pattern.;"Shepherd; Greene and House";Beauty & Personal Care;293;USD;700;7935749142557;GhostWhite;XXL;out_of_stock;5
|
||||
70;Compact Mouse Mouse Router Mini;Occur miss son Democrat happy.;Barry PLC;Smartwatches;5;USD;247;0252926529077;PapayaWhip;10x10 cm;limited_stock;79
|
||||
71;Premium Lock Mini Advanced;Three character traditional maybe.;"Elliott; Mcfarland and Duran";Automotive;12;USD;439;3997003361528;Plum;XS;pre_order;40
|
||||
72;Silent Webcam Webcam Treadmill Sense Portable Advanced;Leg my mother father.;George-Day;Makeup;148;USD;650;6908065460286;Aqua;M;backorder;29
|
||||
73;Compact Thermostat Oven;Focus that consumer amount half.;Hull Inc;Home & Kitchen;685;USD;747;7695934105636;SaddleBrown;30x40 cm;in_stock;36
|
||||
74;Wireless Watch Tablet Printer Automatic Eco Sense;Might poor animal must protect blue forward.;Fleming Inc;Smartwatches;59;USD;169;1089969929675;Sienna;Large;out_of_stock;31
|
||||
75;Automatic Blender;Smile human machine section bank.;Mahoney-Bryan;Home Decor;630;USD;438;0310774792552;LightGoldenRodYellow;8x10 in;backorder;4
|
||||
76;Rechargeable Webcam Dock Heater;Organization address section collection church gun consumer do.;Kennedy-Gordon;Cycling;800;USD;151;1340784358003;Brown;XXL;in_stock;66
|
||||
77;Clean Toaster Oven Air Touch;Heavy threat beautiful material assume piece.;Olsen-Sawyer;Kids' Clothing;365;USD;71;7806787405877;LimeGreen;Medium;pre_order;40
|
||||
78;Brush;Control daughter effect investment piece training nation.;"Lowe; Mosley and Rivera";Bedding & Bath;273;USD;623;0168419438521;RoyalBlue;S;in_stock;42
|
||||
79;Portable Kettle;Apply out industry must tell.;Sampson-Leon;Home & Kitchen;50;USD;413;0445370808496;MediumAquaMarine;L;pre_order;25
|
||||
80;Rechargeable Brush Compact;Early century every amount than past.;Castro-Mccarty;Automotive;748;USD;326;6855062072649;Sienna;S;out_of_stock;81
|
||||
81;Fast Heater Cooker Compact Silent;Strategy fund mind rather change.;"Decker; Montes and Logan";Makeup;367;USD;19;3868467036959;Orchid;8x10 in;in_stock;15
|
||||
82;Mini Drone X Portable;Shoulder cost especially.;Whitney Group;Books & Stationery;352;USD;123;9437200314292;BlueViolet;Medium;backorder;12
|
||||
83;Heater Keyboard;Remember here kind enjoy source room reflect be.;Brooks and Sons;Office Supplies;103;USD;208;5328785590239;Chocolate;Extra Large;backorder;72
|
||||
84;Wireless Fan Thermostat Max Automatic Max;Design price for especially section college over green.;Kaiser-Banks;Books & Stationery;423;USD;759;1396411470228;MidnightBlue;5x7 in;in_stock;81
|
||||
85;Fast Keyboard;Success other institution fear.;Lewis Ltd;Camping & Hiking;998;USD;10;3163238295239;Cyan;50x70 cm;limited_stock;64
|
||||
86;Ultra Mixer Toaster Toaster Smart;Much guess have pattern southern true hair miss.;Galloway and Sons;Women's Clothing;342;USD;221;4862330962177;Tomato;S;pre_order;88
|
||||
87;Silent Speakerphone Scanner Monitor;Quality yet significant lawyer face field yet realize.;Cowan Inc;Fragrances;593;USD;580;1710131812265;Navy;XXL;discontinued;20
|
||||
88;Silent Scanner Monitor Treadmill;Do interesting suggest agreement range admit rule.;"Nichols; Howe and Miller";Health & Wellness;30;USD;728;1287056757693;Wheat;10x10 cm;pre_order;60
|
||||
89;Fast Vacuum Cooler;Explain six firm recent rock skin.;Blair-Russell;Sports & Outdoors;307;USD;320;4874329354658;LightSalmon;L;limited_stock;5
|
||||
90;Digital Trimmer;Ago floor nice member wait.;Christian-Tanner;Laptops & Computers;541;USD;488;4147810179628;SteelBlue;M;pre_order;31
|
||||
91;Automatic Trimmer Sense;Much table ground information news senior.;Harrington-Valentine;Kitchen Appliances;405;USD;950;0000524638185;SlateGray;8x10 in;in_stock;85
|
||||
92;Portable Scooter Wireless Digital;Thousand various evidence.;Bauer Inc;Cameras & Accessories;519;USD;495;4564280934296;DeepSkyBlue;Large;in_stock;36
|
||||
93;Fridge Cooker;Try better loss pretty special.;Jackson Group;Furniture;393;USD;499;1861389468671;Black;Small;in_stock;80
|
||||
94;Scanner;Draw material quickly most.;"Wang; Ayala and Bowen";Cleaning Supplies;472;USD;63;7794860625802;ForestGreen;12x18 in;backorder;8
|
||||
95;Ultra Radio Radio;Shoulder red boy away if.;Maldonado-Ritter;Haircare;382;USD;639;3611080124547;Aquamarine;12x18 in;pre_order;48
|
||||
96;Router;Investment everything story buy.;Atkinson Inc;Laptops & Computers;375;USD;703;3330396409604;Gainsboro;8x10 in;limited_stock;55
|
||||
97;Fast Thermostat Microphone Scooter;Nature notice themselves news.;Shea Ltd;Beauty & Personal Care;289;USD;727;9265397743935;White;Extra Large;backorder;25
|
||||
98;Eco Heater Toaster Stove Silent Sense;Understand still or summer rule.;West Ltd;Cleaning Supplies;232;USD;998;5505866454530;OldLace;Small;limited_stock;20
|
||||
99;Clean Blender Scale Lite;Final art some push.;"Bell; Gamble and Barrett";Camping & Hiking;241;USD;391;3893594435450;Aquamarine;5x7 in;limited_stock;5
|
||||
100;Smart Lamp;However public major baby.;"Hebert; Hughes and Trujillo";Bedding & Bath;71;USD;518;8264263605712;Brown;Medium;limited_stock;3
|
||||
|
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,7 @@
|
|||
package ai.dynamixs.rag;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
|
@ -15,6 +16,8 @@ import com.datastax.oss.driver.api.core.CqlSessionBuilder;
|
|||
import com.datastax.oss.driver.api.core.InvalidKeyspaceException;
|
||||
import com.datastax.oss.driver.api.core.cql.BoundStatement;
|
||||
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
|
||||
import com.datastax.oss.driver.api.core.cql.ResultSet;
|
||||
import com.datastax.oss.driver.api.core.cql.Row;
|
||||
import com.datastax.oss.driver.api.core.data.CqlVector;
|
||||
import com.datastax.oss.driver.api.core.servererrors.InvalidQueryException;
|
||||
|
||||
|
|
@ -54,8 +57,8 @@ public class ClusterService {
|
|||
public static final String ENV_EMBEDDINGS_CLUSTER_CONTACTPOINTS = "EMBEDDINGS_CLUSTER_CONTACTPOINTS";
|
||||
public static final String ENV_EMBEDDINGS_CLUSTER_KEYSPACE = "EMBEDDINGS_CLUSTER_KEYSPACE";
|
||||
|
||||
// public static final int DIMENSIONS=768;
|
||||
public static final int DIMENSIONS = 384;
|
||||
public static final int DIMENSIONS = 768;
|
||||
// public static final int DIMENSIONS = 384;
|
||||
|
||||
// optional environment settings
|
||||
public static final String ENV_EMBEDDINGS_CLUSTER_AUTH_USER = "EMBEDDINGS_CLUSTER_AUTH_USER";
|
||||
|
|
@ -122,7 +125,9 @@ public class ClusterService {
|
|||
Optional<String> keystorePwd;
|
||||
|
||||
private CqlSession session;
|
||||
|
||||
private PreparedStatement insertVectorStmt;
|
||||
private PreparedStatement selectVectorStmt;
|
||||
|
||||
@Resource
|
||||
private TimerService timerService;
|
||||
|
|
@ -362,26 +367,44 @@ public class ClusterService {
|
|||
}
|
||||
}
|
||||
|
||||
private void oldcreateSchema() throws ClusterException {
|
||||
|
||||
logger.info("│ ├── create schema...");
|
||||
// now create table schemas
|
||||
String query = "CREATE TABLE IF NOT EXISTS document_vectors (\n" + //
|
||||
" record_id timeuuid,\n" + //
|
||||
" id uuid,\n" + //
|
||||
" content_chunk text,\n" + //
|
||||
" content_vector VECTOR <FLOAT, 768>,\n" + //
|
||||
" created_at timestamp,\n" + //
|
||||
" PRIMARY KEY (id, created_at)\n" + //
|
||||
")" + //
|
||||
"WITH CLUSTERING ORDER BY (created_at DESC);";
|
||||
session.execute(query);
|
||||
|
||||
logger.info("│ ├── create index...");
|
||||
query = "CREATE INDEX IF NOT EXISTS edv_ann_index\n" + //
|
||||
" ON document_vectors(content_vector) USING 'sai';";
|
||||
|
||||
session.execute(query);
|
||||
logger.info("│ ├── ✅ database schema created.");
|
||||
public List<String> searchEmbeddings(List<Float> textEmbeddings) throws ClusterException {
|
||||
List<String> result = new ArrayList();
|
||||
// Prepare statement?
|
||||
if (selectVectorStmt == null) {
|
||||
String insertQuery = "SELECT id,content_chunk,similarity_cosine(content_vector, ?) " + //
|
||||
" FROM document_vectors " + //
|
||||
" ORDER BY content_vector ANN OF ? " + //
|
||||
" LIMIT 5";
|
||||
selectVectorStmt = session.prepare(insertQuery);
|
||||
}
|
||||
|
||||
try {
|
||||
// CqlVector verwenden
|
||||
CqlVector<Float> cqlVector = CqlVector.newInstance(textEmbeddings);
|
||||
|
||||
ResultSet resultRows = session.execute(selectVectorStmt.bind(
|
||||
cqlVector,
|
||||
cqlVector));
|
||||
|
||||
for (Row row : resultRows) {
|
||||
String id = row.getString(0);
|
||||
result.add(id);
|
||||
String contentChunk = row.getString(1);
|
||||
Float similarity = row.getFloat(2);
|
||||
System.out.println("--------------");
|
||||
System.out.println("ID: " + id);
|
||||
System.out.println("");
|
||||
System.out.println(contentChunk + " " + similarity);
|
||||
System.out.println("");
|
||||
System.out.println("");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new ClusterException(ClusterException.CLUSTER_ERROR,
|
||||
"Failed to select embeddings from keyspace: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ public class RAGAdapter implements SignalAdapter {
|
|||
public static final String LLM_PROMPT = "PROMPT";
|
||||
public static final String LLM_SUGGEST = "SUGGEST";
|
||||
public static final String LLM_INDEX = "INDEX";
|
||||
public static final String LLM_RETRIEVAL = "RETRIEVAL";
|
||||
|
||||
public static final int API_EVENT_SUCCESS = 110;
|
||||
public static final int API_EVENT_FAILURE = 90;
|
||||
|
|
@ -154,21 +155,43 @@ public class RAGAdapter implements SignalAdapter {
|
|||
*/
|
||||
public ItemCollection execute(ItemCollection workitem, ItemCollection event)
|
||||
throws AdapterException, PluginException {
|
||||
String llmAPIEndpoint = null;
|
||||
boolean llmAPIDebug = false;
|
||||
long processingTime = System.currentTimeMillis();
|
||||
|
||||
logger.finest("...running api adapter...");
|
||||
|
||||
// read optional configuration form the model or imixs.properties....
|
||||
try {
|
||||
|
||||
List<ItemCollection> llmIndexDefinitions = workflowService.evalWorkflowResultXML(event, "imixs-ai",
|
||||
LLM_INDEX, workitem, false);
|
||||
List<ItemCollection> llmRetrievalDefinitions = workflowService.evalWorkflowResultXML(event, "imixs-ai",
|
||||
LLM_RETRIEVAL, workitem, false);
|
||||
|
||||
// verify if we have an INDEX configuration
|
||||
if (llmIndexDefinitions != null && llmIndexDefinitions.size() > 0) {
|
||||
createIndex(llmIndexDefinitions, workitem, event);
|
||||
}
|
||||
|
||||
// verify if we have an RETRIEVAL configuration
|
||||
if (llmRetrievalDefinitions != null && llmRetrievalDefinitions.size() > 0) {
|
||||
createRetrieval(llmRetrievalDefinitions, workitem, event);
|
||||
}
|
||||
|
||||
return workitem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a RAG Index for a Worktiem based on IndexDefinitions
|
||||
*
|
||||
* @param llmIndexDefinitions
|
||||
* @param workitem
|
||||
* @param event
|
||||
* @throws PluginException
|
||||
* @throws AdapterException
|
||||
*/
|
||||
private void createIndex(List<ItemCollection> llmIndexDefinitions, ItemCollection workitem, ItemCollection event)
|
||||
throws PluginException, AdapterException {
|
||||
long processingTime = System.currentTimeMillis();
|
||||
String llmAPIEndpoint = null;
|
||||
boolean llmAPIDebug = false;
|
||||
try {
|
||||
for (ItemCollection indexDefinition : llmIndexDefinitions) {
|
||||
llmAPIEndpoint = parseLLMEndpointByBPMN(indexDefinition);
|
||||
// do we have a valid endpoint?
|
||||
|
|
@ -180,7 +203,7 @@ public class RAGAdapter implements SignalAdapter {
|
|||
llmAPIDebug = true;
|
||||
}
|
||||
|
||||
logger.info("├── post Llama-cpp request: " + llmAPIEndpoint);
|
||||
logger.info("├── post RAG index request: " + llmAPIEndpoint);
|
||||
|
||||
String promptTemplate = llmService.loadPromptTemplate(event);
|
||||
logger.info("│ ├── PromptTemplate: ");
|
||||
|
|
@ -221,15 +244,86 @@ public class RAGAdapter implements SignalAdapter {
|
|||
"├── ✅ Total processing time: " + (System.currentTimeMillis() - processingTime) + "ms");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (PluginException e) {
|
||||
logger.severe("├── ⚠️ Failed to post embeddings: " + e.getMessage());
|
||||
throw e;
|
||||
} catch (ClusterException e) {
|
||||
throw new PluginException(RAGAdapter.class.getSimpleName(), API_ERROR, e.getMessage(), e);
|
||||
}
|
||||
return workitem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a RAG retrieval for a Worktiem based on RetrievalDefinitions
|
||||
*
|
||||
* @param llmRetrievalfDefinitions
|
||||
* @param workitem
|
||||
* @param event
|
||||
* @throws PluginException
|
||||
* @throws AdapterException
|
||||
*/
|
||||
private void createRetrieval(List<ItemCollection> llmRetrievalfDefinitions, ItemCollection workitem,
|
||||
ItemCollection event) throws PluginException, AdapterException {
|
||||
long processingTime = System.currentTimeMillis();
|
||||
String llmAPIEndpoint = null;
|
||||
boolean llmAPIDebug = false;
|
||||
try {
|
||||
for (ItemCollection indexDefinition : llmRetrievalfDefinitions) {
|
||||
llmAPIEndpoint = parseLLMEndpointByBPMN(indexDefinition);
|
||||
// do we have a valid endpoint?
|
||||
if (llmAPIEndpoint == null || llmAPIEndpoint.isEmpty()) {
|
||||
throw new PluginException(RAGAdapter.class.getSimpleName(), API_ERROR,
|
||||
"imixs-ai configuration error: no llm service endpoint defined!");
|
||||
}
|
||||
if ("true".equalsIgnoreCase(indexDefinition.getItemValueString("debug"))) {
|
||||
llmAPIDebug = true;
|
||||
}
|
||||
|
||||
logger.info("├── post RAG Retrievalf request: " + llmAPIEndpoint);
|
||||
|
||||
String promptTemplate = llmService.loadPromptTemplate(event);
|
||||
logger.info("│ ├── PromptTemplate: ");
|
||||
logger.info(promptTemplate);
|
||||
|
||||
String llmPrompt = llmService.buildPrompt(promptTemplate, workitem);
|
||||
|
||||
if (llmPrompt.isBlank()) {
|
||||
throw new PluginException(
|
||||
RAGAdapter.class.getSimpleName(), API_ERROR,
|
||||
"Unable to parse prompt for RAG indexing");
|
||||
}
|
||||
|
||||
if (llmAPIDebug) {
|
||||
logger.info("│ ├── Total Prompt Length = " + llmPrompt.length());
|
||||
logger.info("│ ├── Prompt: ");
|
||||
logger.info(llmPrompt);
|
||||
}
|
||||
|
||||
// retrieve prompt....
|
||||
|
||||
List<Float> indexResult = llmService.postEmbedding(llmPrompt, llmAPIEndpoint, llmAPIDebug);
|
||||
|
||||
if (llmAPIDebug) {
|
||||
logger.info("├── ⇨ " + indexResult.size() + " floats stored in RAG db.");
|
||||
|
||||
}
|
||||
// search cassandra
|
||||
List<String> ids = clusterService.searchEmbeddings(indexResult);
|
||||
|
||||
workitem.setItemValue("product.ref", ids);
|
||||
|
||||
if (llmAPIDebug) {
|
||||
logger.info(
|
||||
"├── found " + ids.size() + " matches");
|
||||
logger.info(
|
||||
"├── ✅ Total processing time: " + (System.currentTimeMillis() - processingTime) + "ms");
|
||||
}
|
||||
}
|
||||
} catch (PluginException e) {
|
||||
logger.severe("├── ⚠️ Failed to post embeddings: " + e.getMessage());
|
||||
throw e;
|
||||
} catch (ClusterException e) {
|
||||
throw new PluginException(RAGAdapter.class.getSimpleName(), API_ERROR, e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
1417
workflow/offer-de-1.0.0.bpmn
Normal file
1417
workflow/offer-de-1.0.0.bpmn
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -87,18 +87,22 @@
|
|||
<imixs:value><![CDATA[form_basic]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtworkflowabstract" type="xs:string">
|
||||
<imixs:value><![CDATA[<strong>Product: <itemvalue>_name</itemvalue></strong><br />
|
||||
EAN: <itemvalue>_ean</itemvalue><br />
|
||||
Category: <itemvalue>_category</itemvalue><br />
|
||||
Brand: <itemvalue>_brand</itemvalue><br />
|
||||
<hr />
|
||||
Description: <br />
|
||||
<itemvalue>_description</itemvalue><br />
|
||||
<hr />
|
||||
Price: <itemvalue>_price</itemvalue> <itemvalue>_currency</itemvalue><br />
|
||||
Stock: <itemvalue>_stock</itemvalue><br />
|
||||
Size: <itemvalue>_size</itemvalue><br />
|
||||
Color: <itemvalue>_color</itemvalue><br />
|
||||
<imixs:value><![CDATA[**Product: <itemvalue>_name</itemvalue>**
|
||||
|
||||
EAN: <itemvalue>_ean</itemvalue>
|
||||
Category: <itemvalue>_category</itemvalue>
|
||||
Brand: <itemvalue>_brand</itemvalue>
|
||||
|
||||
**Product Details:**
|
||||
|
||||
|
||||
Description:
|
||||
<itemvalue>_description</itemvalue>
|
||||
|
||||
Price: <itemvalue>_price</itemvalue> <itemvalue>_currency</itemvalue>
|
||||
Stock: <itemvalue>_stock</itemvalue>
|
||||
Size: <itemvalue>_size</itemvalue>
|
||||
Color: <itemvalue>_color</itemvalue>
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
|
|
@ -142,14 +146,11 @@ Color: <itemvalue>_color</itemvalue><br />
|
|||
<item name="_description" type="textarea" label="Beschreibung:" />
|
||||
</imixs-form-section>
|
||||
<imixs-form-section columns="2" readonly="true">
|
||||
<item name="_brand" type="text" label="Marke:" />
|
||||
<item name="_ean" type="text" label="EAN:" />
|
||||
<item name="_price" type="currency" label="Preis:" />
|
||||
<item name="_currency" type="text" label="Währung:" />
|
||||
|
||||
<item name="_stock" type="text" label="Bestand:" />
|
||||
<item name="_size" type="text" label="Größe:" />
|
||||
<item name="_category" type="text" label="Kategorie:" />
|
||||
<item name="_color" type="text" label="Farbe:" />
|
||||
</imixs-form-section>
|
||||
</imixs-form>
|
||||
]]></bpmn2:documentation>
|
||||
|
|
@ -157,21 +158,6 @@ Color: <itemvalue>_color</itemvalue><br />
|
|||
</bpmn2:dataObject>
|
||||
<bpmn2:task id="Task_3" imixs:processid="1200" name="Verfügbar">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowabstract" type="xs:string">
|
||||
<imixs:value><![CDATA[<strong>Product: <itemvalue>_name</itemvalue></strong><br />
|
||||
EAN: <itemvalue>_ean</itemvalue><br />
|
||||
Category: <itemvalue>_category</itemvalue><br />
|
||||
Brand: <itemvalue>_brand</itemvalue><br />
|
||||
<hr />
|
||||
Description: <br />
|
||||
<itemvalue>_description</itemvalue><br />
|
||||
<hr />
|
||||
Price: <itemvalue>_price</itemvalue> <itemvalue>_currency</itemvalue><br />
|
||||
Stock: <itemvalue>_stock</itemvalue><br />
|
||||
Size: <itemvalue>_size</itemvalue><br />
|
||||
Color: <itemvalue>_color</itemvalue><br />
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnung erhalten]]></imixs:value>
|
||||
</imixs:item>
|
||||
|
|
@ -197,6 +183,21 @@ Color: <itemvalue>_color</itemvalue><br />
|
|||
<imixs:item name="txttype" type="xs:string">
|
||||
<imixs:value><![CDATA[workitem]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtworkflowabstract" type="xs:string">
|
||||
<imixs:value><![CDATA[**Product: <itemvalue>_name</itemvalue>**
|
||||
|
||||
EAN: <itemvalue>_ean</itemvalue>
|
||||
Category: <itemvalue>_category</itemvalue>
|
||||
|
||||
**Product Details:**
|
||||
|
||||
Description:
|
||||
<itemvalue>_description</itemvalue>
|
||||
|
||||
Price: <itemvalue>_price</itemvalue> <itemvalue>_currency</itemvalue>
|
||||
Stock: <itemvalue>_stock</itemvalue>
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_27"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_42</bpmn2:incoming>
|
||||
|
|
|
|||
|
|
@ -1891,9 +1891,9 @@ result.isValid=true;
|
|||
<dc:Bounds height="50.0" width="110.0" x="308.0" y="180.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="DataObject_2" id="BPMNShape_DataObject_1">
|
||||
<dc:Bounds height="50.0" width="35.0" x="300.0" y="89.0"/>
|
||||
<dc:Bounds height="50.0" width="35.0" x="301.0" y="89.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_85">
|
||||
<dc:Bounds height="20.0" width="100.0" x="268.0" y="139.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="269.0" y="139.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_13" id="BPMNShape_IntermediateCatchEvent_13">
|
||||
|
|
@ -2060,7 +2060,7 @@ result.isValid=true;
|
|||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="Association_2" id="BPMNEdge_Association_2" sourceElement="BPMNShape_DataObject_1" targetElement="BPMNShape_Task_5">
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_86"/>
|
||||
<di:waypoint x="335.0" y="114.0"/>
|
||||
<di:waypoint x="336.0" y="114.0"/>
|
||||
<di:waypoint x="363.0" y="114.0"/>
|
||||
<di:waypoint x="363.0" y="180.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
|
|
|
|||
Loading…
Reference in a new issue