# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: 'JSON mode and structured output with Mistral models' providers: - id: mistral:mistral-large-latest config: response_format: type: 'json_object' temperature: 0.3 prompts: - "Extract the following information from the text and return as JSON with keys 'name', 'age', 'occupation', and 'location': {{text}}" tests: - vars: text: 'John Smith is a 35-year-old software engineer living in San Francisco.' assert: - type: is-json - type: javascript value: | const parsed = JSON.parse(output); return parsed.name === "John Smith" && parsed.age === 35 && parsed.occupation === "software engineer" && parsed.location === "San Francisco"; - vars: text: 'Maria Garcia, age 28, works as a data scientist in New York City.' assert: - type: is-json - type: javascript value: | const parsed = JSON.parse(output); return parsed.name === "Maria Garcia" && parsed.age === 28 && parsed.occupation === "data scientist" && parsed.location === "New York City"; - vars: text: 'Dr. Ahmed Hassan is a 42-year-old cardiologist practicing in London.' assert: - type: is-json - type: javascript value: | const parsed = JSON.parse(output); return parsed.name && parsed.age && parsed.occupation && parsed.location;