diff --git a/.github/workflows/i18n.yml b/.github/workflows/i18n.yml
index 1096bbaf5a..d71cdffd61 100644
--- a/.github/workflows/i18n.yml
+++ b/.github/workflows/i18n.yml
@@ -1,13 +1,11 @@
name: 'Auto-translate Documentation'
-# Temporarily disabled
on:
- workflow_dispatch: # Allow manual triggers only
- # push:
- # branches: [ staging ]
- # paths:
- # - 'apps/docs/content/docs/en/**'
- # - 'apps/docs/i18n.json'
+ push:
+ branches: [ staging ]
+ paths:
+ - 'apps/docs/content/docs/en/**'
+ - 'apps/docs/i18n.json'
permissions:
contents: write
diff --git a/apps/docs/content/docs/de/blocks/guardrails.mdx b/apps/docs/content/docs/de/blocks/guardrails.mdx
index f2d6a95f8f..ce56f1773e 100644
--- a/apps/docs/content/docs/de/blocks/guardrails.mdx
+++ b/apps/docs/content/docs/de/blocks/guardrails.mdx
@@ -8,7 +8,7 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
-The Guardrails block validates and protects your AI workflows by checking content against multiple validation types. Ensure data quality, prevent hallucinations, detect PII, and enforce format requirements before content moves through your workflow.
+Der Guardrails-Block validiert und schützt Ihre KI-Workflows, indem er Inhalte anhand mehrerer Validierungstypen überprüft. Stellen Sie die Datenqualität sicher, verhindern Sie Halluzinationen, erkennen Sie personenbezogene Daten und erzwingen Sie Formatanforderungen, bevor Inhalte durch Ihren Workflow fließen.
-## Overview
+## Übersicht
-The Guardrails block enables you to:
+Mit dem Guardrails-Block können Sie:
- Validate JSON Structure: Ensure LLM outputs are valid JSON before parsing
+ JSON-Struktur validieren: Stellen Sie sicher, dass LLM-Ausgaben gültiges JSON sind, bevor sie geparst werden
- Match Regex Patterns: Verify content matches specific formats (emails, phone numbers, URLs, etc.)
+ Regex-Muster abgleichen: Überprüfen Sie, ob Inhalte bestimmten Formaten entsprechen (E-Mails, Telefonnummern, URLs usw.)
- Detect Hallucinations: Use RAG + LLM scoring to validate AI outputs against knowledge base content
+ Halluzinationen erkennen: Nutzen Sie RAG + LLM-Scoring, um KI-Ausgaben anhand von Wissensdatenbankinhalten zu validieren
- Detect PII: Identify and optionally mask personally identifiable information across 40+ entity types
+ PII erkennen: Identifizieren und optional maskieren Sie personenbezogene Daten über mehr als 40 Entitätstypen hinweg
-## Validation Types
+## Validierungstypen
-### JSON Validation
+### JSON-Validierung
-Validates that content is properly formatted JSON. Perfect for ensuring structured LLM outputs can be safely parsed.
+Überprüft, ob Inhalte korrekt formatiertes JSON sind. Perfekt, um sicherzustellen, dass strukturierte LLM-Ausgaben sicher geparst werden können.
-**Use Cases:**
-- Validate JSON responses from Agent blocks before parsing
-- Ensure API payloads are properly formatted
-- Check structured data integrity
+**Anwendungsfälle:**
+- Validieren von JSON-Antworten aus Agent-Blöcken vor dem Parsen
+- Sicherstellen, dass API-Payloads korrekt formatiert sind
+- Überprüfen der Integrität strukturierter Daten
**Output:**
-- `passed`: `true` if valid JSON, `false` otherwise
-- `error`: Error message if validation fails (e.g., "Invalid JSON: Unexpected token...")
+- `passed`: `true` wenn gültiges JSON, sonst `false`
+- `error`: Fehlermeldung bei fehlgeschlagener Validierung (z.B. "Invalid JSON: Unexpected token...")
-### Regex Validation
+### Regex-Validierung
-Checks if content matches a specified regular expression pattern.
+Überprüft, ob Inhalte einem bestimmten regulären Ausdrucksmuster entsprechen.
-**Use Cases:**
-- Validate email addresses
-- Check phone number formats
-- Verify URLs or custom identifiers
-- Enforce specific text patterns
+**Anwendungsfälle:**
+- Validieren von E-Mail-Adressen
+- Überprüfen von Telefonnummernformaten
+- Verifizieren von URLs oder benutzerdefinierten Kennungen
+- Durchsetzen spezifischer Textmuster
-**Configuration:**
-- **Regex Pattern**: The regular expression to match against (e.g., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` for emails)
+**Konfiguration:**
+- **Regex-Muster**: Der reguläre Ausdruck, der abgeglichen werden soll (z.B. `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` für E-Mails)
**Output:**
-- `passed`: `true` if content matches pattern, `false` otherwise
-- `error`: Error message if validation fails
+- `passed`: `true` wenn der Inhalt dem Muster entspricht, `false` andernfalls
+- `error`: Fehlermeldung bei fehlgeschlagener Validierung
-### Hallucination Detection
+### Halluzinationserkennung
-Uses Retrieval-Augmented Generation (RAG) with LLM scoring to detect when AI-generated content contradicts or isn't grounded in your knowledge base.
+Verwendet Retrieval-Augmented Generation (RAG) mit LLM-Bewertung, um zu erkennen, wann KI-generierte Inhalte im Widerspruch zu Ihrer Wissensdatenbank stehen oder nicht darin begründet sind.
-**How It Works:**
-1. Queries your knowledge base for relevant context
-2. Sends both the AI output and retrieved context to an LLM
-3. LLM assigns a confidence score (0-10 scale)
- - **0** = Full hallucination (completely ungrounded)
- - **10** = Fully grounded (completely supported by knowledge base)
-4. Validation passes if score ≥ threshold (default: 3)
+**Funktionsweise:**
+1. Durchsucht Ihre Wissensdatenbank nach relevantem Kontext
+2. Sendet sowohl die KI-Ausgabe als auch den abgerufenen Kontext an ein LLM
+3. LLM weist einen Konfidenzwert zu (Skala 0-10)
+ - **0** = Vollständige Halluzination (völlig unbegründet)
+ - **10** = Vollständig fundiert (komplett durch Wissensdatenbank gestützt)
+4. Validierung besteht, wenn der Wert ≥ Schwellenwert (Standard: 3)
-**Configuration:**
-- **Knowledge Base**: Select from your existing knowledge bases
-- **Model**: Choose LLM for scoring (requires strong reasoning - GPT-4o, Claude 3.7 Sonnet recommended)
-- **API Key**: Authentication for selected LLM provider (auto-hidden for hosted/Ollama models)
-- **Confidence Threshold**: Minimum score to pass (0-10, default: 3)
-- **Top K** (Advanced): Number of knowledge base chunks to retrieve (default: 10)
+**Konfiguration:**
+- **Wissensdatenbank**: Auswahl aus Ihren vorhandenen Wissensdatenbanken
+- **Modell**: LLM für die Bewertung wählen (erfordert starkes Reasoning - GPT-4o, Claude 3.7 Sonnet empfohlen)
+- **API-Schlüssel**: Authentifizierung für den ausgewählten LLM-Anbieter (automatisch ausgeblendet für gehostete/Ollama-Modelle)
+- **Konfidenz-Schwellenwert**: Mindestwert zum Bestehen (0-10, Standard: 3)
+- **Top K** (Erweitert): Anzahl der abzurufenden Wissensdatenbank-Chunks (Standard: 10)
**Output:**
-- `passed`: `true` if confidence score ≥ threshold
-- `score`: Confidence score (0-10)
-- `reasoning`: LLM's explanation for the score
-- `error`: Error message if validation fails
+- `passed`: `true` wenn Konfidenzwert ≥ Schwellenwert
+- `score`: Konfidenzwert (0-10)
+- `reasoning`: Erklärung des LLM für den Wert
+- `error`: Fehlermeldung bei fehlgeschlagener Validierung
-**Use Cases:**
-- Validate Agent responses against documentation
-- Ensure customer support answers are factually accurate
-- Verify generated content matches source material
-- Quality control for RAG applications
+**Anwendungsfälle:**
+- Validierung von Agent-Antworten anhand der Dokumentation
+- Sicherstellen, dass Kundenservice-Antworten sachlich korrekt sind
+- Überprüfen, ob generierte Inhalte mit dem Quellmaterial übereinstimmen
+- Qualitätskontrolle für RAG-Anwendungen
-### PII Detection
+### PII-Erkennung
-Detects personally identifiable information using Microsoft Presidio. Supports 40+ entity types across multiple countries and languages.
+Erkennt personenbezogene Daten mit Microsoft Presidio. Unterstützt über 40 Entitätstypen in mehreren Ländern und Sprachen.
-**How It Works:**
-1. Scans content for PII entities using pattern matching and NLP
-2. Returns detected entities with locations and confidence scores
-3. Optionally masks detected PII in the output
+**Funktionsweise:**
+1. Scannt Inhalte nach PII-Entitäten mittels Mustererkennung und NLP
+2. Gibt erkannte Entitäten mit Positionen und Konfidenzwerten zurück
+3. Maskiert optional erkannte PII in der Ausgabe
-**Configuration:**
-- **PII Types to Detect**: Select from grouped categories via modal selector
- - **Common**: Person name, Email, Phone, Credit card, IP address, etc.
- - **USA**: SSN, Driver's license, Passport, etc.
- - **UK**: NHS number, National insurance number
- - **Spain**: NIF, NIE, CIF
- - **Italy**: Fiscal code, Driver's license, VAT code
- - **Poland**: PESEL, NIP, REGON
- - **Singapore**: NRIC/FIN, UEN
- - **Australia**: ABN, ACN, TFN, Medicare
- - **India**: Aadhaar, PAN, Passport, Voter number
-- **Mode**:
- - **Detect**: Only identify PII (default)
- - **Mask**: Replace detected PII with masked values
-- **Language**: Detection language (default: English)
+**Konfiguration:**
+- **Zu erkennende PII-Typen**: Auswahl aus gruppierten Kategorien über Modal-Selektor
+ - **Allgemein**: Personenname, E-Mail, Telefon, Kreditkarte, IP-Adresse usw.
+ - **USA**: SSN, Führerschein, Reisepass usw.
+ - **UK**: NHS-Nummer, Sozialversicherungsnummer
+ - **Spanien**: NIF, NIE, CIF
+ - **Italien**: Steuernummer, Führerschein, Umsatzsteuer-ID
+ - **Polen**: PESEL, NIP, REGON
+ - **Singapur**: NRIC/FIN, UEN
+ - **Australien**: ABN, ACN, TFN, Medicare
+ - **Indien**: Aadhaar, PAN, Reisepass, Wählernummer
+- **Modus**:
+ - **Erkennen**: Nur PII identifizieren (Standard)
+ - **Maskieren**: Erkannte PII durch maskierte Werte ersetzen
+- **Sprache**: Erkennungssprache (Standard: Englisch)
-**Output:**
-- `passed`: `false` if any selected PII types are detected
-- `detectedEntities`: Array of detected PII with type, location, and confidence
-- `maskedText`: Content with PII masked (only if mode = "Mask")
-- `error`: Error message if validation fails
+**Ausgabe:**
+- `passed`: `false` wenn ausgewählte PII-Typen erkannt werden
+- `detectedEntities`: Array erkannter PII mit Typ, Position und Konfidenz
+- `maskedText`: Inhalt mit maskierter PII (nur wenn Modus = "Mask")
+- `error`: Fehlermeldung, wenn die Validierung fehlschlägt
-**Use Cases:**
-- Block content containing sensitive personal information
-- Mask PII before logging or storing data
-- Compliance with GDPR, HIPAA, and other privacy regulations
-- Sanitize user inputs before processing
+**Anwendungsfälle:**
+- Blockieren von Inhalten mit sensiblen persönlichen Informationen
+- Maskieren von PII vor der Protokollierung oder Speicherung von Daten
+- Einhaltung von DSGVO, HIPAA und anderen Datenschutzbestimmungen
+- Bereinigung von Benutzereingaben vor der Verarbeitung
-## Configuration
+## Konfiguration
-### Content to Validate
+### Zu validierender Inhalt
-The input content to validate. This typically comes from:
-- Agent block outputs: ``
-- Function block results: ``
-- API responses: ``
-- Any other block output
+Der zu validierende Eingabeinhalt. Dieser stammt typischerweise aus:
+- Ausgaben von Agent-Blöcken: ``
+- Ergebnisse von Funktionsblöcken: ``
+- API-Antworten: ``
+- Jede andere Blockausgabe
-### Validation Type
+### Validierungstyp
-Choose from four validation types:
-- **Valid JSON**: Check if content is properly formatted JSON
-- **Regex Match**: Verify content matches a regex pattern
-- **Hallucination Check**: Validate against knowledge base with LLM scoring
-- **PII Detection**: Detect and optionally mask personally identifiable information
+Wählen Sie aus vier Validierungstypen:
+- **Gültiges JSON**: Prüfen, ob der Inhalt korrekt formatiertes JSON ist
+- **Regex-Übereinstimmung**: Überprüfen, ob der Inhalt einem Regex-Muster entspricht
+- **Halluzinationsprüfung**: Validierung gegen Wissensdatenbank mit LLM-Bewertung
+- **PII-Erkennung**: Erkennung und optional Maskierung personenbezogener Daten
-## Outputs
+## Ausgaben
-All validation types return:
+Alle Validierungstypen liefern zurück:
-- **``**: Boolean indicating if validation passed
-- **``**: The type of validation performed
-- **``**: The original input that was validated
-- **``**: Error message if validation failed (optional)
+- **``**: Boolean, der angibt, ob die Validierung erfolgreich war
+- **``**: Die Art der durchgeführten Validierung
+- **``**: Die ursprüngliche Eingabe, die validiert wurde
+- **``**: Fehlermeldung, wenn die Validierung fehlgeschlagen ist (optional)
-Additional outputs by type:
+Zusätzliche Ausgaben nach Typ:
-**Hallucination Check:**
-- **``**: Confidence score (0-10)
-- **``**: LLM's explanation
+**Halluzinationsprüfung:**
+- **``**: Konfidenzwert (0-10)
+- **``**: Erklärung des LLM
-**PII Detection:**
-- **``**: Array of detected PII entities
-- **``**: Content with PII masked (if mode = "Mask")
+**PII-Erkennung:**
+- **``**: Array erkannter PII-Entitäten
+- **``**: Inhalt mit maskierter PII (wenn Modus = "Mask")
-## Example Use Cases
+## Beispielanwendungsfälle
-### Validate JSON Before Parsing
+### JSON vor dem Parsen validieren
-
Scenario: Ensure Agent output is valid JSON
+
Szenario: Sicherstellen, dass die Agent-Ausgabe gültiges JSON ist
-
Agent generates structured JSON response
-
Guardrails validates JSON format
-
Condition block checks ``
-
If passed → Parse and use data, If failed → Retry or handle error
+
Agent generiert strukturierte JSON-Antwort
+
Guardrails validiert das JSON-Format
+
Bedingungsblock prüft ``
+
Bei Erfolg → Daten parsen und verwenden, Bei Fehler → Wiederholen oder Fehler behandeln
Bei erkannter PII → Einreichung ablehnen oder sensible Daten maskieren
+
Ohne PII → Normal verarbeiten
@@ -222,30 +222,29 @@ Additional outputs by type:
-### Validate Email Format
+### E-Mail-Format validieren
-
Scenario: Check email address format
+
Szenario: E-Mail-Adressformat überprüfen
-
Agent extracts email from text
-
Guardrails validates with regex pattern
-
If valid → Use email for notification
-
If invalid → Request correction
+
Agent extrahiert E-Mail aus Text
+
Guardrails validiert mit Regex-Muster
+
Bei Gültigkeit → E-Mail für Benachrichtigung verwenden
+
Bei Ungültigkeit → Korrektur anfordern
## Best Practices
-- **Chain with Condition blocks**: Use `` to branch workflow logic based on validation results
-- **Use JSON validation before parsing**: Always validate JSON structure before attempting to parse LLM outputs
-- **Choose appropriate PII types**: Only select the PII entity types relevant to your use case for better performance
-- **Set reasonable confidence thresholds**: For hallucination detection, adjust threshold based on your accuracy requirements (higher = stricter)
-- **Use strong models for hallucination detection**: GPT-4o or Claude 3.7 Sonnet provide more accurate confidence scoring
-- **Mask PII for logging**: Use "Mask" mode when you need to log or store content that may contain PII
-- **Test regex patterns**: Validate your regex patterns thoroughly before deploying to production
-- **Monitor validation failures**: Track `` messages to identify common validation issues
+- **Verkettung mit Condition-Blöcken**: Verwende `` um Workflow-Logik basierend auf Validierungsergebnissen zu verzweigen
+- **JSON-Validierung vor dem Parsen verwenden**: Validiere immer die JSON-Struktur, bevor du versuchst, LLM-Ausgaben zu parsen
+- **Passende PII-Typen auswählen**: Wähle nur die PII-Entitätstypen aus, die für deinen Anwendungsfall relevant sind, um bessere Leistung zu erzielen
+- **Vernünftige Konfidenz-Schwellenwerte festlegen**: Passe für die Halluzinationserkennung den Schwellenwert basierend auf deinen Genauigkeitsanforderungen an (höher = strenger)
+- **Starke Modelle für Halluzinationserkennung verwenden**: GPT-4o oder Claude 3.7 Sonnet bieten genauere Konfidenz-Bewertungen
+- **PII für Logging maskieren**: Verwende den "Mask"-Modus, wenn du Inhalte protokollieren oder speichern musst, die PII enthalten könnten
+- **Regex-Muster testen**: Validiere deine Regex-Muster gründlich, bevor du sie in der Produktion einsetzt
+- **Validierungsfehler überwachen**: Verfolge `` Nachrichten, um häufige Validierungsprobleme zu identifizieren
- Guardrails validation happens synchronously in your workflow. For hallucination detection, choose faster models (like GPT-4o-mini) if latency is critical.
+ Guardrails-Validierung erfolgt synchron in deinem Workflow. Für die Halluzinationserkennung solltest du schnellere Modelle (wie GPT-4o-mini) wählen, wenn Latenz kritisch ist.
-
diff --git a/apps/docs/content/docs/de/sdks/typescript.mdx b/apps/docs/content/docs/de/sdks/typescript.mdx
index 6cd1cafbfd..c027420ef8 100644
--- a/apps/docs/content/docs/de/sdks/typescript.mdx
+++ b/apps/docs/content/docs/de/sdks/typescript.mdx
@@ -81,7 +81,7 @@ new SimStudioClient(config: SimStudioConfig)
##### executeWorkflow()
-Führen Sie einen Workflow mit optionalen Eingabedaten aus.
+Führt einen Workflow mit optionalen Eingabedaten aus.
```typescript
const result = await client.executeWorkflow('workflow-id', {
@@ -99,7 +99,7 @@ const result = await client.executeWorkflow('workflow-id', {
- `selectedOutputs` (string[]): Block-Ausgaben, die im `blockName.attribute`Format gestreamt werden sollen (z.B. `["agent1.content"]`)
- `async` (boolean): Asynchron ausführen (Standard: false)
-**Rückgabe:** `Promise`
+**Rückgabewert:** `Promise`
Wenn `async: true`, wird sofort mit einer Task-ID zum Abfragen zurückgegeben. Andernfalls wird auf den Abschluss gewartet.
@@ -115,7 +115,7 @@ console.log('Is deployed:', status.isDeployed);
**Parameter:**
- `workflowId` (string): Die ID des Workflows
-**Rückgabe:** `Promise`
+**Rückgabewert:** `Promise`
##### validateWorkflow()
@@ -131,7 +131,7 @@ if (isReady) {
**Parameter:**
- `workflowId` (string): Die ID des Workflows
-**Rückgabe:** `Promise`
+**Rückgabewert:** `Promise`
##### getJobStatus()
@@ -148,7 +148,7 @@ if (status.status === 'completed') {
**Parameter:**
- `taskId` (string): Die Task-ID, die von der asynchronen Ausführung zurückgegeben wurde
-**Rückgabe:** `Promise`
+**Rückgabewert:** `Promise`
**Antwortfelder:**
- `success` (boolean): Ob die Anfrage erfolgreich war
@@ -161,7 +161,7 @@ if (status.status === 'completed') {
##### executeWithRetry()
-Führt einen Workflow mit automatischer Wiederholung bei Ratenlimitfehlern unter Verwendung von exponentiellem Backoff aus.
+Einen Workflow mit automatischer Wiederholung bei Rate-Limit-Fehlern unter Verwendung von exponentiellem Backoff ausführen.
```typescript
const result = await client.executeWithRetry('workflow-id', {
@@ -184,13 +184,13 @@ const result = await client.executeWithRetry('workflow-id', {
- `maxDelay` (number): Maximale Verzögerung in ms (Standard: 30000)
- `backoffMultiplier` (number): Backoff-Multiplikator (Standard: 2)
-**Rückgabewert:** `Promise`
+**Rückgabe:** `Promise`
-Die Wiederholungslogik verwendet exponentiellen Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um den Thundering-Herd-Effekt zu vermeiden. Wenn die API einen `retry-after`Header bereitstellt, wird dieser stattdessen verwendet.
+Die Wiederholungslogik verwendet exponentielles Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um den Thundering-Herd-Effekt zu vermeiden. Wenn die API einen `retry-after` Header bereitstellt, wird dieser stattdessen verwendet.
##### getRateLimitInfo()
-Ruft die aktuellen Ratenlimit-Informationen aus der letzten API-Antwort ab.
+Ruft die aktuellen Rate-Limit-Informationen aus der letzten API-Antwort ab.
```typescript
const rateLimitInfo = client.getRateLimitInfo();
@@ -201,7 +201,7 @@ if (rateLimitInfo) {
}
```
-**Rückgabewert:** `RateLimitInfo | null`
+**Rückgabe:** `RateLimitInfo | null`
##### getUsageLimits()
@@ -215,7 +215,7 @@ console.log('Current period cost:', limits.usage.currentPeriodCost);
console.log('Plan:', limits.usage.plan);
```
-**Rückgabewert:** `Promise`
+**Rückgabe:** `Promise`
**Antwortstruktur:**
@@ -357,8 +357,8 @@ class SimStudioError extends Error {
**Häufige Fehlercodes:**
- `UNAUTHORIZED`: Ungültiger API-Schlüssel
- `TIMEOUT`: Zeitüberschreitung der Anfrage
-- `RATE_LIMIT_EXCEEDED`: Ratengrenze überschritten
-- `USAGE_LIMIT_EXCEEDED`: Nutzungsgrenze überschritten
+- `RATE_LIMIT_EXCEEDED`: Rate-Limit überschritten
+- `USAGE_LIMIT_EXCEEDED`: Nutzungslimit überschritten
- `EXECUTION_ERROR`: Workflow-Ausführung fehlgeschlagen
## Beispiele
@@ -604,26 +604,105 @@ async function executeClientSideWorkflow() {
});
console.log('Workflow result:', result);
-
+
// Update UI with result
- document.getElementById('result')!.textContent =
+ document.getElementById('result')!.textContent =
JSON.stringify(result.output, null, 2);
} catch (error) {
console.error('Error:', error);
}
}
-
-// Attach to button click
-document.getElementById('executeBtn')?.addEventListener('click', executeClientSideWorkflow);
```
+### Datei-Upload
+
+Datei-Objekte werden automatisch erkannt und in das Base64-Format konvertiert. Fügen Sie sie in Ihrem Input unter dem Feldnamen ein, der dem API-Trigger-Inputformat Ihres Workflows entspricht.
+
+Das SDK konvertiert Datei-Objekte in dieses Format:
+
+```typescript
+{
+ type: 'file',
+ data: 'data:mime/type;base64,base64data',
+ name: 'filename',
+ mime: 'mime/type'
+}
+```
+
+Alternativ können Sie Dateien manuell im URL-Format bereitstellen:
+
+```typescript
+{
+ type: 'url',
+ data: 'https://example.com/file.pdf',
+ name: 'file.pdf',
+ mime: 'application/pdf'
+}
+```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.NEXT_PUBLIC_SIM_API_KEY!
+ });
+
+ // From file input
+ async function handleFileUpload(event: Event) {
+ const input = event.target as HTMLInputElement;
+ const files = Array.from(input.files || []);
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: files, // Must match your workflow's "files" field name
+ instructions: 'Analyze these documents'
+ }
+ });
+
+ console.log('Result:', result);
+ }
+ ```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+ import fs from 'fs';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.SIM_API_KEY!
+ });
+
+ // Read file and create File object
+ const fileBuffer = fs.readFileSync('./document.pdf');
+ const file = new File([fileBuffer], 'document.pdf', {
+ type: 'application/pdf'
+ });
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: [file], // Must match your workflow's "files" field name
+ query: 'Summarize this document'
+ }
+ });
+ ```
+
+
+
+
Bei der Verwendung des SDK im Browser sollten Sie darauf achten, keine sensiblen API-Schlüssel offenzulegen. Erwägen Sie die Verwendung eines Backend-Proxys oder öffentlicher API-Schlüssel mit eingeschränkten Berechtigungen.
-### React Hook-Beispiel
+### React Hook Beispiel
-Erstellen eines benutzerdefinierten React-Hooks für die Workflow-Ausführung:
+Erstellen Sie einen benutzerdefinierten React-Hook für die Workflow-Ausführung:
```typescript
import { useState, useCallback } from 'react';
@@ -815,11 +894,27 @@ async function checkUsage() {
console.log(' Is limited:', limits.rateLimit.async.isLimited);
console.log('\n=== Usage ===');
- console.log('Current period cost:
+ console.log('Current period cost: $' + limits.usage.currentPeriodCost.toFixed(2));
+ console.log('Limit: $' + limits.usage.limit.toFixed(2));
+ console.log('Plan:', limits.usage.plan);
-### Streaming Workflow Execution
+ const percentUsed = (limits.usage.currentPeriodCost / limits.usage.limit) * 100;
+ console.log('Usage: ' + percentUsed.toFixed(1) + '%');
-Execute workflows with real-time streaming responses:
+ if (percentUsed > 80) {
+ console.warn('⚠️ Warning: You are approaching your usage limit!');
+ }
+ } catch (error) {
+ console.error('Error checking usage:', error);
+ }
+}
+
+checkUsage();
+```
+
+### Streaming-Workflow-Ausführung
+
+Führen Sie Workflows mit Echtzeit-Streaming-Antworten aus:
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
@@ -830,33 +925,33 @@ const client = new SimStudioClient({
async function executeWithStreaming() {
try {
- // Streaming für bestimmte Block-Ausgaben aktivieren
+ // Enable streaming for specific block outputs
const result = await client.executeWorkflow('workflow-id', {
input: { message: 'Count to five' },
stream: true,
- selectedOutputs: ['agent1.content'] // Format blockName.attribute verwenden
+ selectedOutputs: ['agent1.content'] // Use blockName.attribute format
});
- console.log('Workflow-Ergebnis:', result);
+ console.log('Workflow result:', result);
} catch (error) {
- console.error('Fehler:', error);
+ console.error('Error:', error);
}
}
```
-The streaming response follows the Server-Sent Events (SSE) format:
+Die Streaming-Antwort folgt dem Server-Sent Events (SSE) Format:
```
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
-data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", zwei"}
+data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
data: [DONE]
```
-**React Streaming Example:**
+**React Streaming Beispiel:**
```typescript
import { useState, useEffect } from 'react';
@@ -869,13 +964,13 @@ function StreamingWorkflow() {
setLoading(true);
setOutput('');
- // WICHTIG: Führen Sie diesen API-Aufruf von Ihrem Backend-Server aus, nicht vom Browser
- // Setzen Sie niemals Ihren API-Schlüssel im Client-seitigen Code frei
+ // IMPORTANT: Make this API call from your backend server, not the browser
+ // Never expose your API key in client-side code
const response = await fetch('https://sim.ai/api/workflows/WORKFLOW_ID/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
- 'X-API-Key': process.env.SIM_API_KEY! // Nur serverseitige Umgebungsvariable
+ 'X-API-Key': process.env.SIM_API_KEY! // Server-side environment variable only
},
body: JSON.stringify({
message: 'Generate a story',
@@ -907,10 +1002,10 @@ function StreamingWorkflow() {
if (parsed.chunk) {
setOutput(prev => prev + parsed.chunk);
} else if (parsed.event === 'done') {
- console.log('Ausführung abgeschlossen:', parsed.metadata);
+ console.log('Execution complete:', parsed.metadata);
}
} catch (e) {
- // Ungültiges JSON überspringen
+ // Skip invalid JSON
}
}
}
@@ -920,7 +1015,7 @@ function StreamingWorkflow() {
return (
{output}
@@ -928,35 +1023,35 @@ function StreamingWorkflow() {
}
```
-## Getting Your API Key
+## API-Schlüssel erhalten
-
- Navigate to [Sim](https://sim.ai) and log in to your account.
+
+ Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich bei Ihrem Konto an.
-
- Navigate to the workflow you want to execute programmatically.
+
+ Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
-
- Click on "Deploy" to deploy your workflow if it hasn't been deployed yet.
+
+ Klicken Sie auf "Deploy", um Ihren Workflow zu deployen, falls dies noch nicht geschehen ist.
-
- During the deployment process, select or create an API key.
+
+ Wählen Sie während des Deployment-Prozesses einen API-Schlüssel aus oder erstellen Sie einen neuen.
-
- Copy the API key to use in your TypeScript/JavaScript application.
+
+ Kopieren Sie den API-Schlüssel zur Verwendung in Ihrer TypeScript/JavaScript-Anwendung.
- Keep your API key secure and never commit it to version control. Use environment variables or secure configuration management.
+ Halten Sie Ihren API-Schlüssel sicher und committen Sie ihn niemals in die Versionskontrolle. Verwenden Sie Umgebungsvariablen oder sicheres Konfigurationsmanagement.
-## Requirements
+## Anforderungen
- Node.js 16+
-- TypeScript 5.0+ (for TypeScript projects)
+- TypeScript 5.0+ (für TypeScript-Projekte)
-## License
+## Lizenz
Apache-2.0
\ No newline at end of file
diff --git a/apps/docs/content/docs/en/sdks/typescript.mdx b/apps/docs/content/docs/en/sdks/typescript.mdx
index ad12f06751..cd18cafb57 100644
--- a/apps/docs/content/docs/en/sdks/typescript.mdx
+++ b/apps/docs/content/docs/en/sdks/typescript.mdx
@@ -679,10 +679,6 @@ Alternatively, you can manually provide files using the URL format:
-// Attach to button click
-document.getElementById('executeBtn')?.addEventListener('click', executeClientSideWorkflow);
-```
-
When using the SDK in the browser, be careful not to expose sensitive API keys. Consider using a backend proxy or public API keys with limited permissions.
diff --git a/apps/docs/content/docs/es/blocks/guardrails.mdx b/apps/docs/content/docs/es/blocks/guardrails.mdx
index f2d6a95f8f..9ceb24fed8 100644
--- a/apps/docs/content/docs/es/blocks/guardrails.mdx
+++ b/apps/docs/content/docs/es/blocks/guardrails.mdx
@@ -8,213 +8,213 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
-The Guardrails block validates and protects your AI workflows by checking content against multiple validation types. Ensure data quality, prevent hallucinations, detect PII, and enforce format requirements before content moves through your workflow.
+El bloque Guardrails valida y protege tus flujos de trabajo de IA comprobando el contenido contra múltiples tipos de validación. Asegura la calidad de los datos, previene alucinaciones, detecta información personal identificable (PII) y aplica requisitos de formato antes de que el contenido avance por tu flujo de trabajo.
-## Overview
+## Descripción general
-The Guardrails block enables you to:
+El bloque Guardrails te permite:
- Validate JSON Structure: Ensure LLM outputs are valid JSON before parsing
+ Validar estructura JSON: Asegura que las salidas de LLM sean JSON válido antes de analizarlas
- Match Regex Patterns: Verify content matches specific formats (emails, phone numbers, URLs, etc.)
+ Coincidir con patrones Regex: Verifica que el contenido coincida con formatos específicos (correos electrónicos, números de teléfono, URLs, etc.)
- Detect Hallucinations: Use RAG + LLM scoring to validate AI outputs against knowledge base content
+ Detectar alucinaciones: Utiliza puntuación RAG + LLM para validar las salidas de IA contra el contenido de la base de conocimientos
- Detect PII: Identify and optionally mask personally identifiable information across 40+ entity types
+ Detectar PII: Identifica y opcionalmente enmascara información personal identificable en más de 40 tipos de entidades
-## Validation Types
+## Tipos de validación
-### JSON Validation
+### Validación JSON
-Validates that content is properly formatted JSON. Perfect for ensuring structured LLM outputs can be safely parsed.
+Valida que el contenido tenga un formato JSON adecuado. Perfecto para garantizar que las salidas estructuradas de LLM puedan analizarse de forma segura.
-**Use Cases:**
-- Validate JSON responses from Agent blocks before parsing
-- Ensure API payloads are properly formatted
-- Check structured data integrity
+**Casos de uso:**
+- Validar respuestas JSON de bloques Agent antes de analizarlas
+- Asegurar que las cargas útiles de API estén correctamente formateadas
+- Comprobar la integridad de datos estructurados
**Output:**
-- `passed`: `true` if valid JSON, `false` otherwise
-- `error`: Error message if validation fails (e.g., "Invalid JSON: Unexpected token...")
+- `passed`: `true` si es JSON válido, `false` en caso contrario
+- `error`: Mensaje de error si la validación falla (p. ej., "JSON inválido: Token inesperado...")
-### Regex Validation
+### Validación Regex
-Checks if content matches a specified regular expression pattern.
+Comprueba si el contenido coincide con un patrón de expresión regular especificado.
-**Use Cases:**
-- Validate email addresses
-- Check phone number formats
-- Verify URLs or custom identifiers
-- Enforce specific text patterns
+**Casos de uso:**
+- Validar direcciones de correo electrónico
+- Comprobar formatos de números de teléfono
+- Verificar URLs o identificadores personalizados
+- Aplicar patrones de texto específicos
-**Configuration:**
-- **Regex Pattern**: The regular expression to match against (e.g., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` for emails)
+**Configuración:**
+- **Patrón Regex**: La expresión regular para comparar (p. ej., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` para correos electrónicos)
**Output:**
-- `passed`: `true` if content matches pattern, `false` otherwise
-- `error`: Error message if validation fails
+- `passed`: `true` si el contenido coincide con el patrón, `false` en caso contrario
+- `error`: Mensaje de error si la validación falla
-### Hallucination Detection
+### Detección de alucinaciones
-Uses Retrieval-Augmented Generation (RAG) with LLM scoring to detect when AI-generated content contradicts or isn't grounded in your knowledge base.
+Utiliza generación aumentada por recuperación (RAG) con puntuación de LLM para detectar cuando el contenido generado por IA contradice o no está fundamentado en tu base de conocimientos.
-**How It Works:**
-1. Queries your knowledge base for relevant context
-2. Sends both the AI output and retrieved context to an LLM
-3. LLM assigns a confidence score (0-10 scale)
- - **0** = Full hallucination (completely ungrounded)
- - **10** = Fully grounded (completely supported by knowledge base)
-4. Validation passes if score ≥ threshold (default: 3)
+**Cómo funciona:**
+1. Consulta tu base de conocimientos para obtener contexto relevante
+2. Envía tanto la salida de la IA como el contexto recuperado a un LLM
+3. El LLM asigna una puntuación de confianza (escala de 0-10)
+ - **0** = Alucinación completa (totalmente infundada)
+ - **10** = Completamente fundamentado (totalmente respaldado por la base de conocimientos)
+4. La validación se aprueba si la puntuación ≥ umbral (predeterminado: 3)
-**Configuration:**
-- **Knowledge Base**: Select from your existing knowledge bases
-- **Model**: Choose LLM for scoring (requires strong reasoning - GPT-4o, Claude 3.7 Sonnet recommended)
-- **API Key**: Authentication for selected LLM provider (auto-hidden for hosted/Ollama models)
-- **Confidence Threshold**: Minimum score to pass (0-10, default: 3)
-- **Top K** (Advanced): Number of knowledge base chunks to retrieve (default: 10)
+**Configuración:**
+- **Base de conocimientos**: Selecciona entre tus bases de conocimientos existentes
+- **Modelo**: Elige LLM para puntuación (requiere razonamiento sólido - se recomienda GPT-4o, Claude 3.7 Sonnet)
+- **Clave API**: Autenticación para el proveedor LLM seleccionado (oculta automáticamente para modelos alojados/Ollama)
+- **Umbral de confianza**: Puntuación mínima para aprobar (0-10, predeterminado: 3)
+- **Top K** (Avanzado): Número de fragmentos de la base de conocimientos a recuperar (predeterminado: 10)
**Output:**
-- `passed`: `true` if confidence score ≥ threshold
-- `score`: Confidence score (0-10)
-- `reasoning`: LLM's explanation for the score
-- `error`: Error message if validation fails
+- `passed`: `true` si la puntuación de confianza ≥ umbral
+- `score`: Puntuación de confianza (0-10)
+- `reasoning`: Explicación del LLM para la puntuación
+- `error`: Mensaje de error si la validación falla
-**Use Cases:**
-- Validate Agent responses against documentation
-- Ensure customer support answers are factually accurate
-- Verify generated content matches source material
-- Quality control for RAG applications
+**Casos de uso:**
+- Validar respuestas de agentes contra documentación
+- Asegurar que las respuestas de atención al cliente sean precisas
+- Verificar que el contenido generado coincida con el material de origen
+- Control de calidad para aplicaciones RAG
-### PII Detection
+### Detección de PII
-Detects personally identifiable information using Microsoft Presidio. Supports 40+ entity types across multiple countries and languages.
+Detecta información de identificación personal utilizando Microsoft Presidio. Compatible con más de 40 tipos de entidades en múltiples países e idiomas.
-**How It Works:**
-1. Scans content for PII entities using pattern matching and NLP
-2. Returns detected entities with locations and confidence scores
-3. Optionally masks detected PII in the output
+**Cómo funciona:**
+1. Escanea el contenido en busca de entidades PII mediante coincidencia de patrones y PNL
+2. Devuelve las entidades detectadas con ubicaciones y puntuaciones de confianza
+3. Opcionalmente enmascara la PII detectada en la salida
-**Configuration:**
-- **PII Types to Detect**: Select from grouped categories via modal selector
- - **Common**: Person name, Email, Phone, Credit card, IP address, etc.
- - **USA**: SSN, Driver's license, Passport, etc.
- - **UK**: NHS number, National insurance number
- - **Spain**: NIF, NIE, CIF
- - **Italy**: Fiscal code, Driver's license, VAT code
- - **Poland**: PESEL, NIP, REGON
- - **Singapore**: NRIC/FIN, UEN
+**Configuración:**
+- **Tipos de PII a detectar**: Seleccione de categorías agrupadas mediante selector modal
+ - **Común**: Nombre de persona, Email, Teléfono, Tarjeta de crédito, Dirección IP, etc.
+ - **EE.UU.**: SSN, Licencia de conducir, Pasaporte, etc.
+ - **Reino Unido**: Número NHS, Número de seguro nacional
+ - **España**: NIF, NIE, CIF
+ - **Italia**: Código fiscal, Licencia de conducir, Código de IVA
+ - **Polonia**: PESEL, NIP, REGON
+ - **Singapur**: NRIC/FIN, UEN
- **Australia**: ABN, ACN, TFN, Medicare
- - **India**: Aadhaar, PAN, Passport, Voter number
-- **Mode**:
- - **Detect**: Only identify PII (default)
- - **Mask**: Replace detected PII with masked values
-- **Language**: Detection language (default: English)
+ - **India**: Aadhaar, PAN, Pasaporte, Número de votante
+- **Modo**:
+ - **Detectar**: Solo identificar PII (predeterminado)
+ - **Enmascarar**: Reemplazar PII detectada con valores enmascarados
+- **Idioma**: Idioma de detección (predeterminado: inglés)
-**Output:**
-- `passed`: `false` if any selected PII types are detected
-- `detectedEntities`: Array of detected PII with type, location, and confidence
-- `maskedText`: Content with PII masked (only if mode = "Mask")
-- `error`: Error message if validation fails
+**Salida:**
+- `passed`: `false` si se detectan los tipos de PII seleccionados
+- `detectedEntities`: Array de PII detectada con tipo, ubicación y confianza
+- `maskedText`: Contenido con PII enmascarada (solo si modo = "Mask")
+- `error`: Mensaje de error si la validación falla
-**Use Cases:**
-- Block content containing sensitive personal information
-- Mask PII before logging or storing data
-- Compliance with GDPR, HIPAA, and other privacy regulations
-- Sanitize user inputs before processing
+**Casos de uso:**
+- Bloquear contenido que contiene información personal sensible
+- Enmascarar PII antes de registrar o almacenar datos
+- Cumplimiento con GDPR, HIPAA y otras regulaciones de privacidad
+- Sanear entradas de usuario antes del procesamiento
-## Configuration
+## Configuración
-### Content to Validate
+### Contenido a validar
-The input content to validate. This typically comes from:
-- Agent block outputs: ``
-- Function block results: ``
-- API responses: ``
-- Any other block output
+El contenido de entrada para validar. Esto típicamente proviene de:
+- Salidas de bloques de agente: ``
+- Resultados de bloques de función: ``
+- Respuestas de API: ``
+- Cualquier otra salida de bloque
-### Validation Type
+### Tipo de validación
-Choose from four validation types:
-- **Valid JSON**: Check if content is properly formatted JSON
-- **Regex Match**: Verify content matches a regex pattern
-- **Hallucination Check**: Validate against knowledge base with LLM scoring
-- **PII Detection**: Detect and optionally mask personally identifiable information
+Elija entre cuatro tipos de validación:
+- **JSON válido**: Comprobar si el contenido es JSON correctamente formateado
+- **Coincidencia Regex**: Verificar si el contenido coincide con un patrón regex
+- **Comprobación de alucinaciones**: Validar contra base de conocimiento con puntuación LLM
+- **Detección de PII**: Detectar y opcionalmente enmascarar información de identificación personal
-## Outputs
+## Salidas
-All validation types return:
+Todos los tipos de validación devuelven:
-- **``**: Boolean indicating if validation passed
-- **``**: The type of validation performed
-- **``**: The original input that was validated
-- **``**: Error message if validation failed (optional)
+- **``**: Booleano que indica si la validación fue exitosa
+- **``**: El tipo de validación realizada
+- **``**: La entrada original que fue validada
+- **``**: Mensaje de error si la validación falló (opcional)
-Additional outputs by type:
+Salidas adicionales por tipo:
-**Hallucination Check:**
-- **``**: Confidence score (0-10)
-- **``**: LLM's explanation
+**Verificación de alucinaciones:**
+- **``**: Puntuación de confianza (0-10)
+- **``**: Explicación del LLM
-**PII Detection:**
-- **``**: Array of detected PII entities
-- **``**: Content with PII masked (if mode = "Mask")
+**Detección de PII:**
+- **``**: Array de entidades PII detectadas
+- **``**: Contenido con PII enmascarado (si el modo = "Mask")
-## Example Use Cases
+## Ejemplos de casos de uso
-### Validate JSON Before Parsing
+### Validar JSON antes de analizarlo
-
Scenario: Ensure Agent output is valid JSON
+
Escenario: Asegurar que la salida del agente sea JSON válido
-
Agent generates structured JSON response
-
Guardrails validates JSON format
-
Condition block checks ``
-
If passed → Parse and use data, If failed → Retry or handle error
+
El agente genera una respuesta JSON estructurada
+
Guardrails valida el formato JSON
+
El bloque de condición verifica ``
+
Si pasa → Analizar y usar datos, Si falla → Reintentar o manejar el error
If PII detected → Reject submission or mask sensitive data
-
If no PII → Process normally
+
El usuario envía un formulario con contenido de texto
+
Guardrails detecta PII (correos electrónicos, números de teléfono, SSN, etc.)
+
Si se detecta PII → Rechazar el envío o enmascarar datos sensibles
+
Si no hay PII → Procesar normalmente
@@ -222,30 +222,29 @@ Additional outputs by type:
-### Validate Email Format
+### Validar formato de correo electrónico
-
Scenario: Check email address format
+
Escenario: Comprobar el formato de dirección de correo electrónico
-
Agent extracts email from text
-
Guardrails validates with regex pattern
-
If valid → Use email for notification
-
If invalid → Request correction
+
El agente extrae el correo electrónico del texto
+
Guardrails valida con un patrón regex
+
Si es válido → Usar el correo electrónico para notificación
+
Si no es válido → Solicitar corrección
-## Best Practices
+## Mejores prácticas
-- **Chain with Condition blocks**: Use `` to branch workflow logic based on validation results
-- **Use JSON validation before parsing**: Always validate JSON structure before attempting to parse LLM outputs
-- **Choose appropriate PII types**: Only select the PII entity types relevant to your use case for better performance
-- **Set reasonable confidence thresholds**: For hallucination detection, adjust threshold based on your accuracy requirements (higher = stricter)
-- **Use strong models for hallucination detection**: GPT-4o or Claude 3.7 Sonnet provide more accurate confidence scoring
-- **Mask PII for logging**: Use "Mask" mode when you need to log or store content that may contain PII
-- **Test regex patterns**: Validate your regex patterns thoroughly before deploying to production
-- **Monitor validation failures**: Track `` messages to identify common validation issues
+- **Encadena con bloques de Condición**: Usa `` para ramificar la lógica del flujo de trabajo según los resultados de validación
+- **Usa validación JSON antes de analizar**: Siempre valida la estructura JSON antes de intentar analizar las salidas de LLM
+- **Elige los tipos de PII apropiados**: Selecciona solo los tipos de entidades PII relevantes para tu caso de uso para un mejor rendimiento
+- **Establece umbrales de confianza razonables**: Para la detección de alucinaciones, ajusta el umbral según tus requisitos de precisión (más alto = más estricto)
+- **Usa modelos potentes para la detección de alucinaciones**: GPT-4o o Claude 3.7 Sonnet proporcionan una puntuación de confianza más precisa
+- **Enmascara PII para el registro**: Usa el modo "Mask" cuando necesites registrar o almacenar contenido que pueda contener PII
+- **Prueba patrones regex**: Valida tus patrones de expresiones regulares minuciosamente antes de implementarlos en producción
+- **Monitorea fallos de validación**: Rastrea los mensajes `` para identificar problemas comunes de validación
- Guardrails validation happens synchronously in your workflow. For hallucination detection, choose faster models (like GPT-4o-mini) if latency is critical.
+ La validación de Guardrails ocurre de forma sincrónica en tu flujo de trabajo. Para la detección de alucinaciones, elige modelos más rápidos (como GPT-4o-mini) si la latencia es crítica.
-
diff --git a/apps/docs/content/docs/es/sdks/typescript.mdx b/apps/docs/content/docs/es/sdks/typescript.mdx
index ae1d7ea53b..2c26bc178d 100644
--- a/apps/docs/content/docs/es/sdks/typescript.mdx
+++ b/apps/docs/content/docs/es/sdks/typescript.mdx
@@ -1,5 +1,5 @@
---
-title: TypeScript/JavaScript SDK
+title: SDK de TypeScript/JavaScript
---
import { Callout } from 'fumadocs-ui/components/callout'
@@ -7,10 +7,10 @@ import { Card, Cards } from 'fumadocs-ui/components/card'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
-El SDK oficial de TypeScript/JavaScript para Sim proporciona seguridad de tipos completa y es compatible tanto con entornos Node.js como de navegador, lo que te permite ejecutar flujos de trabajo programáticamente desde tus aplicaciones Node.js, aplicaciones web y otros entornos JavaScript.
+El SDK oficial de TypeScript/JavaScript para Sim proporciona seguridad de tipos completa y es compatible tanto con entornos Node.js como con navegadores, lo que te permite ejecutar flujos de trabajo programáticamente desde tus aplicaciones Node.js, aplicaciones web y otros entornos JavaScript.
- El SDK de TypeScript proporciona seguridad de tipos completa, soporte para ejecución asíncrona, limitación automática de velocidad con retroceso exponencial y seguimiento de uso.
+ El SDK de TypeScript proporciona seguridad de tipos completa, soporte para ejecución asíncrona, limitación automática de tasa con retroceso exponencial y seguimiento de uso.
## Instalación
@@ -96,12 +96,12 @@ const result = await client.executeWorkflow('workflow-id', {
- `input` (any): Datos de entrada para pasar al flujo de trabajo
- `timeout` (number): Tiempo de espera en milisegundos (predeterminado: 30000)
- `stream` (boolean): Habilitar respuestas en streaming (predeterminado: false)
- - `selectedOutputs` (string[]): Bloquear salidas para transmitir en formato `blockName.attribute` (por ejemplo, `["agent1.content"]`)
+ - `selectedOutputs` (string[]): Salidas de bloques para transmitir en formato `blockName.attribute` (p. ej., `["agent1.content"]`)
- `async` (boolean): Ejecutar de forma asíncrona (predeterminado: false)
**Devuelve:** `Promise`
-Cuando `async: true`, devuelve inmediatamente un ID de tarea para sondeo. De lo contrario, espera a que se complete.
+Cuando `async: true`, devuelve inmediatamente un ID de tarea para consultar. De lo contrario, espera hasta completarse.
##### getWorkflowStatus()
@@ -146,7 +146,7 @@ if (status.status === 'completed') {
```
**Parámetros:**
-- `taskId` (string): El ID de tarea devuelto de la ejecución asíncrona
+- `taskId` (string): El ID de tarea devuelto por la ejecución asíncrona
**Devuelve:** `Promise`
@@ -161,7 +161,7 @@ if (status.status === 'completed') {
##### executeWithRetry()
-Ejecuta un flujo de trabajo con reintento automático en errores de límite de tasa utilizando retroceso exponencial.
+Ejecutar un flujo de trabajo con reintento automático en errores de límite de tasa usando retroceso exponencial.
```typescript
const result = await client.executeWithRetry('workflow-id', {
@@ -247,7 +247,7 @@ console.log('Plan:', limits.usage.plan);
##### setApiKey()
-Actualiza la clave API.
+Actualiza la clave de API.
```typescript
client.setApiKey('new-api-key');
@@ -501,9 +501,9 @@ Configura el cliente usando variables de entorno:
-### Integración con Express de Node.js
+### Integración con Node.js Express
-Integra con un servidor Express.js:
+Integración con un servidor Express.js:
```typescript
import express from 'express';
@@ -582,7 +582,7 @@ export default async function handler(
}
```
-### Uso del navegador
+### Uso en el navegador
Uso en el navegador (con configuración CORS adecuada):
@@ -604,19 +604,98 @@ async function executeClientSideWorkflow() {
});
console.log('Workflow result:', result);
-
+
// Update UI with result
- document.getElementById('result')!.textContent =
+ document.getElementById('result')!.textContent =
JSON.stringify(result.output, null, 2);
} catch (error) {
console.error('Error:', error);
}
}
-
-// Attach to button click
-document.getElementById('executeBtn')?.addEventListener('click', executeClientSideWorkflow);
```
+### Carga de archivos
+
+Los objetos File son detectados automáticamente y convertidos a formato base64. Inclúyelos en tu entrada bajo el nombre de campo que coincida con el formato de entrada del disparador API de tu flujo de trabajo.
+
+El SDK convierte los objetos File a este formato:
+
+```typescript
+{
+ type: 'file',
+ data: 'data:mime/type;base64,base64data',
+ name: 'filename',
+ mime: 'mime/type'
+}
+```
+
+Alternativamente, puedes proporcionar archivos manualmente usando el formato URL:
+
+```typescript
+{
+ type: 'url',
+ data: 'https://example.com/file.pdf',
+ name: 'file.pdf',
+ mime: 'application/pdf'
+}
+```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.NEXT_PUBLIC_SIM_API_KEY!
+ });
+
+ // From file input
+ async function handleFileUpload(event: Event) {
+ const input = event.target as HTMLInputElement;
+ const files = Array.from(input.files || []);
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: files, // Must match your workflow's "files" field name
+ instructions: 'Analyze these documents'
+ }
+ });
+
+ console.log('Result:', result);
+ }
+ ```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+ import fs from 'fs';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.SIM_API_KEY!
+ });
+
+ // Read file and create File object
+ const fileBuffer = fs.readFileSync('./document.pdf');
+ const file = new File([fileBuffer], 'document.pdf', {
+ type: 'application/pdf'
+ });
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: [file], // Must match your workflow's "files" field name
+ query: 'Summarize this document'
+ }
+ });
+ ```
+
+
+
+
Cuando uses el SDK en el navegador, ten cuidado de no exponer claves API sensibles. Considera usar un proxy de backend o claves API públicas con permisos limitados.
@@ -748,9 +827,9 @@ async function executeAsync() {
executeAsync();
```
-### Límite de tasa y reintentos
+### Limitación de tasa y reintentos
-Maneja límites de tasa automáticamente con retroceso exponencial:
+Maneja los límites de tasa automáticamente con retroceso exponencial:
```typescript
import { SimStudioClient, SimStudioError } from 'simstudio-ts-sdk';
@@ -788,7 +867,7 @@ async function executeWithRetryHandling() {
### Monitoreo de uso
-Monitorea el uso de tu cuenta y sus límites:
+Monitorea el uso y los límites de tu cuenta:
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
@@ -814,19 +893,19 @@ async function checkUsage() {
console.log(' Resets at:', limits.rateLimit.async.resetAt);
console.log(' Is limited:', limits.rateLimit.async.isLimited);
- console.log('\n=== Uso ===');
- console.log('Costo del período actual: $' + limits.usage.currentPeriodCost.toFixed(2));
- console.log('Límite: $' + limits.usage.limit.toFixed(2));
+ console.log('\n=== Usage ===');
+ console.log('Current period cost: $' + limits.usage.currentPeriodCost.toFixed(2));
+ console.log('Limit: $' + limits.usage.limit.toFixed(2));
console.log('Plan:', limits.usage.plan);
const percentUsed = (limits.usage.currentPeriodCost / limits.usage.limit) * 100;
- console.log('Uso: ' + percentUsed.toFixed(1) + '%');
+ console.log('Usage: ' + percentUsed.toFixed(1) + '%');
if (percentUsed > 80) {
- console.warn('⚠️ Advertencia: ¡Estás acercándote a tu límite de uso!');
+ console.warn('⚠️ Warning: You are approaching your usage limit!');
}
} catch (error) {
- console.error('Error al verificar el uso:', error);
+ console.error('Error checking usage:', error);
}
}
@@ -846,40 +925,35 @@ const client = new SimStudioClient({
async function executeWithStreaming() {
try {
- // Habilita streaming para salidas de bloques específicos
+ // Enable streaming for specific block outputs
const result = await client.executeWorkflow('workflow-id', {
input: { message: 'Count to five' },
stream: true,
- selectedOutputs: ['agent1.content'] // Usa el formato blockName.attribute
+ selectedOutputs: ['agent1.content'] // Use blockName.attribute format
});
- console.log('Resultado del flujo de trabajo:', result);
+ console.log('Workflow result:', result);
} catch (error) {
console.error('Error:', error);
}
}
-
```
-The streaming response follows the Server-Sent Events (SSE) format:
+La respuesta en streaming sigue el formato de eventos enviados por el servidor (SSE):
```
-
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
-data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", dos"}
+data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
data: [DONE]
-
```
-**React Streaming Example:**
+**Ejemplo de streaming en React:**
-```
-
-typescript
+```typescript
import { useState, useEffect } from 'react';
function StreamingWorkflow() {
@@ -941,44 +1015,43 @@ function StreamingWorkflow() {
return (
{output}
);
}
-
```
-## Getting Your API Key
+## Obtener tu clave API
-
- Navigate to [Sim](https://sim.ai) and log in to your account.
+
+ Navega a [Sim](https://sim.ai) e inicia sesión en tu cuenta.
-
- Navigate to the workflow you want to execute programmatically.
+
+ Navega al flujo de trabajo que quieres ejecutar programáticamente.
-
- Click on "Deploy" to deploy your workflow if it hasn't been deployed yet.
+
+ Haz clic en "Desplegar" para desplegar tu flujo de trabajo si aún no ha sido desplegado.
-
- During the deployment process, select or create an API key.
+
+ Durante el proceso de despliegue, selecciona o crea una clave API.
-
- Copy the API key to use in your TypeScript/JavaScript application.
+
+ Copia la clave API para usarla en tu aplicación TypeScript/JavaScript.
- Keep your API key secure and never commit it to version control. Use environment variables or secure configuration management.
+ Mantén tu clave API segura y nunca la incluyas en el control de versiones. Utiliza variables de entorno o gestión segura de configuración.
-## Requirements
+## Requisitos
- Node.js 16+
-- TypeScript 5.0+ (for TypeScript projects)
+- TypeScript 5.0+ (para proyectos TypeScript)
-## License
+## Licencia
Apache-2.0
\ No newline at end of file
diff --git a/apps/docs/content/docs/fr/blocks/guardrails.mdx b/apps/docs/content/docs/fr/blocks/guardrails.mdx
index f2d6a95f8f..e1dc79316e 100644
--- a/apps/docs/content/docs/fr/blocks/guardrails.mdx
+++ b/apps/docs/content/docs/fr/blocks/guardrails.mdx
@@ -8,213 +8,213 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
-The Guardrails block validates and protects your AI workflows by checking content against multiple validation types. Ensure data quality, prevent hallucinations, detect PII, and enforce format requirements before content moves through your workflow.
+Le bloc Guardrails valide et protège vos flux de travail IA en vérifiant le contenu selon plusieurs types de validation. Assurez la qualité des données, prévenez les hallucinations, détectez les PII et imposez des exigences de format avant que le contenu ne circule dans votre flux de travail.
-## Overview
+## Aperçu
-The Guardrails block enables you to:
+Le bloc Guardrails vous permet de :
- Validate JSON Structure: Ensure LLM outputs are valid JSON before parsing
+ Valider la structure JSON : garantir que les sorties LLM sont en JSON valide avant l'analyse
- Match Regex Patterns: Verify content matches specific formats (emails, phone numbers, URLs, etc.)
+ Correspondre aux modèles Regex : vérifier que le contenu correspond à des formats spécifiques (emails, numéros de téléphone, URLs, etc.)
- Detect Hallucinations: Use RAG + LLM scoring to validate AI outputs against knowledge base content
+ Détecter les hallucinations : utiliser le scoring RAG + LLM pour valider les sorties IA par rapport au contenu de la base de connaissances
- Detect PII: Identify and optionally mask personally identifiable information across 40+ entity types
+ Détecter les PII : identifier et éventuellement masquer les informations personnellement identifiables à travers plus de 40 types d'entités
-## Validation Types
+## Types de validation
-### JSON Validation
+### Validation JSON
-Validates that content is properly formatted JSON. Perfect for ensuring structured LLM outputs can be safely parsed.
+Vérifie que le contenu est correctement formaté en JSON. Parfait pour s'assurer que les sorties LLM structurées peuvent être analysées en toute sécurité.
-**Use Cases:**
-- Validate JSON responses from Agent blocks before parsing
-- Ensure API payloads are properly formatted
-- Check structured data integrity
+**Cas d'utilisation :**
+- Valider les réponses JSON des blocs Agent avant l'analyse
+- S'assurer que les charges utiles API sont correctement formatées
+- Vérifier l'intégrité des données structurées
**Output:**
-- `passed`: `true` if valid JSON, `false` otherwise
-- `error`: Error message if validation fails (e.g., "Invalid JSON: Unexpected token...")
+- `passed`: `true` si le JSON est valide, `false` sinon
+- `error`: Message d'erreur si la validation échoue (par ex., "JSON invalide : Token inattendu...")
-### Regex Validation
+### Validation Regex
-Checks if content matches a specified regular expression pattern.
+Vérifie si le contenu correspond à un modèle d'expression régulière spécifié.
-**Use Cases:**
-- Validate email addresses
-- Check phone number formats
-- Verify URLs or custom identifiers
-- Enforce specific text patterns
+**Cas d'utilisation :**
+- Valider les adresses email
+- Vérifier les formats de numéros de téléphone
+- Vérifier les URLs ou identifiants personnalisés
+- Imposer des modèles de texte spécifiques
-**Configuration:**
-- **Regex Pattern**: The regular expression to match against (e.g., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` for emails)
+**Configuration :**
+- **Modèle Regex** : L'expression régulière à faire correspondre (par ex., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` pour les emails)
**Output:**
-- `passed`: `true` if content matches pattern, `false` otherwise
-- `error`: Error message if validation fails
+- `passed`: `true` si le contenu correspond au modèle, `false` sinon
+- `error`: Message d'erreur si la validation échoue
-### Hallucination Detection
+### Détection d'hallucination
-Uses Retrieval-Augmented Generation (RAG) with LLM scoring to detect when AI-generated content contradicts or isn't grounded in your knowledge base.
+Utilise la génération augmentée par récupération (RAG) avec notation par LLM pour détecter quand le contenu généré par l'IA contredit ou n'est pas fondé sur votre base de connaissances.
-**How It Works:**
-1. Queries your knowledge base for relevant context
-2. Sends both the AI output and retrieved context to an LLM
-3. LLM assigns a confidence score (0-10 scale)
- - **0** = Full hallucination (completely ungrounded)
- - **10** = Fully grounded (completely supported by knowledge base)
-4. Validation passes if score ≥ threshold (default: 3)
+**Comment ça fonctionne :**
+1. Interroge votre base de connaissances pour obtenir un contexte pertinent
+2. Envoie à la fois la sortie de l'IA et le contexte récupéré à un LLM
+3. Le LLM attribue un score de confiance (échelle de 0 à 10)
+ - **0** = Hallucination complète (totalement non fondée)
+ - **10** = Entièrement fondé (complètement soutenu par la base de connaissances)
+4. La validation réussit si le score ≥ seuil (par défaut : 3)
-**Configuration:**
-- **Knowledge Base**: Select from your existing knowledge bases
-- **Model**: Choose LLM for scoring (requires strong reasoning - GPT-4o, Claude 3.7 Sonnet recommended)
-- **API Key**: Authentication for selected LLM provider (auto-hidden for hosted/Ollama models)
-- **Confidence Threshold**: Minimum score to pass (0-10, default: 3)
-- **Top K** (Advanced): Number of knowledge base chunks to retrieve (default: 10)
+**Configuration :**
+- **Base de connaissances** : Sélectionnez parmi vos bases de connaissances existantes
+- **Modèle** : Choisissez un LLM pour la notation (nécessite un raisonnement solide - GPT-4o, Claude 3.7 Sonnet recommandés)
+- **Clé API** : Authentification pour le fournisseur LLM sélectionné (masquée automatiquement pour les modèles hébergés/Ollama)
+- **Seuil de confiance** : Score minimum pour réussir (0-10, par défaut : 3)
+- **Top K** (Avancé) : Nombre de fragments de base de connaissances à récupérer (par défaut : 10)
**Output:**
-- `passed`: `true` if confidence score ≥ threshold
-- `score`: Confidence score (0-10)
-- `reasoning`: LLM's explanation for the score
-- `error`: Error message if validation fails
+- `passed`: `true` si le score de confiance ≥ seuil
+- `score`: Score de confiance (0-10)
+- `reasoning`: Explication du LLM pour le score
+- `error`: Message d'erreur si la validation échoue
-**Use Cases:**
-- Validate Agent responses against documentation
-- Ensure customer support answers are factually accurate
-- Verify generated content matches source material
-- Quality control for RAG applications
+**Cas d'utilisation :**
+- Valider les réponses des agents par rapport à la documentation
+- Assurer que les réponses du support client sont factuellement exactes
+- Vérifier que le contenu généré correspond au matériel source
+- Contrôle qualité pour les applications RAG
-### PII Detection
+### Détection de PII
-Detects personally identifiable information using Microsoft Presidio. Supports 40+ entity types across multiple countries and languages.
+Détecte les informations personnellement identifiables à l'aide de Microsoft Presidio. Prend en charge plus de 40 types d'entités dans plusieurs pays et langues.
-**How It Works:**
-1. Scans content for PII entities using pattern matching and NLP
-2. Returns detected entities with locations and confidence scores
-3. Optionally masks detected PII in the output
+**Comment ça fonctionne :**
+1. Analyse le contenu pour détecter les entités PII en utilisant la correspondance de modèles et le NLP
+2. Renvoie les entités détectées avec leurs emplacements et scores de confiance
+3. Masque optionnellement les PII détectées dans la sortie
-**Configuration:**
-- **PII Types to Detect**: Select from grouped categories via modal selector
- - **Common**: Person name, Email, Phone, Credit card, IP address, etc.
- - **USA**: SSN, Driver's license, Passport, etc.
- - **UK**: NHS number, National insurance number
- - **Spain**: NIF, NIE, CIF
- - **Italy**: Fiscal code, Driver's license, VAT code
- - **Poland**: PESEL, NIP, REGON
- - **Singapore**: NRIC/FIN, UEN
- - **Australia**: ABN, ACN, TFN, Medicare
- - **India**: Aadhaar, PAN, Passport, Voter number
-- **Mode**:
- - **Detect**: Only identify PII (default)
- - **Mask**: Replace detected PII with masked values
-- **Language**: Detection language (default: English)
+**Configuration :**
+- **Types de PII à détecter** : Sélectionnez parmi les catégories groupées via le sélecteur modal
+ - **Commun** : Nom de personne, Email, Téléphone, Carte de crédit, Adresse IP, etc.
+ - **USA** : SSN, Permis de conduire, Passeport, etc.
+ - **Royaume-Uni** : Numéro NHS, Numéro d'assurance nationale
+ - **Espagne** : NIF, NIE, CIF
+ - **Italie** : Code fiscal, Permis de conduire, Code TVA
+ - **Pologne** : PESEL, NIP, REGON
+ - **Singapour** : NRIC/FIN, UEN
+ - **Australie** : ABN, ACN, TFN, Medicare
+ - **Inde** : Aadhaar, PAN, Passeport, Numéro d'électeur
+- **Mode** :
+ - **Détecter** : Identifier uniquement les PII (par défaut)
+ - **Masquer** : Remplacer les PII détectées par des valeurs masquées
+- **Langue** : Langue de détection (par défaut : anglais)
-**Output:**
-- `passed`: `false` if any selected PII types are detected
-- `detectedEntities`: Array of detected PII with type, location, and confidence
-- `maskedText`: Content with PII masked (only if mode = "Mask")
-- `error`: Error message if validation fails
+**Sortie :**
+- `passed` : `false` si des types de PII sélectionnés sont détectés
+- `detectedEntities` : Tableau des PII détectées avec type, emplacement et niveau de confiance
+- `maskedText` : Contenu avec PII masquées (uniquement si mode = "Mask")
+- `error` : Message d'erreur si la validation échoue
-**Use Cases:**
-- Block content containing sensitive personal information
-- Mask PII before logging or storing data
-- Compliance with GDPR, HIPAA, and other privacy regulations
-- Sanitize user inputs before processing
+**Cas d'utilisation :**
+- Bloquer le contenu contenant des informations personnelles sensibles
+- Masquer les PII avant la journalisation ou le stockage des données
+- Conformité avec le RGPD, HIPAA et autres réglementations sur la confidentialité
+- Assainir les entrées utilisateur avant traitement
## Configuration
-### Content to Validate
+### Contenu à valider
-The input content to validate. This typically comes from:
-- Agent block outputs: ``
-- Function block results: ``
-- API responses: ``
-- Any other block output
+Le contenu d'entrée à valider. Cela provient généralement de :
+- Sorties de blocs d'agent : ``
+- Résultats de blocs de fonction : ``
+- Réponses API : ``
+- Toute autre sortie de bloc
-### Validation Type
+### Type de validation
-Choose from four validation types:
-- **Valid JSON**: Check if content is properly formatted JSON
-- **Regex Match**: Verify content matches a regex pattern
-- **Hallucination Check**: Validate against knowledge base with LLM scoring
-- **PII Detection**: Detect and optionally mask personally identifiable information
+Choisissez parmi quatre types de validation :
+- **JSON valide** : Vérifier si le contenu est au format JSON correctement formaté
+- **Correspondance Regex** : Vérifier si le contenu correspond à un modèle regex
+- **Vérification d'hallucination** : Valider par rapport à une base de connaissances avec notation LLM
+- **Détection de PII** : Détecter et éventuellement masquer les informations personnellement identifiables
-## Outputs
+## Sorties
-All validation types return:
+Tous les types de validation renvoient :
-- **``**: Boolean indicating if validation passed
-- **``**: The type of validation performed
-- **``**: The original input that was validated
-- **``**: Error message if validation failed (optional)
+- **``** : Booléen indiquant si la validation a réussi
+- **``** : Le type de validation effectuée
+- **``** : L'entrée originale qui a été validée
+- **``** : Message d'erreur si la validation a échoué (facultatif)
-Additional outputs by type:
+Sorties supplémentaires par type :
-**Hallucination Check:**
-- **``**: Confidence score (0-10)
-- **``**: LLM's explanation
+**Vérification d'hallucination :**
+- **``** : Score de confiance (0-10)
+- **``** : Explication du LLM
-**PII Detection:**
-- **``**: Array of detected PII entities
-- **``**: Content with PII masked (if mode = "Mask")
+**Détection de PII :**
+- **``** : Tableau des entités PII détectées
+- **``** : Contenu avec PII masquées (si mode = "Mask")
-## Example Use Cases
+## Exemples de cas d'utilisation
-### Validate JSON Before Parsing
+### Valider le JSON avant l'analyse
-
Scenario: Ensure Agent output is valid JSON
+
Scénario : s'assurer que la sortie de l'agent est un JSON valide
-
Agent generates structured JSON response
-
Guardrails validates JSON format
-
Condition block checks ``
-
If passed → Parse and use data, If failed → Retry or handle error
+
L'agent génère une réponse JSON structurée
+
Guardrails valide le format JSON
+
Le bloc de condition vérifie ``
+
Si réussi → Analyser et utiliser les données, Si échoué → Réessayer ou gérer l'erreur
-### Prevent Hallucinations
+### Prévenir les hallucinations
-
Scenario: Validate customer support responses
+
Scénario : valider les réponses du support client
-
Agent generates response to customer question
-
Guardrails checks against support documentation knowledge base
-
If confidence score ≥ 3 → Send response
-
If confidence score \< 3 → Flag for human review
+
L'agent génère une réponse à la question du client
+
Guardrails vérifie par rapport à la base de connaissances de la documentation d'assistance
+
Si le score de confiance ≥ 3 → Envoyer la réponse
+
Si le score de confiance \< 3 → Signaler pour révision humaine
-### Block PII in User Inputs
+### Bloquer les PII dans les entrées utilisateur
-
Scenario: Sanitize user-submitted content
+
Scénario : assainir le contenu soumis par l'utilisateur
If PII detected → Reject submission or mask sensitive data
-
If no PII → Process normally
+
L'utilisateur soumet un formulaire avec du contenu textuel
+
Guardrails détecte les PII (emails, numéros de téléphone, numéros de sécurité sociale, etc.)
+
Si PII détectées → Rejeter la soumission ou masquer les données sensibles
+
Si aucune PII → Traiter normalement
@@ -222,30 +222,29 @@ Additional outputs by type:
-### Validate Email Format
+### Valider le format d'email
-
Scenario: Check email address format
+
Scénario : vérifier le format d'adresse email
-
Agent extracts email from text
-
Guardrails validates with regex pattern
-
If valid → Use email for notification
-
If invalid → Request correction
+
L'agent extrait l'email du texte
+
Guardrails valide avec un modèle d'expression régulière
+
Si valide → Utiliser l'email pour la notification
+
Si invalide → Demander une correction
-## Best Practices
+## Bonnes pratiques
-- **Chain with Condition blocks**: Use `` to branch workflow logic based on validation results
-- **Use JSON validation before parsing**: Always validate JSON structure before attempting to parse LLM outputs
-- **Choose appropriate PII types**: Only select the PII entity types relevant to your use case for better performance
-- **Set reasonable confidence thresholds**: For hallucination detection, adjust threshold based on your accuracy requirements (higher = stricter)
-- **Use strong models for hallucination detection**: GPT-4o or Claude 3.7 Sonnet provide more accurate confidence scoring
-- **Mask PII for logging**: Use "Mask" mode when you need to log or store content that may contain PII
-- **Test regex patterns**: Validate your regex patterns thoroughly before deploying to production
-- **Monitor validation failures**: Track `` messages to identify common validation issues
+- **Chaîner avec des blocs Condition** : Utilisez `` pour créer des branches dans la logique du workflow selon les résultats de validation
+- **Valider le JSON avant l'analyse** : Toujours valider la structure JSON avant de tenter d'analyser les sorties du LLM
+- **Choisir les types de PII appropriés** : Sélectionnez uniquement les types d'entités PII pertinents pour votre cas d'utilisation afin d'améliorer les performances
+- **Définir des seuils de confiance raisonnables** : Pour la détection d'hallucinations, ajustez le seuil selon vos exigences de précision (plus élevé = plus strict)
+- **Utiliser des modèles performants pour la détection d'hallucinations** : GPT-4o ou Claude 3.7 Sonnet fournissent un score de confiance plus précis
+- **Masquer les PII pour la journalisation** : Utilisez le mode « Mask » lorsque vous devez journaliser ou stocker du contenu susceptible de contenir des PII
+- **Tester les modèles regex** : Validez soigneusement vos modèles d'expressions régulières avant de les déployer en production
+- **Surveiller les échecs de validation** : Suivez les messages `` pour identifier les problèmes de validation courants
- Guardrails validation happens synchronously in your workflow. For hallucination detection, choose faster models (like GPT-4o-mini) if latency is critical.
+ La validation des guardrails s'effectue de manière synchrone dans votre workflow. Pour la détection d'hallucinations, choisissez des modèles plus rapides (comme GPT-4o-mini) si la latence est critique.
-
diff --git a/apps/docs/content/docs/fr/sdks/typescript.mdx b/apps/docs/content/docs/fr/sdks/typescript.mdx
index b023ed12ac..61eacdd2b2 100644
--- a/apps/docs/content/docs/fr/sdks/typescript.mdx
+++ b/apps/docs/content/docs/fr/sdks/typescript.mdx
@@ -1,5 +1,5 @@
---
-title: TypeScript/JavaScript SDK
+title: SDK TypeScript/JavaScript
---
import { Callout } from 'fumadocs-ui/components/callout'
@@ -7,10 +7,10 @@ import { Card, Cards } from 'fumadocs-ui/components/card'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
-Le SDK officiel TypeScript/JavaScript pour Sim offre une sécurité de type complète et prend en charge les environnements Node.js et navigateur, vous permettant d'exécuter des workflows par programmation depuis vos applications Node.js, applications web et autres environnements JavaScript.
+Le SDK officiel TypeScript/JavaScript pour Sim offre une sécurité de type complète et prend en charge les environnements Node.js et navigateur, vous permettant d'exécuter des flux de travail par programmation depuis vos applications Node.js, applications web et autres environnements JavaScript.
- Le SDK TypeScript offre une sécurité de type complète, la prise en charge de l'exécution asynchrone, une limitation automatique du débit avec backoff exponentiel et le suivi d'utilisation.
+ Le SDK TypeScript fournit une sécurité de type complète, une prise en charge de l'exécution asynchrone, une limitation automatique du débit avec backoff exponentiel et un suivi d'utilisation.
## Installation
@@ -43,7 +43,7 @@ Installez le SDK en utilisant votre gestionnaire de paquets préféré :
## Démarrage rapide
-Voici un exemple simple pour commencer :
+Voici un exemple simple pour vous aider à démarrer :
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
@@ -74,14 +74,14 @@ new SimStudioClient(config: SimStudioConfig)
```
**Configuration :**
-- `config.apiKey` (string) : votre clé API Sim
+- `config.apiKey` (string) : Votre clé API Sim
- `config.baseUrl` (string, optionnel) : URL de base pour l'API Sim (par défaut `https://sim.ai`)
#### Méthodes
##### executeWorkflow()
-Exécuter un workflow avec des données d'entrée optionnelles.
+Exécuter un flux de travail avec des données d'entrée optionnelles.
```typescript
const result = await client.executeWorkflow('workflow-id', {
@@ -91,17 +91,17 @@ const result = await client.executeWorkflow('workflow-id', {
```
**Paramètres :**
-- `workflowId` (string) : L'ID du workflow à exécuter
-- `options` (ExecutionOptions, optionnel) :
+- `workflowId` (string) : L'identifiant du workflow à exécuter
+- `options` (ExecutionOptions, facultatif) :
- `input` (any) : Données d'entrée à transmettre au workflow
- `timeout` (number) : Délai d'expiration en millisecondes (par défaut : 30000)
- `stream` (boolean) : Activer les réponses en streaming (par défaut : false)
- - `selectedOutputs` (string[]) : Bloquer les sorties à diffuser au format `blockName.attribute` (par exemple, `["agent1.content"]`)
+ - `selectedOutputs` (string[]) : Sorties de blocs à diffuser au format `blockName.attribute` (par exemple, `["agent1.content"]`)
- `async` (boolean) : Exécuter de manière asynchrone (par défaut : false)
**Retourne :** `Promise`
-Lorsque `async: true`, retourne immédiatement avec un ID de tâche pour l'interrogation. Sinon, attend la fin de l'exécution.
+Lorsque `async: true`, retourne immédiatement un identifiant de tâche pour l'interrogation. Sinon, attend la fin de l'exécution.
##### getWorkflowStatus()
@@ -113,7 +113,7 @@ console.log('Is deployed:', status.isDeployed);
```
**Paramètres :**
-- `workflowId` (string) : L'ID du workflow
+- `workflowId` (string) : L'identifiant du workflow
**Retourne :** `Promise`
@@ -129,7 +129,7 @@ if (isReady) {
```
**Paramètres :**
-- `workflowId` (string) : L'ID du workflow
+- `workflowId` (string) : L'identifiant du workflow
**Retourne :** `Promise`
@@ -146,22 +146,22 @@ if (status.status === 'completed') {
```
**Paramètres :**
-- `taskId` (string) : L'ID de tâche retourné par l'exécution asynchrone
+- `taskId` (string) : L'identifiant de tâche retourné par l'exécution asynchrone
**Retourne :** `Promise`
**Champs de réponse :**
- `success` (boolean) : Indique si la requête a réussi
-- `taskId` (string) : L'ID de la tâche
-- `status` (string) : L'un des statuts suivants : `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
-- `metadata` (object) : Contient `startedAt`, `completedAt`, et `duration`
-- `output` (any, optionnel) : La sortie du workflow (une fois terminé)
-- `error` (any, optionnel) : Détails de l'erreur (en cas d'échec)
-- `estimatedDuration` (number, optionnel) : Durée estimée en millisecondes (lorsqu'en traitement/en file d'attente)
+- `taskId` (string) : L'identifiant de la tâche
+- `status` (string) : L'un des états suivants : `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
+- `metadata` (object) : Contient `startedAt`, `completedAt` et `duration`
+- `output` (any, facultatif) : La sortie du workflow (une fois terminé)
+- `error` (any, facultatif) : Détails de l'erreur (en cas d'échec)
+- `estimatedDuration` (number, facultatif) : Durée estimée en millisecondes (lorsqu'en traitement/en file d'attente)
##### executeWithRetry()
-Exécute un workflow avec une nouvelle tentative automatique en cas d'erreurs de limite de débit en utilisant un backoff exponentiel.
+Exécuter un workflow avec une nouvelle tentative automatique en cas d'erreurs de limitation de débit, en utilisant un backoff exponentiel.
```typescript
const result = await client.executeWithRetry('workflow-id', {
@@ -186,11 +186,11 @@ const result = await client.executeWithRetry('workflow-id', {
**Retourne :** `Promise`
-La logique de nouvelle tentative utilise un backoff exponentiel (1s → 2s → 4s → 8s...) avec une variation aléatoire de ±25 % pour éviter l'effet de rafale. Si l'API fournit un en-tête `retry-after`, celui-ci sera utilisé à la place.
+La logique de nouvelle tentative utilise un backoff exponentiel (1s → 2s → 4s → 8s...) avec une variation aléatoire de ±25 % pour éviter l'effet de horde. Si l'API fournit un en-tête `retry-after`, celui-ci sera utilisé à la place.
##### getRateLimitInfo()
-Obtient les informations actuelles sur les limites de débit à partir de la dernière réponse de l'API.
+Obtenir les informations actuelles de limitation de débit à partir de la dernière réponse de l'API.
```typescript
const rateLimitInfo = client.getRateLimitInfo();
@@ -205,7 +205,7 @@ if (rateLimitInfo) {
##### getUsageLimits()
-Obtient les limites d'utilisation actuelles et les informations de quota pour votre compte.
+Obtenir les limites d'utilisation actuelles et les informations de quota pour votre compte.
```typescript
const limits = await client.getUsageLimits();
@@ -247,7 +247,7 @@ console.log('Plan:', limits.usage.plan);
##### setApiKey()
-Met à jour la clé API.
+Mettre à jour la clé API.
```typescript
client.setApiKey('new-api-key');
@@ -255,7 +255,7 @@ client.setApiKey('new-api-key');
##### setBaseUrl()
-Met à jour l'URL de base.
+Mettre à jour l'URL de base.
```typescript
client.setBaseUrl('https://my-custom-domain.com');
@@ -356,7 +356,7 @@ class SimStudioError extends Error {
**Codes d'erreur courants :**
- `UNAUTHORIZED` : Clé API invalide
-- `TIMEOUT` : Délai d'attente de la requête dépassé
+- `TIMEOUT` : Délai d'attente dépassé
- `RATE_LIMIT_EXCEEDED` : Limite de débit dépassée
- `USAGE_LIMIT_EXCEEDED` : Limite d'utilisation dépassée
- `EXECUTION_ERROR` : Échec de l'exécution du workflow
@@ -501,7 +501,7 @@ Configurez le client en utilisant des variables d'environnement :
-### Intégration avec Express de Node.js
+### Intégration avec Node.js Express
Intégration avec un serveur Express.js :
@@ -604,26 +604,105 @@ async function executeClientSideWorkflow() {
});
console.log('Workflow result:', result);
-
+
// Update UI with result
- document.getElementById('result')!.textContent =
+ document.getElementById('result')!.textContent =
JSON.stringify(result.output, null, 2);
} catch (error) {
console.error('Error:', error);
}
}
-
-// Attach to button click
-document.getElementById('executeBtn')?.addEventListener('click', executeClientSideWorkflow);
```
+### Téléchargement de fichiers
+
+Les objets File sont automatiquement détectés et convertis au format base64. Incluez-les dans votre entrée sous le nom de champ correspondant au format d'entrée du déclencheur API de votre workflow.
+
+Le SDK convertit les objets File dans ce format :
+
+```typescript
+{
+ type: 'file',
+ data: 'data:mime/type;base64,base64data',
+ name: 'filename',
+ mime: 'mime/type'
+}
+```
+
+Alternativement, vous pouvez fournir manuellement des fichiers en utilisant le format URL :
+
+```typescript
+{
+ type: 'url',
+ data: 'https://example.com/file.pdf',
+ name: 'file.pdf',
+ mime: 'application/pdf'
+}
+```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.NEXT_PUBLIC_SIM_API_KEY!
+ });
+
+ // From file input
+ async function handleFileUpload(event: Event) {
+ const input = event.target as HTMLInputElement;
+ const files = Array.from(input.files || []);
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: files, // Must match your workflow's "files" field name
+ instructions: 'Analyze these documents'
+ }
+ });
+
+ console.log('Result:', result);
+ }
+ ```
+
+
+
+
+ ```typescript
+ import { SimStudioClient } from 'simstudio-ts-sdk';
+ import fs from 'fs';
+
+ const client = new SimStudioClient({
+ apiKey: process.env.SIM_API_KEY!
+ });
+
+ // Read file and create File object
+ const fileBuffer = fs.readFileSync('./document.pdf');
+ const file = new File([fileBuffer], 'document.pdf', {
+ type: 'application/pdf'
+ });
+
+ // Include files under the field name from your API trigger's input format
+ const result = await client.executeWorkflow('workflow-id', {
+ input: {
+ documents: [file], // Must match your workflow's "files" field name
+ query: 'Summarize this document'
+ }
+ });
+ ```
+
+
+
+
- Lors de l'utilisation du SDK dans le navigateur, veillez à ne pas exposer de clés API sensibles. Envisagez d'utiliser un proxy backend ou des clés API publiques avec des permissions limitées.
+ Lorsque vous utilisez le SDK dans le navigateur, faites attention à ne pas exposer des clés API sensibles. Envisagez d'utiliser un proxy backend ou des clés API publiques avec des permissions limitées.
### Exemple de hook React
-Créer un hook React personnalisé pour l'exécution de workflow :
+Créez un hook React personnalisé pour l'exécution du workflow :
```typescript
import { useState, useCallback } from 'react';
@@ -699,9 +778,9 @@ function WorkflowComponent() {
}
```
-### Exécution asynchrone de workflow
+### Exécution asynchrone du workflow
-Exécuter des workflows de manière asynchrone pour les tâches de longue durée :
+Exécutez des workflows de manière asynchrone pour les tâches de longue durée :
```typescript
import { SimStudioClient, AsyncExecutionResult } from 'simstudio-ts-sdk';
@@ -750,7 +829,7 @@ executeAsync();
### Limitation de débit et nouvelle tentative
-Gérer automatiquement les limites de débit avec backoff exponentiel :
+Gérez automatiquement les limites de débit avec un backoff exponentiel :
```typescript
import { SimStudioClient, SimStudioError } from 'simstudio-ts-sdk';
@@ -786,9 +865,9 @@ async function executeWithRetryHandling() {
}
```
-### Surveillance d'utilisation
+### Surveillance de l'utilisation
-Surveiller l'utilisation et les limites de votre compte :
+Surveillez l'utilisation et les limites de votre compte :
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
@@ -814,28 +893,28 @@ async function checkUsage() {
console.log(' Resets at:', limits.rateLimit.async.resetAt);
console.log(' Is limited:', limits.rateLimit.async.isLimited);
- console.log('\n=== Utilisation ===');
- console.log('Coût de la période actuelle : ' + limits.usage.currentPeriodCost.toFixed(2) + ' $');
- console.log('Limite : ' + limits.usage.limit.toFixed(2) + ' $');
- console.log('Forfait :', limits.usage.plan);
+ console.log('\n=== Usage ===');
+ console.log('Current period cost: $' + limits.usage.currentPeriodCost.toFixed(2));
+ console.log('Limit: $' + limits.usage.limit.toFixed(2));
+ console.log('Plan:', limits.usage.plan);
const percentUsed = (limits.usage.currentPeriodCost / limits.usage.limit) * 100;
- console.log('Utilisation : ' + percentUsed.toFixed(1) + ' %');
+ console.log('Usage: ' + percentUsed.toFixed(1) + '%');
if (percentUsed > 80) {
- console.warn('⚠️ Attention : vous approchez de votre limite d\'utilisation !');
+ console.warn('⚠️ Warning: You are approaching your usage limit!');
}
} catch (error) {
- console.error('Erreur lors de la vérification de l\'utilisation :', error);
+ console.error('Error checking usage:', error);
}
}
checkUsage();
```
-### Exécution de flux de travail avec streaming
+### Exécution de workflow en streaming
-Exécutez des flux de travail avec des réponses en streaming en temps réel :
+Exécutez des workflows avec des réponses en streaming en temps réel :
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
@@ -846,40 +925,35 @@ const client = new SimStudioClient({
async function executeWithStreaming() {
try {
- // Activer le streaming pour des sorties de blocs spécifiques
+ // Enable streaming for specific block outputs
const result = await client.executeWorkflow('workflow-id', {
- input: { message: 'Compter jusqu'à cinq' },
+ input: { message: 'Count to five' },
stream: true,
- selectedOutputs: ['agent1.content'] // Utiliser le format blockName.attribute
+ selectedOutputs: ['agent1.content'] // Use blockName.attribute format
});
- console.log('Résultat du workflow :', result);
+ console.log('Workflow result:', result);
} catch (error) {
- console.error('Erreur :', error);
+ console.error('Error:', error);
}
}
-
```
-The streaming response follows the Server-Sent Events (SSE) format:
+La réponse en streaming suit le format Server-Sent Events (SSE) :
```
-
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
-data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", deux"}
+data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
data: [DONE]
-
```
-**React Streaming Example:**
+**Exemple de streaming avec React :**
-```
-
-typescript
+```typescript
import { useState, useEffect } from 'react';
function StreamingWorkflow() {
@@ -941,44 +1015,43 @@ function StreamingWorkflow() {
return (
{output}
);
}
-
```
-## Getting Your API Key
+## Obtenir votre clé API
-
- Navigate to [Sim](https://sim.ai) and log in to your account.
+
+ Accédez à [Sim](https://sim.ai) et connectez-vous à votre compte.
-
- Navigate to the workflow you want to execute programmatically.
+
+ Accédez au workflow que vous souhaitez exécuter par programmation.
-
- Click on "Deploy" to deploy your workflow if it hasn't been deployed yet.
+
+ Cliquez sur "Déployer" pour déployer votre workflow s'il n'a pas encore été déployé.
-
- During the deployment process, select or create an API key.
+
+ Pendant le processus de déploiement, sélectionnez ou créez une clé API.
-
- Copy the API key to use in your TypeScript/JavaScript application.
+
+ Copiez la clé API pour l'utiliser dans votre application TypeScript/JavaScript.
- Keep your API key secure and never commit it to version control. Use environment variables or secure configuration management.
+ Gardez votre clé API en sécurité et ne la publiez jamais dans un système de contrôle de version. Utilisez des variables d'environnement ou une gestion sécurisée de configuration.
-## Requirements
+## Prérequis
- Node.js 16+
-- TypeScript 5.0+ (for TypeScript projects)
+- TypeScript 5.0+ (pour les projets TypeScript)
-## License
+## Licence
Apache-2.0
diff --git a/apps/docs/content/docs/ja/blocks/guardrails.mdx b/apps/docs/content/docs/ja/blocks/guardrails.mdx
index f2d6a95f8f..9aa8cc2d95 100644
--- a/apps/docs/content/docs/ja/blocks/guardrails.mdx
+++ b/apps/docs/content/docs/ja/blocks/guardrails.mdx
@@ -1,5 +1,5 @@
---
-title: Guardrails
+title: ガードレール
---
import { Callout } from 'fumadocs-ui/components/callout'
@@ -8,213 +8,213 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
-The Guardrails block validates and protects your AI workflows by checking content against multiple validation types. Ensure data quality, prevent hallucinations, detect PII, and enforce format requirements before content moves through your workflow.
+ガードレールブロックは、複数の検証タイプに対してコンテンツをチェックすることで、AIワークフローを検証し保護します。データ品質の確保、ハルシネーション(幻覚)の防止、個人情報の検出、フォーマット要件の強制などをワークフローに組み込む前に行います。
-## Overview
+## 概要
-The Guardrails block enables you to:
+ガードレールブロックでは以下のことが可能です:
- Validate JSON Structure: Ensure LLM outputs are valid JSON before parsing
+ JSON構造の検証:パース前にLLM出力が有効なJSONであることを確認
- Match Regex Patterns: Verify content matches specific formats (emails, phone numbers, URLs, etc.)
+ 正規表現パターンの一致:コンテンツが特定のフォーマット(メール、電話番号、URLなど)に一致するか確認
- Detect Hallucinations: Use RAG + LLM scoring to validate AI outputs against knowledge base content
+ ハルシネーション(幻覚)の検出:RAG + LLMスコアリングを使用してAI出力をナレッジベースコンテンツと照合して検証
- Detect PII: Identify and optionally mask personally identifiable information across 40+ entity types
+ 個人情報の検出:40種類以上のエンティティタイプにわたる個人を特定できる情報を識別し、オプションでマスク処理
-## Validation Types
+## 検証タイプ
-### JSON Validation
+### JSON検証
-Validates that content is properly formatted JSON. Perfect for ensuring structured LLM outputs can be safely parsed.
+コンテンツが適切にフォーマットされたJSONであることを検証します。構造化されたLLM出力を安全にパースできることを確認するのに最適です。
-**Use Cases:**
-- Validate JSON responses from Agent blocks before parsing
-- Ensure API payloads are properly formatted
-- Check structured data integrity
+**ユースケース:**
+- パース前にエージェントブロックからのJSON応答を検証
+- APIペイロードが適切にフォーマットされていることを確認
+- 構造化データの整合性をチェック
-**Output:**
-- `passed`: `true` if valid JSON, `false` otherwise
-- `error`: Error message if validation fails (e.g., "Invalid JSON: Unexpected token...")
+**出力:**
+- `passed`: 有効なJSONの場合は`true`、それ以外は`false`
+- `error`: 検証が失敗した場合のエラーメッセージ(例:「無効なJSON:予期しないトークン...」)
-### Regex Validation
+### 正規表現検証
-Checks if content matches a specified regular expression pattern.
+コンテンツが指定された正規表現パターンに一致するかどうかをチェックします。
-**Use Cases:**
-- Validate email addresses
-- Check phone number formats
-- Verify URLs or custom identifiers
-- Enforce specific text patterns
+**ユースケース:**
+- メールアドレスの検証
+- 電話番号フォーマットのチェック
+- URLやカスタム識別子の確認
+- 特定のテキストパターンの強制
-**Configuration:**
-- **Regex Pattern**: The regular expression to match against (e.g., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` for emails)
+**設定:**
+- **正規表現パターン**:一致させる正規表現(例:メールの場合は`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)
-**Output:**
-- `passed`: `true` if content matches pattern, `false` otherwise
-- `error`: Error message if validation fails
+**出力:**
+- `passed`: コンテンツがパターンに一致する場合は `true`、それ以外の場合は `false`
+- `error`: 検証が失敗した場合のエラーメッセージ
-### Hallucination Detection
+### 幻覚検出
-Uses Retrieval-Augmented Generation (RAG) with LLM scoring to detect when AI-generated content contradicts or isn't grounded in your knowledge base.
+検索拡張生成(RAG)とLLMスコアリングを使用して、AI生成コンテンツがナレッジベースと矛盾している場合や、ナレッジベースに根拠がない場合を検出します。
-**How It Works:**
-1. Queries your knowledge base for relevant context
-2. Sends both the AI output and retrieved context to an LLM
-3. LLM assigns a confidence score (0-10 scale)
- - **0** = Full hallucination (completely ungrounded)
- - **10** = Fully grounded (completely supported by knowledge base)
-4. Validation passes if score ≥ threshold (default: 3)
+**仕組み:**
+1. 関連するコンテキストについてナレッジベースに問い合わせます
+2. AI出力と取得したコンテキストの両方をLLMに送信します
+3. LLMが信頼度スコア(0〜10のスケール)を割り当てます
+ - **0** = 完全な幻覚(まったく根拠なし)
+ - **10** = 完全に根拠あり(ナレッジベースで完全にサポートされている)
+4. スコアが閾値以上(デフォルト:3)であれば検証に合格します
-**Configuration:**
-- **Knowledge Base**: Select from your existing knowledge bases
-- **Model**: Choose LLM for scoring (requires strong reasoning - GPT-4o, Claude 3.7 Sonnet recommended)
-- **API Key**: Authentication for selected LLM provider (auto-hidden for hosted/Ollama models)
-- **Confidence Threshold**: Minimum score to pass (0-10, default: 3)
-- **Top K** (Advanced): Number of knowledge base chunks to retrieve (default: 10)
+**設定:**
+- **ナレッジベース**: 既存のナレッジベースから選択
+- **モデル**: スコアリング用のLLMを選択(強力な推論能力が必要 - GPT-4o、Claude 3.7 Sonnetを推奨)
+- **APIキー**: 選択したLLMプロバイダーの認証(ホスト型/Ollamaモデルでは自動的に非表示)
+- **信頼度閾値**: 合格するための最小スコア(0〜10、デフォルト:3)
+- **Top K**(詳細設定): 取得するナレッジベースのチャンク数(デフォルト:10)
-**Output:**
-- `passed`: `true` if confidence score ≥ threshold
-- `score`: Confidence score (0-10)
-- `reasoning`: LLM's explanation for the score
-- `error`: Error message if validation fails
+**出力:**
+- `passed`: 信頼度スコアが閾値以上の場合は `true`
+- `score`: 信頼度スコア(0〜10)
+- `reasoning`: スコアに対するLLMの説明
+- `error`: 検証が失敗した場合のエラーメッセージ
-**Use Cases:**
-- Validate Agent responses against documentation
-- Ensure customer support answers are factually accurate
-- Verify generated content matches source material
-- Quality control for RAG applications
+**ユースケース:**
+- エージェントの応答をドキュメントに対して検証
+- カスタマーサポートの回答が事実に基づいていることを確認
+- 生成されたコンテンツがソース資料と一致することを確認
+- RAGアプリケーションの品質管理
-### PII Detection
+### PII検出
-Detects personally identifiable information using Microsoft Presidio. Supports 40+ entity types across multiple countries and languages.
+Microsoft Presidioを使用して個人を特定できる情報を検出します。複数の国や言語にわたる40以上のエンティティタイプをサポートしています。
-**How It Works:**
-1. Scans content for PII entities using pattern matching and NLP
-2. Returns detected entities with locations and confidence scores
-3. Optionally masks detected PII in the output
+**仕組み:**
+1. パターンマッチングとNLPを使用してコンテンツ内のPIIエンティティをスキャンします
+2. 検出されたエンティティの位置と信頼度スコアを返します
+3. オプションで出力内の検出されたPIIをマスクします
-**Configuration:**
-- **PII Types to Detect**: Select from grouped categories via modal selector
- - **Common**: Person name, Email, Phone, Credit card, IP address, etc.
- - **USA**: SSN, Driver's license, Passport, etc.
- - **UK**: NHS number, National insurance number
- - **Spain**: NIF, NIE, CIF
- - **Italy**: Fiscal code, Driver's license, VAT code
- - **Poland**: PESEL, NIP, REGON
- - **Singapore**: NRIC/FIN, UEN
- - **Australia**: ABN, ACN, TFN, Medicare
- - **India**: Aadhaar, PAN, Passport, Voter number
-- **Mode**:
- - **Detect**: Only identify PII (default)
- - **Mask**: Replace detected PII with masked values
-- **Language**: Detection language (default: English)
+**設定:**
+- **検出するPIIタイプ**: モーダルセレクターからグループ化されたカテゴリーを選択
+ - **一般**: 個人名、メールアドレス、電話番号、クレジットカード、IPアドレスなど
+ - **アメリカ**: 社会保障番号、運転免許証、パスポートなど
+ - **イギリス**: NHS番号、国民保険番号
+ - **スペイン**: NIF、NIE、CIF
+ - **イタリア**: 納税者番号、運転免許証、VAT番号
+ - **ポーランド**: PESEL、NIP、REGON
+ - **シンガポール**: NRIC/FIN、UEN
+ - **オーストラリア**: ABN、ACN、TFN、メディケア
+ - **インド**: Aadhaar、PAN、パスポート、有権者番号
+- **モード**:
+ - **検出**: PIIの識別のみ(デフォルト)
+ - **マスク**: 検出されたPIIをマスク値に置き換え
+- **言語**: 検出言語(デフォルト:英語)
-**Output:**
-- `passed`: `false` if any selected PII types are detected
-- `detectedEntities`: Array of detected PII with type, location, and confidence
-- `maskedText`: Content with PII masked (only if mode = "Mask")
-- `error`: Error message if validation fails
+**出力:**
+- `passed`: 選択したPIIタイプが検出された場合は `false`
+- `detectedEntities`: タイプ、位置、信頼度を含む検出されたPIIの配列
+- `maskedText`: PIIがマスクされたコンテンツ(モード = "Mask"の場合のみ)
+- `error`: 検証が失敗した場合のエラーメッセージ
-**Use Cases:**
-- Block content containing sensitive personal information
-- Mask PII before logging or storing data
-- Compliance with GDPR, HIPAA, and other privacy regulations
-- Sanitize user inputs before processing
+**ユースケース:**
+- 機密性の高い個人情報を含むコンテンツのブロック
+- データのログ記録や保存前のPIIマスキング
+- GDPR、HIPAAなどのプライバシー規制への準拠
+- 処理前のユーザー入力のサニタイズ
-## Configuration
+## 設定
-### Content to Validate
+### 検証するコンテンツ
-The input content to validate. This typically comes from:
-- Agent block outputs: ``
-- Function block results: ``
-- API responses: ``
-- Any other block output
+検証する入力コンテンツ。通常、以下から取得されます:
+- エージェントブロックの出力: ``
+- ファンクションブロックの結果: ``
+- APIレスポンス: ``
+- その他のブロック出力
-### Validation Type
+### 検証タイプ
-Choose from four validation types:
-- **Valid JSON**: Check if content is properly formatted JSON
-- **Regex Match**: Verify content matches a regex pattern
-- **Hallucination Check**: Validate against knowledge base with LLM scoring
-- **PII Detection**: Detect and optionally mask personally identifiable information
+4つの検証タイプから選択:
+- **有効なJSON**: コンテンツが適切にフォーマットされたJSONかどうかを確認
+- **正規表現マッチ**: コンテンツが正規表現パターンに一致するか検証
+- **幻覚チェック**: LLMスコアリングによる知識ベースとの検証
+- **PII検出**: 個人を特定できる情報の検出と任意のマスキング
-## Outputs
+## 出力
-All validation types return:
+すべての検証タイプは以下を返します:
-- **``**: Boolean indicating if validation passed
-- **``**: The type of validation performed
-- **``**: The original input that was validated
-- **``**: Error message if validation failed (optional)
+- **``**: 検証が成功したかどうかを示すブール値
+- **``**: 実行された検証のタイプ
+- **``**: 検証された元の入力
+- **``**: 検証が失敗した場合のエラーメッセージ(オプション)
-Additional outputs by type:
+タイプ別の追加出力:
-**Hallucination Check:**
-- **``**: Confidence score (0-10)
-- **``**: LLM's explanation
+**幻覚チェック:**
+- **``**: 信頼度スコア(0〜10)
+- **``**: LLMの説明
-**PII Detection:**
-- **``**: Array of detected PII entities
-- **``**: Content with PII masked (if mode = "Mask")
+**PII検出:**
+- **``**: 検出されたPIIエンティティの配列
+- **``**: PIIがマスクされたコンテンツ(モード = "Mask"の場合)
-## Example Use Cases
+## 使用例
-### Validate JSON Before Parsing
+### パース前にJSONを検証する
-
Scenario: Ensure Agent output is valid JSON
+
シナリオ:エージェントの出力が有効なJSONであることを確認する
-
Agent generates structured JSON response
-
Guardrails validates JSON format
-
Condition block checks ``
-
If passed → Parse and use data, If failed → Retry or handle error
+
エージェントが構造化されたJSON応答を生成
+
ガードレールがJSON形式を検証
+
条件ブロックが``をチェック
+
成功した場合→データを解析して使用、失敗した場合→再試行またはエラー処理
-### Prevent Hallucinations
+### 幻覚を防止する
-
Scenario: Validate customer support responses
+
シナリオ:カスタマーサポートの回答を検証する
-
Agent generates response to customer question
-
Guardrails checks against support documentation knowledge base
-
If confidence score ≥ 3 → Send response
-
If confidence score \< 3 → Flag for human review
+
エージェントが顧客の質問に対する回答を生成
+
ガードレールがサポートドキュメントのナレッジベースと照合
+
信頼度スコアが3以上→回答を送信
+
信頼度スコアが3未満→人間によるレビューにフラグを立てる
-### Block PII in User Inputs
+### ユーザー入力のPIIをブロックする