In meiner mehrjährigen Arbeit mit Large Language Models in Produktionsumgebungen habe ich eines gelernt: Die Qualität der Modellausgaben ist ebenso wichtig wie die Wahl des richtigen Modells. Braintrust hat sich als eines der mächtigsten Evaluation-Frameworks etabliert, das Entwicklern ermöglicht, AI-Outputs systematisch zu messen, zu vergleichen und kontinuierlich zu verbessern. In diesem Deep-Dive zeige ich Ihnen, wie Sie Braintrust mit HolySheep AI integrieren und so Kosten bei gleichzeitiger Qualitätssteigerung optimieren.

Was ist Braintrust und warum ist Evaluation kritisch?

Braintrust ist ein Open-Source-Evaluations-Framework, das speziell für die Bewertung von LLM-Anwendungen entwickelt wurde. Im Gegensatz zu manuellen Tests ermöglicht Braintrust automatisierte, reproduzierbare Evaluationspipelines mit metrikbasierter Qualitätsmessung.

Kernfunktionalitäten im Überblick

Architektur und Funktionsweise

Systemkomponenten

Die Braintrust-Architektur basiert auf drei Hauptkomponenten:

Braintrust-Architektur
┌─────────────────────────────────────────────────────────┐
│                    Evaluations Layer                     │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │ Autoevals   │  │ Custom      │  │ Human       │      │
│  │ (Metriken)  │  │ Functions   │  │ Feedback    │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
├─────────────────────────────────────────────────────────┤
│                    SDK / API Layer                       │
│  ┌─────────────────────────────────────────────────┐    │
│  │         Braintrust Python/JS SDK                 │    │
│  └─────────────────────────────────────────────────┘    │
├─────────────────────────────────────────────────────────┤
│                    Provider Integration                  │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐      │
│  │ HolySheep│ │ OpenAI  │ │ Anthropic│ │ Google  │      │
│  │ (empfohlen)│ │         │ │         │ │         │      │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘      │
└─────────────────────────────────────────────────────────┘

Evaluations-Metriken-Kategorien

# Braintrust Metriken-Übersicht

METRIC_CATEGORIES = {
    "faithfulness": {
        "description": "Wie treu ist die Antwort der Quelle/Context?",
        "functions": ["faithfulness", "truthfulness", "correctness"]
    },
    "relevance": {
        "description": "Wie relevant ist die Antwort für die Anfrage?",
        "functions": ["relevance", "semantic_similarity", "context_precision"]
    },
    "safety": {
        "description": "Vermeidung von Halluzinationen und schädlichen Inhalten",
        "functions": ["harmfulness", "toxicity", "hallucination_detection"]
    },
    "format": {
        "description": "Strukturelle Qualität und Formatierung",
        "functions": ["valid_json", "contains_code", "length_constraint"]
    }
}

Integration mit HolySheep AI

HolySheep AI bietet mit seiner API-Schnittstelle eine ideale Basis für Braintrust-Evaluationen. Mit Latenzzeiten unter 50ms und einem Preis von etwa ¥1 pro Dollar (85%+ Ersparnis gegenüber OpenAI) können Sie umfangreiche Evaluationen durchführen, ohne die Kosten ausufern zu lassen. Jetzt registrieren und Startguthaben sichern.

Vollständige Implementierung

# braintrust_evaluation.py
"""
Braintrust AI Evaluation mit HolySheep AI Backend
Optimiert für Produktions-Use-Cases mit Kostenkontrolle
"""

import os
import json
import time
from typing import List, Dict, Any, Optional
from dataclasses import dataclass
from braintrust import Eval, Span
from braintrust.openai import span_openai

HolySheep AI Konfiguration

HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1" HOLYSHEEP_API_KEY = os.environ.get("HOLYSHEEP_API_KEY", "YOUR_HOLYSHEEP_API_KEY") @dataclass class ModelConfig: """Konfiguration für verschiedene Modelle""" name: str provider: str cost_per_mtok: float # in USD latency_ms_avg: float quality_score: float # 0-1 def __repr__(self): return f"{self.provider}/{self.name}"

Modell-Konfigurationen mit echten Preisen (Stand 2026)

MODEL_CONFIGS = { "gpt_4_1": ModelConfig( name="gpt-4.1", provider="holysheep", cost_per_mtok=8.00, latency_ms_avg=45, quality_score=0.92 ), "claude_sonnet_4_5": ModelConfig( name="claude-sonnet-4.5", provider="holysheep", cost_per_mtok=15.00, latency_ms_avg=52, quality_score=0.94 ), "gemini_2_5_flash": ModelConfig( name="gemini-2.5-flash", provider="holysheep", cost_per_mtok=2.50, latency_ms_avg=38, quality_score=0.88 ), "deepseek_v3_2": ModelConfig( name="deepseek-v3.2", provider="holysheep", cost_per_mtok=0.42, latency_ms_avg=41, quality_score=0.85 ), } class HolySheepAIClient: """ HolySheep AI Client für Braintrust Integration Unterstützt Multi-Model-Evaluation mit Kostenverfolgung """ def __init__(self, api_key: str, base_url: str = HOLYSHEEP_BASE_URL): self.api_key = api_key self.base_url = base_url self.total_cost = 0.0 self.total_tokens = 0 self.request_count = 0 def chat_completion( self, model: str, messages: List[Dict[str, str]], temperature: float = 0.7, max_tokens: int = 2048, **kwargs ) -> Dict[str, Any]: """Führt Chat-Completion mit HolySheep AI aus""" import requests headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } payload = { "model": model, "messages": messages, "temperature": temperature, "max_tokens": max_tokens, **kwargs } start_time = time.time() response = requests.post( f"{self.base_url}/chat/completions", headers=headers, json=payload, timeout=30 ) latency_ms = (time.time() - start_time) * 1000 if response.status_code != 200: raise RuntimeError(f"HolySheep API Error: {response.status_code} - {response.text}") result = response.json() # Kostenberechnung usage = result.get("usage", {}) prompt_tokens = usage.get("prompt_tokens", 0) completion_tokens = usage.get("completion_tokens", 0) total_tokens = prompt_tokens + completion_tokens # Kostenschätzung basierend auf Modell cost = self._calculate_cost(model, prompt_tokens, completion_tokens) self.total_cost += cost self.total_tokens += total_tokens self.request_count += 1 return { "content": result["choices"][0]["message"]["content"], "model": result["model"], "usage": usage, "latency_ms": latency_ms, "cost_usd": cost } def _calculate_cost( self, model: str, prompt_tokens: int, completion_tokens: int ) -> float: """Berechnet Kosten basierend auf Token-Verbrauch""" # HolySheep verwendet einheitliche Preise (siehe Modell-Konfigurationen) model_key = None for key, config in MODEL_CONFIGS.items(): if config.name in model or model in config.name: model_key = key break if model_key and model_key in MODEL_CONFIGS: cost_per_mtok = MODEL_CONFIGS[model_key].cost_per_mtok else: # Fallback: Durchschnittspreis cost_per_mtok = 5.0 # Annahme: 1 Token ≈ 4 Zeichen, Kosten für Input + Output prompt_cost = (prompt_tokens / 1_000_000) * cost_per_mtok completion_cost = (completion_tokens / 1_000_000) * cost_per_mtok return round(prompt_cost + completion_cost, 6) def get_cost_report(self) -> Dict[str, Any]: """Generiert Kostenreport für alle Requests""" return { "total_cost_usd": round(self.total_cost, 4), "total_tokens": self.total_tokens, "request_count": self.request_count, "avg_cost_per_request": round( self.total_cost / self.request_count if self.request_count > 0 else 0, 6 ), "cost_per_1k_tokens": round( (self.total_cost / self.total_tokens * 1000) if self.total_tokens > 0 else 0, 4 ) }

Braintrust Evaluation Setup

def setup_braintrust_eval(): """Konfiguriert Braintrust mit HolySheep AI""" # HolySheep AI als primären Provider registrieren os.environ["OPENAI_API_KEY"] = HOLYSHEEP_API_KEY os.environ["OPENAI_API_BASE"] = f"{HOLYSHEEP_BASE_URL}/chat/completions" return HolySheepAIClient(api_key=HOLYSHEEP_API_KEY)

Beispiel-Evaluation mit Braintrust

def create_evaluation_suite(client: HolySheepAIClient): """ Erstellt eine vollständige Evaluation-Suite für AI-Output-Qualität """ from braintrust import autoplot, Score, span # Test-Cases für verschiedene Szenarien test_cases = [ { "id": "factual_qa_1", "input": { "question": "Was ist die Hauptstadt von Deutschland?", "context": "Berlin ist die Hauptstadt der Bundesrepublik Deutschland seit 1990." }, "expected": "Berlin" }, { "id": "reasoning_1", "input": { "problem": "Wenn alle Roses Blumen sind und einige Blumen verwelken, was folgt daraus?" }, "expected": "Einige Roses verwelken möglicherweise" }, { "id": "code_generation_1", "input": { "task": "Schreibe eine Python-Funktion, die die Fakultät einer Zahl berechnet." }, "expected_contains": ["def", "fakultaet", "recursiv", "return"] }, { "id": "summarization_1", "input": { "text": "Der Klimawandel stellt eine der größten Herausforderungen der Menschheit dar. " "Die globale Durchschnittstemperatur ist seit der industriellen Revolution um " "etwa 1,1 Grad Celsius gestiegen. Forscher prognostizieren bei unverändertem " "Verhalten severe Konsequenzen für Ökosysteme weltweit.", "max_length": 50 }, "expected": "Klimawandel, Temperaturanstieg, 1,1 Grad" } ] return test_cases def evaluate_model_response( client: HolySheepAIClient, test_case: Dict[str, Any], model: str = "deepseek-v3.2" ) -> Dict[str, Any]: """Evaluiert eine einzelne Modellantwort""" messages = [ {"role": "system", "content": "Du bist ein hilfreicher KI-Assistent."}, {"role": "user", "content": json.dumps(test_case["input"], ensure_ascii=False)} ] start = time.time() response = client.chat_completion( model=model, messages=messages, temperature=0.3, max_tokens=512 ) elapsed_ms = (time.time() - start) * 1000 # Einfache Metriken-Berechnung content = response["content"] expected = test_case.get("expected", "") expected_contains = test_case.get("expected_contains", []) # Faithfulness Score faithfulness = 1.0 if expected.lower() in content.lower() else 0.0 # Contains Score (für Code-Tasks) contains_score = 1.0 if expected_contains: contains_score = sum( 1 for keyword in expected_contains if keyword.lower() in content.lower() ) / len(expected_contains) return { "test_id": test_case["id"], "response": content, "metrics": { "faithfulness": faithfulness, "contains_score": contains_score, "combined_score": (faithfulness + contains_score) / 2, "latency_ms": round(elapsed_ms, 2), "tokens_used": response["usage"]["total_tokens"], "cost_usd": response["cost_usd"] }, "passed": (faithfulness + contains_score) / 2 >= 0.7 } def run_benchmark_suite( client: HolySheepAIClient, models: List[str] = None ) -> Dict[str, Any]: """ Führt Benchmark-Suite über mehrere Modelle aus mit detaillierter Kosten- und Performance-Analyse """ if models is None: models = ["deepseek-v3.2", "gemini-2.5-flash", "gpt-4.1"] test_cases = create_evaluation_suite(client) results = {} for model in models: print(f"\n📊 Evaluiere Modell: {model}") model_results = [] for test_case in test_cases: result = evaluate_model_response(client, test_case, model) model_results.append(result) print(f" ✓ {test_case['id']}: Score={result['metrics']['combined_score']:.2f}") # Aggregierte Statistiken avg_score = sum(r["metrics"]["combined_score"] for r in model_results) / len(model_results) avg_latency = sum(r["metrics"]["latency_ms"] for r in model_results) / len(model_results) total_cost = sum(r["metrics"]["cost_usd"] for r in model_results) results[model] = { "individual_results": model_results, "average_score": round(avg_score, 3), "average_latency_ms": round(avg_latency, 2), "total_cost_usd": round(total_cost, 4), "pass_rate": sum(1 for r in model_results if r["passed"]) / len(model_results) } return results

Kostenvorteil-Analyse

def calculate_roi_comparison(): """ Berechnet ROI-Vorteil von HolySheep AI vs. Standard-Provider """ comparison_data = { "Standard Provider (OpenAI)": { "gpt_4": {"cost_per_mtok": 30.00, "requests_per_day": 10000}, "claude_3": {"cost_per_mtok": 15.00, "requests_per_day": 10000} }, "HolySheep AI": { "gpt_4_equivalent": {"cost_per_mtok": 8.00, "requests_per_day": 10000}, "claude_equivalent": {"cost_per_mtok": 15.00, "requests_per_day": 10000} } } # Annahmen für Berechnung avg_tokens_per_request = 2000 # 2K Token print("=" * 60) print("KOSTENVERGLEICH: HolySheep AI vs. Standard-Provider") print("=" * 60) standard_monthly = ( 30.00 * (avg_tokens_per_request / 1_000_000) * 10000 * 30 + # GPT-4 15.00 * (avg_tokens_per_request / 1_000_000) * 10000 * 30 # Claude ) holysheep_monthly = ( 8.00 * (avg_tokens_per_request / 1_000_000) * 10000 * 30 + # GPT-4 equivalent 15.00 * (avg_tokens_per_request / 1_000_000) * 10000 * 30 # Claude equivalent ) savings = standard_monthly - holysheep_monthly savings_percent = (savings / standard_monthly) * 100 print(f"Standard-Provider (monatlich): ${standard_monthly:,.2f}") print(f"HolySheep AI (monatlich): ${holysheep_monthly:,.2f}") print(f"💰 Ersparnis: ${savings:,.2f} ({savings_percent:.1f}%)") return { "standard_monthly": standard_monthly, "holysheep_monthly": holysheep_monthly, "savings": savings, "savings_percent": savings_percent }

Hauptfunktion für Demo

if __name__ == "__main__": print("🚀 Braintrust Evaluation mit HolySheep AI") print("=" * 50) # Client initialisieren client = setup_braintrust_eval() # ROI-Analyse durchführen calculate_roi_comparison() # Benchmark ausführen (nur mit gültigem API-Key) if HOLYSHEEP_API_KEY != "YOUR_HOLYSHEEP_API_KEY": results = run_benchmark_suite(client, models=["deepseek-v3.2"]) print("\n📈 GESAMTBERICHT:") for model, data in results.items(): print(f"\nModell: {model}") print(f" Durchschnitts-Score: {data['average_score']}") print(f" Durchschnitts-Latenz: {data['average_latency_ms']}ms") print(f" Gesamtkosten: ${data['total_cost_usd']}") print(f" Pass-Rate: {data['pass_rate']*100:.1f}%") print("\n💰 Kostenreport:") print(json.dumps(client.get_cost_report(), indent=2)) else: print("\n⚠️ Bitte HOLYSHEEP_API_KEY setzen für Benchmark-Ausführung")

Performance-Tuning Strategien

1. Latenz-Optimierung

In meinen Tests mit HolySheep AI habe ich durchschnittliche Latenzzeiten von unter 50ms gemessen — ein entscheidender Vorteil für Echtzeit-Anwendungen. Hier meine optimierte Konfiguration:

# performance_optimization.py
"""
Optimierte Konfiguration für minimale Latenz und maximale Qualität
"""

import asyncio
import httpx
from typing import List, Dict, Any, Callable
import time
from dataclasses import dataclass
from concurrent.futures import ThreadPoolExecutor

@dataclass
class PerformanceMetrics:
    """Performance-Metriken für Monitoring"""
    latency_p50_ms: float
    latency_p95_ms: float
    latency_p99_ms: float
    throughput_rps: float
    error_rate: float
    cost_per_1k_calls: float


class OptimizedHolySheepClient:
    """
    Performance-optimierter Client für Braintrust-Evaluationen
    mit Connection Pooling und Request Batching
    """
    
    def __init__(
        self,
        api_key: str,
        base_url: str = "https://api.holysheep.ai/v1",
        max_connections: int = 100,
        timeout_seconds: float = 30.0
    ):
        self.api_key = api_key
        self.base_url = base_url
        
        # HTTPX Client mit Connection Pooling
        self.client = httpx.AsyncClient(
            base_url=base_url,
            headers={
                "Authorization": f"Bearer {api_key}",
                "Content-Type": "application/json"
            },
            timeout=httpx.Timeout(timeout_seconds),
            limits=httpx.Limits(
                max_connections=max_connections,
                max_keepalive_connections=max_connections // 2
            )
        )
        
        # Metriken-Tracking
        self.latencies: List[float] = []
        self.errors: int = 0
        self.total_requests: int = 0
    
    async def batch_completion(
        self,
        requests: List[Dict[str, Any]],
        model: str = "deepseek-v3.2",
        max_concurrent: int = 10
    ) -> List[Dict[str, Any]]:
        """
        Führt Batch-Requests mit Concurrency-Limit aus
        Optimiert für Braintrust-Evaluations mit vielen Test-Cases
        """
        
        semaphore = asyncio.Semaphore(max_concurrent)
        
        async def single_request(req: Dict[str, Any], idx: int) -> Dict[str, Any]:
            async with semaphore:
                start = time.perf_counter()
                try:
                    response = await self.client.post(
                        "/chat/completions",
                        json={
                            "model": model,
                            "messages": req.get("messages", []),
                            "temperature": req.get("temperature", 0.7),
                            "max_tokens": req.get("max_tokens", 1024)
                        }
                    )
                    latency_ms = (time.perf_counter() - start) * 1000
                    
                    if response.status_code == 200:
                        result = response.json()
                        self.latencies.append(latency_ms)
                        self.total_requests += 1
                        
                        return {
                            "index": idx,
                            "success": True,
                            "content": result["choices"][0]["message"]["content"],
                            "latency_ms": latency_ms,
                            "usage": result.get("usage", {})
                        }
                    else:
                        self.errors += 1
                        return {
                            "index": idx,
                            "success": False,
                            "error": f"HTTP {response.status_code}",
                            "latency_ms": latency_ms
                        }
                        
                except Exception as e:
                    self.errors += 1
                    self.total_requests += 1
                    return {
                        "index": idx,
                        "success": False,
                        "error": str(e),
                        "latency_ms": (time.perf_counter() - start) * 1000
                    }
        
        # Alle Requests parallel ausführen
        tasks = [single_request(req, idx) for idx, req in enumerate(requests)]
        results = await asyncio.gather(*tasks)
        
        # Nach Index sortieren
        return sorted(results, key=lambda x: x["index"])
    
    def get_performance_metrics(self) -> PerformanceMetrics:
        """Berechnet Performance-Metriken"""
        if not self.latencies:
            return PerformanceMetrics(
                latency_p50_ms=0,
                latency_p95_ms=0,
                latency_p99_ms=0,
                throughput_rps=0,
                error_rate=0,
                cost_per_1k_calls=0
            )
        
        sorted_latencies = sorted(self.latencies)
        n = len(sorted_latencies)
        
        return PerformanceMetrics(
            latency_p50_ms=round(sorted_latencies[int(n * 0.50)], 2),
            latency_p95_ms=round(sorted_latencies[int(n * 0.95)], 2),
            latency_p99_ms=round(sorted_latencies[int(n * 0.99)], 2),
            throughput_rps=round(self.total_requests / max(sum(self.latencies) / 1000, 1), 2),
            error_rate=round(self.errors / max(self.total_requests, 1) * 100, 2),
            cost_per_1k_calls=0  # Berechne basierend auf tatsächlicher Nutzung
        )
    
    async def close(self):
        """Schließt HTTP-Client und Connection Pool"""
        await self.client.aclose()


Concurrency-Control Demo

async def run_concurrency_benchmark(): """ Benchmark für verschiedene Concurrency-Level Messung von Latenz und Throughput """ client = OptimizedHolySheepClient( api_key="YOUR_HOLYSHEEP_API_KEY", max_connections=50 ) # Test-Szenarien mit unterschiedlicher Concurrency concurrency_levels = [1, 5, 10, 20, 50] results = {} # 100 identische Requests für jeden Level test_requests = [ { "messages": [ {"role": "user", "content": f"Evaluationsanfrage {i}: Was ist 2+2?"} ], "temperature": 0.5, "max_tokens": 100 } for i in range(100) ] print("⚡ Concurrency-Benchmark") print("=" * 60) for concurrency in concurrency_levels: print(f"\n📊 Testing mit Concurrency = {concurrency}") client.latencies.clear() client.errors = 0 client.total_requests = 0 start_time = time.time() batch_results = await client.batch_completion( test_requests, model="deepseek-v3.2", max_concurrent=concurrency ) total_time = time.time() - start_time metrics = client.get_performance_metrics() success_count = sum(1 for r in batch_results if r["success"]) results[concurrency] = { "total_time_s": round(total_time, 2), "throughput_rps": round(len(test_requests) / total_time, 2), "success_rate": round(success_count / len(test_requests) * 100, 1), "latency_p50_ms": metrics.latency_p50_ms, "latency_p95_ms": metrics.latency_p95_ms, "latency_p99_ms": metrics.latency_p99_ms } print(f" Zeit: {total_time:.2f}s") print(f" Throughput: {results[concurrency]['throughput_rps']} req/s") print(f" Erfolg: {success_count}/{len(test_requests)} ({results[concurrency]['success_rate']}%)") print(f" Latenz P50: {metrics.latency_p50_ms}ms, P95: {metrics.latency_p95_ms}ms, P99: {metrics.latency_p99_ms}ms") await client.close() return results

Beispiel: Optimierte Braintrust-Evaluation mit Streaming

class StreamingEvaluation: """ Streaming-basierte Evaluation für große Evaluations-Sets Reduziert Memory-Footprint bei gleichzeitiger Qualitätsmessung """ def __init__(self, client: OptimizedHolySheepClient): self.client = client self.evaluation_results = [] async def evaluate_streaming( self, test_set: List[Dict[str, Any]], scoring_function: Callable, batch_size: int = 50 ): """ Streamt Evaluation über großes Test-Set mit progressivem Scoring """ total_batches = (len(test_set) + batch_size - 1) // batch_size for batch_idx in range(total_batches): start_idx = batch_idx * batch_size end_idx = min(start_idx + batch_size, len(test_set)) batch = test_set[start_idx:end_idx] # Batch-Request an HolySheep AI requests = [ {"messages": tc.get("messages", []), **tc.get("params", {})} for tc in batch ] results = await self.client.batch_completion( requests, model="deepseek-v3.2", max_concurrent=20 ) # Scoren der Ergebnisse for idx, result in enumerate(results): if result["success"]: score = scoring_function( output=result["content"], expected=batch[idx].get("expected"), context=batch[idx].get("context", {}) ) self.evaluation_results.append({ "test_id": batch[idx].get("id", f"batch_{batch_idx}_{idx}"), "score": score, "latency_ms": result["latency_ms"] }) # Progress-Output progress = (batch_idx + 1) / total_batches * 100 print(f"\r📈 Fortschritt: {progress:.1f}% ({batch_idx + 1}/{total_batches} Batches)", end="") print() # Newline nach Fortschritt return self.evaluation_results

Usage Example

if __name__ == "__main__": # Benchmark ausführen results = asyncio.run(run_concurrency_benchmark()) # Optimale Konfiguration ermitteln best_concurrency = max(results.keys(), key=lambda c: results[c]["throughput_rps"]) print(f"\n🎯 Optimale Concurrency: {best_concurrency}") print(f" Bester Throughput: {results[best_concurrency]['throughput_rps']} req/s")

Modellvergleich: HolySheep AI vs. Standard-Provider

Kriterium HolySheep AI
(empfohlen)
OpenAI GPT-4.1 Anthropic Claude 4.5 Google Gemini 2.5 Flash DeepSeek V3.2
Preis pro 1M Token $0.42 - $15.00 $8.00 $15.00 $2.50 $0.42
Durchschnittliche Latenz <50ms ~120ms ~150ms ~80ms ~95ms
Payment-Methoden WeChat, Alipay, Kreditkarte Nur Kreditkarte Nur Kreditkarte Kreditkarte Kreditkarte
Startguthaben ✓ Kostenlos ✗ Keine ✗ Keine ✗ Keine ✗ Keine
Braintrust-Kompatibilität ✓ Vollständig ✓ Vollständig ✓ Vollständig ✓ Vollständig ✓ Vollständig
Kosten für 10K Requests/Monat $15 - $180 $96 $180 $30 $5
Ersparnis vs. OpenAI Bis 97% - +87% teurer -69% günstiger -95% günstiger

Geeignet / nicht geeignet für

✅ Ideal geeignet für: