Skip to content

Commit 9a4b9e2

Browse files
authored
v0.4.25: variables block, sort ordering for kb, careers page, storage service
2 parents a02016e + fcf947d commit 9a4b9e2

File tree

183 files changed

+14757
-2427
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

183 files changed

+14757
-2427
lines changed

apps/docs/app/[lang]/[[...slug]]/page.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import { CodeBlock } from '@/components/ui/code-block'
99
import { CopyPageButton } from '@/components/ui/copy-page-button'
1010
import { source } from '@/lib/source'
1111

12-
export const dynamic = 'force-dynamic'
13-
1412
export default async function Page(props: { params: Promise<{ slug?: string[]; lang: string }> }) {
1513
const params = await props.params
1614
const page = source.getPage(params.slug, params.lang)

apps/docs/app/global.css

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@
5252

5353
/* Light mode navbar and search styling */
5454
:root:not(.dark) nav {
55-
background-color: hsla(0, 0%, 96%, 0.92) !important;
56-
backdrop-filter: blur(25px) saturate(180%) brightness(1.05) !important;
57-
-webkit-backdrop-filter: blur(25px) saturate(180%) brightness(1.05) !important;
55+
background-color: hsla(0, 0%, 96%, 0.85) !important;
5856
}
5957

6058
:root:not(.dark) nav button[type="button"] {
@@ -68,6 +66,13 @@
6866
color: rgba(0, 0, 0, 0.6) !important;
6967
}
7068

69+
/* Dark mode navbar and search styling */
70+
:root.dark nav {
71+
background-color: hsla(0, 0%, 7.04%, 0.92) !important;
72+
backdrop-filter: blur(25px) saturate(180%) brightness(0.6) !important;
73+
-webkit-backdrop-filter: blur(25px) saturate(180%) brightness(0.6) !important;
74+
}
75+
7176
/* ============================================
7277
Custom Sidebar Styling (Turborepo-inspired)
7378
============================================ */

apps/docs/components/navbar/navbar.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ export function Navbar() {
1111
<nav
1212
className='sticky top-0 z-50 border-border/50 border-b'
1313
style={{
14-
backgroundColor: 'hsla(0, 0%, 7.04%, 0.92)',
15-
backdropFilter: 'blur(25px) saturate(180%) brightness(0.6)',
16-
WebkitBackdropFilter: 'blur(25px) saturate(180%) brightness(0.6)',
14+
backdropFilter: 'blur(25px) saturate(180%)',
15+
WebkitBackdropFilter: 'blur(25px) saturate(180%)',
1716
}}
1817
>
1918
{/* Desktop: Single row layout */}

apps/docs/content/docs/de/blocks/index.mdx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Blöcke sind die Bausteine, die du miteinander verbindest, um KI-Workflows zu er
1616

1717
## Grundlegende Blocktypen
1818

19-
Sim bietet sieben grundlegende Blocktypen, die die wesentlichen Funktionen von KI-Workflows abdecken:
19+
Sim bietet wesentliche Blocktypen, die die Kernfunktionen von KI-Workflows abdecken:
2020

2121
### Verarbeitungsblöcke
2222
- **[Agent](/blocks/agent)** - Chatte mit KI-Modellen (OpenAI, Anthropic, Google, lokale Modelle)
@@ -28,16 +28,20 @@ Sim bietet sieben grundlegende Blocktypen, die die wesentlichen Funktionen von K
2828
- **[Router](/blocks/router)** - Nutze KI, um Anfragen intelligent auf verschiedene Pfade zu leiten
2929
- **[Evaluator](/blocks/evaluator)** - Bewerte und beurteile die Inhaltsqualität mit KI
3030

31+
### Ablaufsteuerungsblöcke
32+
- **[Variablen](/blocks/variables)** - Workflow-bezogene Variablen setzen und verwalten
33+
- **[Warten](/blocks/wait)** - Workflow-Ausführung für eine bestimmte Zeitverzögerung pausieren
34+
3135
### Ausgabeblöcke
32-
- **[Response](/blocks/response)** - Formatiere und gib endgültige Ergebnisse aus deinem Workflow zurück
36+
- **[Antwort](/blocks/response)** - Formatieren und Zurückgeben der endgültigen Ergebnisse aus Ihrem Workflow
3337

3438
## Wie Blöcke funktionieren
3539

3640
Jeder Block hat drei Hauptkomponenten:
3741

3842
**Eingaben**: Daten, die in den Block von anderen Blöcken oder Benutzereingaben kommen
39-
**Konfiguration**: Einstellungen, die das Verhalten des Blocks steuern
40-
**Ausgaben**: Daten, die der Block für andere Blöcke produziert
43+
**Konfiguration**: Einstellungen, die steuern, wie der Block sich verhält
44+
**Ausgaben**: Daten, die der Block für andere Blöcke zur Verwendung erzeugt
4145

4246
<Steps>
4347
<Step>
@@ -56,7 +60,7 @@ Jeder Block hat drei Hauptkomponenten:
5660
Sie erstellen Workflows, indem Sie Blöcke miteinander verbinden. Die Ausgabe eines Blocks wird zur Eingabe eines anderen:
5761

5862
- **Ziehen zum Verbinden**: Ziehen Sie von einem Ausgabeport zu einem Eingabeport
59-
- **Mehrfachverbindungen**: Eine Ausgabe kann mit mehreren Eingängen verbunden werden
63+
- **Mehrfachverbindungen**: Eine Ausgabe kann mit mehreren Eingaben verbunden werden
6064
- **Verzweigende Pfade**: Einige Blöcke können basierend auf Bedingungen zu verschiedenen Pfaden weiterleiten
6165

6266
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
@@ -73,7 +77,7 @@ User Input → Agent → Function → Response
7377
```
7478

7579
### Bedingte Verzweigung
76-
Verwenden Sie Bedingungsblöcke oder Router-Blöcke, um verschiedene Pfade zu erstellen:
80+
Verwenden Sie Bedingung- oder Router-Blöcke, um verschiedene Pfade zu erstellen:
7781

7882
```
7983
User Input → Router → Agent A (for questions)
@@ -93,37 +97,43 @@ Agent → Evaluator → Condition → Response (if good)
9397
Jeder Blocktyp hat spezifische Konfigurationsoptionen:
9498

9599
**Alle Blöcke**:
96-
- Ein-/Ausgabeverbindungen
100+
- Eingabe-/Ausgabeverbindungen
97101
- Fehlerbehandlungsverhalten
98-
- Zeitüberschreitungseinstellungen für die Ausführung
102+
- Einstellungen für Ausführungs-Timeout
99103

100104
**KI-Blöcke** (Agent, Router, Evaluator):
101105
- Modellauswahl (OpenAI, Anthropic, Google, lokal)
102106
- API-Schlüssel und Authentifizierung
103-
- Temperature und andere Modellparameter
107+
- Temperatur und andere Modellparameter
104108
- Systemaufforderungen und Anweisungen
105109

106-
**Logikblöcke** (Bedingung, Funktion):
110+
**Logik-Blöcke** (Bedingung, Funktion):
107111
- Benutzerdefinierte Ausdrücke oder Code
108112
- Variablenreferenzen
109-
- Einstellungen für die Ausführungsumgebung
113+
- Einstellungen für Ausführungsumgebung
110114

111-
**Integrationsblöcke** (API, Antwort):
115+
**Integrations-Blöcke** (API, Response):
112116
- Endpunktkonfiguration
113117
- Header und Authentifizierung
114118
- Anfrage-/Antwortformatierung
115119

116120
<Cards>
117-
<Card title="Agent Block" href="/blocks/agent">
118-
Verbindung zu KI-Modellen herstellen und intelligente Antworten erzeugen
121+
<Card title="Agent-Block" href="/blocks/agent">
122+
Verbindung zu KI-Modellen herstellen und intelligente Antworten erstellen
119123
</Card>
120-
<Card title="Function Block" href="/blocks/function">
124+
<Card title="Funktions-Block" href="/blocks/function">
121125
Benutzerdefinierten Code ausführen, um Daten zu verarbeiten und zu transformieren
122126
</Card>
123-
<Card title="API Block" href="/blocks/api">
127+
<Card title="API-Block" href="/blocks/api">
124128
Integration mit externen Diensten und APIs
125129
</Card>
126-
<Card title="Condition Block" href="/blocks/condition">
130+
<Card title="Bedingungs-Block" href="/blocks/condition">
127131
Verzweigende Logik basierend auf Datenbewertung erstellen
128132
</Card>
133+
<Card title="Variablen-Block" href="/blocks/variables">
134+
Workflow-bezogene Variablen setzen und verwalten
135+
</Card>
136+
<Card title="Warte-Block" href="/blocks/wait">
137+
Workflow-Ausführung für bestimmte Zeitverzögerungen pausieren
138+
</Card>
129139
</Cards>

apps/docs/content/docs/de/blocks/loop.mdx

Lines changed: 89 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Image } from '@/components/ui/image'
99

1010
Der Loop-Block ist ein Container-Block in Sim, der es ermöglicht, iterative Workflows zu erstellen, indem eine Gruppe von Blöcken wiederholt ausgeführt wird. Loops ermöglichen iterative Verarbeitung in deinen Workflows.
1111

12-
Der Loop-Block unterstützt zwei Arten der Iteration:
12+
Der Schleifenblock unterstützt vier Arten der Iteration:
1313

1414
<Callout type="info">
1515
Loop-Blöcke sind Container-Knoten, die andere Blöcke enthalten können. Die Blöcke innerhalb einer Schleife werden basierend auf deiner Konfiguration mehrfach ausgeführt.
@@ -27,10 +27,10 @@ Der Loop-Block ermöglicht dir:
2727
<strong>Operationen wiederholen</strong>: Blöcke eine festgelegte Anzahl von Malen ausführen
2828
</Step>
2929
<Step>
30-
<strong>Sequentielle Verarbeitung</strong>: Datentransformation in geordneten Iterationen durchführen
30+
<strong>Auf Bedingungen basierte Schleifen</strong>: Ausführung fortsetzen, während oder bis eine Bedingung erfüllt ist
3131
</Step>
3232
<Step>
33-
<strong>Ergebnisse aggregieren</strong>: Ausgaben aus allen Schleifeniterationen sammeln
33+
<strong>Ergebnisse aggregieren</strong>: Ausgaben aus allen Schleifendurchläufen sammeln
3434
</Step>
3535
</Steps>
3636

@@ -47,23 +47,23 @@ Der Loop-Block führt enthaltene Blöcke durch sequentielle Iteration aus:
4747

4848
### Schleifentyp
4949

50-
Wähle zwischen zwei Arten von Schleifen:
50+
Wähle zwischen vier Arten von Schleifen:
5151

52-
<Tabs items={['For Loop', 'ForEach Loop']}>
52+
<Tabs items={['For-Schleife', 'ForEach-Schleife', 'While-Schleife', 'Do-While-Schleife']}>
5353
<Tab>
54-
**For Loop (Iterationen)** - Eine numerische Schleife, die eine feste Anzahl von Malen ausgeführt wird:
54+
**For-Schleife (Iterationen)** - Eine numerische Schleife, die eine festgelegte Anzahl von Malen ausgeführt wird:
5555

5656
<div className="flex justify-center">
5757
<Image
5858
src="/static/blocks/loop-1.png"
59-
alt="For Loop mit Iterationen"
59+
alt="For-Schleife mit Iterationen"
6060
width={500}
6161
height={400}
6262
className="my-6"
6363
/>
6464
</div>
6565

66-
Verwende diese Option, wenn du eine Operation eine bestimmte Anzahl von Malen wiederholen musst.
66+
Verwende diese, wenn du eine Operation eine bestimmte Anzahl von Malen wiederholen musst.
6767

6868

6969
```
@@ -100,6 +100,58 @@ Wähle zwischen zwei Arten von Schleifen:
100100
```
101101

102102
</Tab>
103+
<Tab>
104+
**While-Schleife (Bedingungsbasiert)** - Wird weiter ausgeführt, solange eine Bedingung als wahr ausgewertet wird:
105+
106+
<div className="flex justify-center">
107+
<Image
108+
src="/static/blocks/loop-3.png"
109+
alt="While-Schleife mit Bedingung"
110+
width={500}
111+
height={400}
112+
className="my-6"
113+
/>
114+
</div>
115+
116+
Verwende diese, wenn du eine Schleife benötigst, die läuft, bis eine bestimmte Bedingung erfüllt ist. Die Bedingung wird **vor** jeder Iteration überprüft.
117+
118+
119+
```
120+
Example: While <variable.i> < 10
121+
- Check condition → Execute if true
122+
- Inside loop: Increment <variable.i>
123+
- Inside loop: Variables assigns i = <variable.i> + 1
124+
- Check condition → Execute if true
125+
- Check condition → Exit if false
126+
```
127+
128+
</Tab>
129+
<Tab>
130+
**Do-While-Schleife (Bedingungsbasiert)** - Wird mindestens einmal ausgeführt und dann fortgesetzt, solange eine Bedingung wahr ist:
131+
132+
<div className="flex justify-center">
133+
<Image
134+
src="/static/blocks/loop-3.png"
135+
alt="Do-While-Schleife mit Bedingung"
136+
width={500}
137+
height={400}
138+
className="my-6"
139+
/>
140+
</div>
141+
142+
Verwende diese, wenn du mindestens eine Ausführung benötigst und dann eine Schleife, bis eine Bedingung erfüllt ist. Die Bedingung wird **nach** jeder Iteration überprüft.
143+
144+
145+
```
146+
Example: Do-while <variable.i> < 10
147+
- Execute blocks
148+
- Inside loop: Increment <variable.i>
149+
- Inside loop: Variables assigns i = <variable.i> + 1
150+
- Check condition → Continue if true
151+
- Check condition → Exit if false
152+
```
153+
154+
</Tab>
103155
</Tabs>
104156

105157
## Wie man Schleifen verwendet
@@ -113,9 +165,9 @@ Wähle zwischen zwei Arten von Schleifen:
113165

114166
### Auf Ergebnisse zugreifen
115167

116-
Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
168+
Nach Abschluss einer Schleife können Sie auf die aggregierten Ergebnisse zugreifen:
117169

118-
- **`<loop.results>`**: Array von Ergebnissen aus allen Schleifendurchläufen
170+
- **`<loop.results>`**: Array mit Ergebnissen aus allen Schleifendurchläufen
119171

120172
## Beispielanwendungsfälle
121173

@@ -143,17 +195,30 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
143195
</ol>
144196
</div>
145197

198+
### Zähler mit While-Schleife
199+
200+
<div className="mb-4 rounded-md border p-4">
201+
<h4 className="font-medium">Szenario: Elemente mit zählerbasierter Schleife verarbeiten</h4>
202+
<ol className="list-decimal pl-5 text-sm">
203+
<li>Workflow-Variable initialisieren: `i = 0`</li>
204+
<li>While-Schleife mit Bedingung: `<variable.i>` \< 10</li>
205+
<li>Innerhalb der Schleife: Agent verarbeitet Element am Index `<variable.i>`</li>
206+
<li>Innerhalb der Schleife: Variable erhöht `i = <variable.i> + 1`</li>
207+
<li>Schleife wird fortgesetzt, solange i kleiner als 10 ist</li>
208+
</ol>
209+
</div>
210+
146211
## Erweiterte Funktionen
147212

148213
### Einschränkungen
149214

150215
<Callout type="warning">
151216
Container-Blöcke (Schleifen und Parallele) können nicht ineinander verschachtelt werden. Das bedeutet:
152-
- Du kannst keinen Schleifenblock in einen anderen Schleifenblock platzieren
153-
- Du kannst keinen Parallelblock in einen Schleifenblock platzieren
154-
- Du kannst keinen Container-Block in einen anderen Container-Block platzieren
217+
- Sie können keinen Schleifenblock in einem anderen Schleifenblock platzieren
218+
- Sie können keinen Parallelblock in einem Schleifenblock platzieren
219+
- Sie können keinen Container-Block in einem anderen Container-Block platzieren
155220

156-
Wenn du mehrdimensionale Iterationen benötigst, erwäge eine Umstrukturierung deines Workflows, um sequentielle Schleifen zu verwenden oder Daten in Stufen zu verarbeiten.
221+
Wenn Sie mehrdimensionale Iterationen benötigen, sollten Sie Ihren Workflow umstrukturieren, um sequentielle Schleifen zu verwenden oder Daten in Stufen zu verarbeiten.
157222
</Callout>
158223

159224
<Callout type="info">
@@ -162,17 +227,20 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
162227

163228
## Eingaben und Ausgaben
164229

165-
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
230+
<Tabs items={['Configuration', 'Variables', 'Results']}>
166231
<Tab>
167232
<ul className="list-disc space-y-2 pl-6">
168233
<li>
169-
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for' oder 'forEach'
234+
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for', 'forEach', 'while' oder 'doWhile'
170235
</li>
171236
<li>
172237
<strong>Iterationen</strong>: Anzahl der Ausführungen (für for-Schleifen)
173238
</li>
174239
<li>
175-
<strong>Sammlung</strong>: Array oder Objekt zum Durchlaufen (für forEach-Schleifen)
240+
<strong>Sammlung</strong>: Array oder Objekt, über das iteriert werden soll (forEach-Schleifen)
241+
</li>
242+
<li>
243+
<strong>Bedingung</strong>: Boolescher Ausdruck zur Auswertung (while/do-while-Schleifen)
176244
</li>
177245
</ul>
178246
</Tab>
@@ -204,8 +272,8 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
204272
</Tab>
205273
</Tabs>
206274

207-
## Best Practices
275+
## Bewährte Praktiken
208276

209-
- **Setzen Sie vernünftige Grenzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden
210-
- **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie ForEach statt For-Schleifen, wenn Sie Arrays oder Objekte verarbeiten
211-
- **Behandeln Sie Fehler angemessen**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen einzubauen, um robuste Workflows zu gewährleisten
277+
- **Vernünftige Grenzen setzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden
278+
- **ForEach für Sammlungen verwenden**: Verwenden Sie ForEach statt For-Schleifen, wenn Sie Arrays oder Objekte verarbeiten
279+
- **Fehler elegant behandeln**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen einzubauen, um robuste Workflows zu gewährleisten

0 commit comments

Comments
 (0)