JSON_SCHEMA_FOR_GPT = """ { "title": "Fashion Campaign Ideas", "type": "array", "items": { "type": "object", "properties": { "model": { "type": "object", "properties": { "ethnicity": { "type": "string", "description": "The ethnicity of the model" }, "age": { "type": "integer", "description": "The age of the model" }, "gender": { "type": "string", "enum": ["male", "female", "non-binary"], "description": "The gender of the model" } }, "required": ["ethnicity", "age", "gender"] }, "location": { "type": "string", "description": "The location or setting for the shoot" }, "mood": { "type": "string", "description": "The overall mood or atmosphere for the shoot" }, "emotion": { "type": "string", "description": "The primary emotion to be conveyed in the shoot" }, "accessories": { "type": "array", "items": { "type": "string", "description": "Accessories included in the fashion shoot (e.g., sunglasses, handbags, jewelry)" } }, "pose": { "type": "string", "description": "The type of pose the model will be holding during the shoot" }, "target_market": { "type": "string", "description": "The target audience for the fashion piece" }, "reasoning": { "type": "string", "description": "Explanation of why this particular campaign is suggested for the product" }, "final_prompt": { "type": "string", "description": "The combined fashion shoot prompt, summarizing all details", "readonly": true } }, "required": ["model", "location", "mood", "emotion", "accessories", "pose", "target_market", "reasoning"], "definitions": { "generateFinalPrompt": { "description": "Generate the final prompt by combining all the inputs into a cohesive sentence.", "template": "{mood} photoshoot in {location} featuring a {model.ethnicity}, {model.age}-year-old {model.gender} model wearing accessories like {accessories}. The model holds a {pose} pose, conveying a sense of {emotion}, aimed at the {target_market} market. Reasoning: {reasoning}" } } } }""" UPDATED_MODEL_ONLY_SCHEMA = { "type": "object", "properties": { "model": { "type": "object", "properties": { "ethnicity": { "type": "string", "description": "The ethnicity of the model" }, "age": { "type": "integer", "description": "The age of the model" }, "gender": { "type": "string", "enum": ["male", "female", "non-binary"], "description": "The gender of the model" }, "model_prompt": { "type": "string", "description": "The prompt used to generate the model details" }, "reasoning": { "type": "string", "description": "The reasoning behind the model selection" }, "background": { "type": "string", "description": "The background information about the model" } }, "required": ["ethnicity", "age", "gender", "model_prompt", "reasoning", "background"], "additionalProperties": False } }, "required": ["model"], "additionalProperties": False } JSON_SCHEMA_FOR_LOC_ONLY = { "type": "object", "properties": { "location": { "type": "string", "description": "The location or setting for the shoot" }, "location_prompt": { "type": "string", "description": "The prompt or instruction related to the location" }, "reasoning": { "type": "string", "description": "The reasoning or rationale behind selecting this location" } }, "required": ["location", "location_prompt", "reasoning"] }