# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: 'Langfuse prompt management with labels - demonstrates version-controlled prompt deployment' # Example: Using Langfuse prompts with labels # # This example demonstrates how to reference Langfuse prompts using labels # instead of version numbers. This allows you to update prompts in Langfuse # without changing your promptfoo configuration. # # Prerequisites: # 1. Set up Langfuse environment variables: # - LANGFUSE_PUBLIC_KEY # - LANGFUSE_SECRET_KEY # - LANGFUSE_HOST # 2. Create prompts in Langfuse with the names used below # 3. Assign labels to your prompt versions (e.g., "production", "staging") prompts: # Reference prompts by label using @ syntax (explicit) - langfuse://customer-support@production:chat - langfuse://customer-support@staging:chat # Reference prompts by label using : syntax (auto-detected) - langfuse://customer-support:production:chat # String detected as label - langfuse://customer-support:staging:chat # String detected as label # You can still use version numbers (numeric values) - langfuse://customer-support:1:chat # Numeric detected as version # Text prompts with labels (both syntaxes work) - langfuse://email-writer@production # @ syntax - langfuse://email-writer:latest:text # : syntax (latest treated as label) - langfuse://email-writer:production # : syntax (auto-detected as label) providers: - openai:gpt-4o - openai:gpt-4.1-mini tests: - vars: customer_name: 'Alice Johnson' issue: "I can't log into my account" company: 'Acme Corp' tone: 'friendly and professional' - vars: customer_name: 'Bob Smith' issue: "My order hasn't arrived yet" company: 'Acme Corp' tone: 'empathetic and helpful' # Default assertions that apply to all tests defaultTest: assert: - type: contains value: '{{customer_name}}' - type: not-contains value: 'error' - type: llm-rubric value: "The response should be {{tone}} and address the customer's issue: {{issue}}"