# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: Filter specific tests to specific prompts prompts: # Factual prompt - for questions requiring accurate answers - id: factual label: Factual Assistant raw: | You are a factual assistant. Answer the following question accurately and concisely. Question: {{question}} # Creative prompt - for questions requiring imaginative responses - id: creative label: Creative Writer raw: | You are a creative writer. Answer the following in an imaginative and engaging way. Question: {{question}} # Technical prompt - for questions requiring detailed explanations - id: technical label: Technical Expert raw: | You are a technical expert. Provide a detailed, technical answer. Question: {{question}} providers: # Using echo provider for demonstration - replace with your preferred LLM - echo tests: # === Factual tests - only run with Factual Assistant === - description: Math question - factual only vars: question: What is 15 multiplied by 7? prompts: - Factual Assistant assert: - type: contains value: factual assistant - description: Geography question - factual only vars: question: What is the capital of France? prompts: - factual # Can also reference by ID assert: - type: contains value: France # === Creative tests - only run with Creative Writer === - description: Story prompt - creative only vars: question: Tell me about a magical forest prompts: - Creative Writer assert: - type: contains value: magical forest - description: Poetry prompt - creative only vars: question: Write a haiku about the moon prompts: - creative assert: - type: contains value: moon # === Technical tests - only run with Technical Expert === - description: Programming question - technical only vars: question: Explain what a binary search tree is prompts: - Technical Expert assert: - type: contains value: binary search tree # === Tests that run with multiple prompts === - description: General question - factual and technical vars: question: What is machine learning? prompts: - Factual Assistant - Technical Expert assert: - type: contains value: machine learning # === Test with no prompts filter - runs with ALL prompts === - description: Universal test - all prompts vars: question: Hello, how are you? # No prompts field = runs with all 3 prompts assert: - type: contains value: Hello