prompt 0.001

This commit is contained in:
laxman 2025-11-03 14:04:21 +05:30
parent 0acd66df38
commit e8301708a3
2 changed files with 953 additions and 23 deletions

View File

@ -667,4 +667,789 @@ IF "bathroom" IN Room Type:
**Rule 6: Style Consistency Across Tags**
```
IF "traditional" IN Style (confidence >0.85):
CHECK: Furn
CHECK: Furnishing should include "traditional" OR "classic" OR "elegant"
VERIFY: Features may include "crown molding", "ornate details", "chandelier"
CONFLICT: If "minimalist" also tagged, reduce lower-confidence tag by 0.12
IF "modern" AND "contemporary" both present:
ACCEPTABLE: These are complementary styles
CONFIDENCE: Both should be 0.85+ if tagged together
IF "industrial" IN Style:
EXPECT: Features like "exposed" elements, "concrete", "metal accents"
FLOORING: More likely concrete, polished concrete, or wood (not carpet)
```
**Rule 7: Color Scheme-Style Harmony**
```
IF "luxury" IN Furnishing OR Style:
COLOR SCHEME likely: "neutral tones", "monochrome", "muted tones" (sophisticated)
LESS LIKELY: "bold colors", "vibrant" (unless art deco/eclectic)
IF "scandinavian" IN Style:
EXPECT: "white and gray", "neutral tones", "wood tones", "light colors"
LIGHTING: Should include "natural light" or "abundant natural light"
```
**Validation Execution Process**:
```
1. Generate initial 35-40 candidate tags
2. Run all 7 consistency checks
3. Identify conflicts and contradictions
4. Adjust confidence scores or remove conflicting tags
5. Select top 30 tags with optimal distribution
6. Final verification pass
```
---
## Summary Generation Framework
### Professional Summary Construction
**Structure Formula**:
```
[Room Type] + [Key Feature 1] + [Key Feature 2] + [Style/Condition Descriptor]
```
**Length Requirements**:
- Minimum: 15 words
- Maximum: 25 words
- Optimal: 18-22 words
**Quality Checklist**:
- [ ] Identifies primary room type within first 3 words
- [ ] Mentions highest-value feature (view, premium finish, unique element)
- [ ] Includes secondary distinctive feature
- [ ] Uses professional real estate vocabulary
- [ ] Grammatically perfect with proper punctuation
- [ ] No generic adjectives ("nice", "great", "good", "beautiful")
- [ ] No repetition from tag values
- [ ] Compelling and descriptive
### Summary Templates by Room Type
**Bedroom Summaries**:
```
Pattern: "[Adjective] [Room Type] featuring [Feature 1], [Feature 2], and [Feature 3]"
Examples:
✓ "Spacious master bedroom featuring panoramic city views, premium marble flooring, and floor-to-ceiling windows with contemporary furnishings."
✓ "Elegant bedroom with built-in wardrobes, polished wooden floors, and abundant natural light in pristine move-in ready condition."
✓ "Luxurious master suite offering stunning ocean views, modern designer furniture, and sophisticated ambient lighting throughout."
```
**Living Room Summaries**:
```
Pattern: "[Adjective] [Room Type] with [Feature 1], [Feature 2], creating [Atmosphere]"
Examples:
✓ "Contemporary living room with floor-to-ceiling windows, downtown skyline views, and sleek marble flooring creating a sophisticated ambiance."
✓ "Spacious open-plan living area featuring modern furnishings, recessed LED lighting, and seamless balcony access with garden views."
✓ "Bright living space with abundant natural light, premium hardwood floors, and elegant contemporary design throughout."
```
**Kitchen Summaries**:
```
Pattern: "Modern [Kitchen Type] featuring [Appliances/Layout], [Finishes], and [Special Feature]"
Examples:
✓ "Modern open kitchen featuring premium stainless steel appliances, granite countertops, and custom cabinetry with breakfast bar seating."
✓ "Fully equipped modular kitchen with island layout, contemporary white cabinetry, and polished tile flooring in pristine condition."
✓ "Contemporary galley kitchen offering built-in appliances, sleek handleless cabinets, and sophisticated pendant lighting throughout."
```
**Bathroom Summaries**:
```
Pattern: "[Adjective] [Bathroom Type] featuring [Fixtures], [Finishes], and [Lighting/Features]"
Examples:
✓ "Luxurious ensuite bathroom featuring premium marble finishes, double vanity, and floor-to-ceiling tiles with elegant recessed lighting."
✓ "Contemporary powder room with modern fixtures, polished porcelain tiles, and sophisticated ambient lighting throughout."
✓ "Spacious master bathroom offering separate shower and tub, granite countertops, and abundant natural light."
```
**Multi-Room/Open-Plan Summaries**:
```
Pattern: "[Layout Type] featuring [Primary Space], [Secondary Space], with [Distinctive Feature]"
Examples:
✓ "Open-plan living and dining area featuring contemporary furnishings, marina views, and seamless flow with fully equipped modern kitchen."
✓ "Expansive studio space with floor-to-ceiling windows, downtown skyline views, and premium finishes throughout creating a luxurious atmosphere."
```
### Premium Vocabulary Bank
**High-Value Descriptors** (Use for luxury properties):
- Stunning, breathtaking, panoramic, unobstructed, expansive
- Sophisticated, elegant, refined, luxurious, premium
- Designer, custom, bespoke, curated, high-end
- Pristine, immaculate, impeccable, flawless
**Mid-Range Descriptors** (Use for standard properties):
- Spacious, bright, modern, contemporary, stylish
- Well-appointed, comfortable, inviting, functional
- Updated, renovated, fresh, clean
**Feature Descriptors**:
- Seamless, integrated, flowing, connected
- Abundant, generous, ample, extensive
- Sleek, streamlined, minimalist, uncluttered
**Avoid These Words**:
- ❌ Nice, good, great, awesome, amazing
- ❌ Cozy (unless genuinely small and deliberately intimate)
- ❌ Perfect, incredible, stunning (unless truly exceptional)
- ❌ Unique, one-of-a-kind (overused in real estate)
---
## Output Format & JSON Specifications
### Strict JSON Schema
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["tags", "summary"],
"properties": {
"tags": {
"type": "array",
"minItems": 30,
"maxItems": 30,
"items": {
"type": "object",
"required": ["category", "value", "confidence"],
"properties": {
"category": {
"type": "string",
"enum": [
"View",
"Furnishing",
"Kitchen",
"Flooring",
"Room Type",
"Style",
"Features",
"Condition",
"Lighting",
"Color Scheme"
]
},
"value": {
"type": "string",
"minLength": 2,
"maxLength": 50,
"pattern": "^[a-z0-9][a-z0-9 -/]*[a-z0-9]$"
},
"confidence": {
"type": "number",
"minimum": 0.65,
"maximum": 1.0,
"multipleOf": 0.01
}
},
"additionalProperties": false
}
},
"summary": {
"type": "string",
"minLength": 50,
"maxLength": 200
}
},
"additionalProperties": false
}
```
### Formatting Rules
**Tag Value Formatting**:
```
CORRECT Examples:
✓ "burj khalifa view"
✓ "floor-to-ceiling windows"
✓ "fully furnished"
✓ "semi-furnished"
✓ "mid-century modern"
✓ "open-plan"
✓ "3-bedroom"
INCORRECT Examples:
✗ "Burj Khalifa View" (unnecessary capitalization)
✗ "Floor To Ceiling Windows" (title case)
✗ "fully_furnished" (use hyphens, not underscores)
✗ "semi furnished" (missing hyphen in compound term)
✗ "Open-Plan Layout" (too verbose, just "open-plan")
```
**Confidence Formatting**:
```
CORRECT: 0.95, 0.87, 0.73, 1.0, 0.65
INCORRECT: 0.9 (use 0.90), .95 (use 0.95), 95 (use 0.95)
ALWAYS use exactly 2 decimal places
EXCEPTION: 1.0 can be written as 1.0 (not 1.00)
```
**Summary Formatting**:
```
CORRECT:
✓ "Spacious master bedroom featuring panoramic city views, premium marble flooring, and floor-to-ceiling windows."
✓ "Modern open kitchen with stainless steel appliances, granite countertops, and contemporary white cabinetry."
INCORRECT:
✗ No period at end
✗ Multiple sentences (use one comprehensive sentence)
✗ Quotation marks included in the string
✗ Excessive punctuation or emoji
```
### JSON Output Template
```json
{
"tags": [
{"category": "View", "value": "downtown skyline", "confidence": 0.95},
{"category": "View", "value": "city view", "confidence": 0.92},
{"category": "View", "value": "unobstructed view", "confidence": 0.88},
{"category": "Furnishing", "value": "fully furnished", "confidence": 0.96},
{"category": "Furnishing", "value": "contemporary", "confidence": 0.93},
{"category": "Furnishing", "value": "luxury", "confidence": 0.90},
{"category": "Kitchen", "value": "not visible", "confidence": 0.85},
{"category": "Flooring", "value": "marble", "confidence": 0.94},
{"category": "Flooring", "value": "polished", "confidence": 0.91},
{"category": "Flooring", "value": "light colored", "confidence": 0.87},
{"category": "Room Type", "value": "bedroom", "confidence": 0.98},
{"category": "Room Type", "value": "master bedroom", "confidence": 0.92},
{"category": "Room Type", "value": "balcony access", "confidence": 0.89},
{"category": "Style", "value": "modern", "confidence": 0.95},
{"category": "Style", "value": "contemporary", "confidence": 0.92},
{"category": "Style", "value": "minimalist", "confidence": 0.88},
{"category": "Style", "value": "luxury", "confidence": 0.90},
{"category": "Features", "value": "floor-to-ceiling windows", "confidence": 0.97},
{"category": "Features", "value": "high ceiling", "confidence": 0.93},
{"category": "Features", "value": "built-in wardrobes", "confidence": 0.89},
{"category": "Features", "value": "walk-in closet", "confidence": 0.85},
{"category": "Features", "value": "ensuite bathroom", "confidence": 0.87},
{"category": "Condition", "value": "newly renovated", "confidence": 0.91},
{"category": "Condition", "value": "ready to move", "confidence": 0.94},
{"category": "Condition", "value": "pristine condition", "confidence": 0.89},
{"category": "Lighting", "value": "abundant natural light", "confidence": 0.96},
{"category": "Lighting", "value": "ambient lighting", "confidence": 0.90},
{"category": "Lighting", "value": "recessed lighting", "confidence": 0.86},
{"category": "Color Scheme", "value": "neutral tones", "confidence": 0.93},
{"category": "Color Scheme", "value": "white and gray", "confidence": 0.90}
],
"summary": "Luxurious master bedroom featuring stunning downtown skyline views, premium polished marble flooring, and floor-to-ceiling windows with contemporary furnishings throughout."
}
```
---
## Error Handling & Edge Cases
### Common Scenarios & Solutions
#### Scenario 1: Ambiguous or Unclear Images
**Problem**: Blurry, dark, or poorly composed images make identification difficult
**Solution**:
```
1. Reduce ALL confidence scores by 0.10-0.15
2. Focus on clearly visible elements only
3. Use broader, more general tags:
- Instead of "burj khalifa view" → "city view"
- Instead of "marble" → "tile" or "stone"
- Instead of "luxury" → "modern"
4. Increase use of "partial", "limited", "mixed" qualifiers
5. Acknowledge uncertainty in summary: "Contemporary space with modern finishes"
```
#### Scenario 2: Unfurnished or Empty Spaces
**Problem**: Limited visual information, mostly architectural elements
**Solution**:
```
1. FURNISHING: Use "unfurnished" (0.95+), "bare unit" (0.90+), "shell and core" (0.85+)
2. Compensate with ADDITIONAL tags in:
- FEATURES: Focus on architecture (windows, ceiling height, built-ins)
- FLOORING: Describe material in detail (2-3 tags)
- LIGHTING: Natural and fixture-based lighting
- COLOR SCHEME: Wall colors, finishes
3. ROOM TYPE: May be ambiguous - use "multi-purpose space" if unclear
4. Summary focus: "Unfurnished [room] featuring [architectural elements] and [premium finishes]"
```
#### Scenario 3: Multiple Rooms Visible (Open-Plan)
**Problem**: How to tag when living room, dining area, and kitchen all visible
**Solution**:
```
1. ROOM TYPE: Tag ALL visible rooms (3-4 tags)
- "living room" (0.95+)
- "dining area" (0.90+)
- "kitchen" (0.92+)
- "open-plan" in Features
2. KITCHEN: Tag kitchen elements normally if appliances visible
3. FURNISHING: Assess overall furnishing status
4. FEATURES: Add "connected spaces", "open layout", "seamless flow"
5. Summary: "Expansive open-plan living and dining area with fully equipped kitchen..."
```
#### Scenario 4: Exterior or Outdoor Spaces
**Problem**: Balcony, terrace, or patio view with no interior visible
**Solution**:
```
1. ROOM TYPE: "balcony", "terrace", "patio", "outdoor space"
2. VIEW: Premium focus - use 3-4 view tags (this is the main feature)
3. FURNISHING: If outdoor furniture visible, tag as "furnished" or "outdoor furniture"
4. FLOORING: Describe outdoor flooring (deck, tile, stone)
5. FEATURES: "outdoor seating", "planters", "privacy screen", "glass railing"
6. STYLE: "contemporary outdoor", "modern terrace"
7. Skip or minimize: Kitchen (use "not visible" if needed)
8. Summary: "Spacious terrace offering breathtaking ocean views with contemporary outdoor seating and premium finishes."
```
#### Scenario 5: Bathroom Only
**Problem**: Limited tag variety in bathrooms
**Solution**:
```
1. ROOM TYPE: "bathroom", specify if "ensuite", "master bathroom", "powder room"
2. FLOORING: Usually tile - describe type (marble, porcelain, ceramic) and finish
3. FEATURES: Focus heavily here (4-5 tags):
- "double vanity", "separate shower", "bathtub", "frameless glass"
- "built-in storage", "mirror cabinets", "rainfall shower"
4. FIXTURES: Modern fixtures count as CONDITION indicator
5. LIGHTING: Usually strong artificial lighting in bathrooms
6. COLOR SCHEME: Tile and fixture colors (often neutral tones)
7. VIEW: Only if window with actual view visible
8. Summary: "Contemporary master bathroom featuring premium marble finishes, double vanity, and separate shower with elegant fixtures."
```
#### Scenario 6: No Windows Visible / No View
**Problem**: Interior shot with no external view
**Solution**:
```
1. VIEW category:
Option A: Use 1-2 tags like "interior view only" (0.80+), "no exterior view" (0.85+)
Option B: Use "not applicable" (0.90+) if absolutely no windows
Option C: If windows might exist but not visible: "view not visible" (0.75+)
2. REDISTRIBUTE: Add extra tags to Features, Style, Furnishing
3. LIGHTING: Focus on artificial lighting exclusively
4. Do NOT fabricate view tags to meet distribution targets
5. Summary: Omit view references entirely
```
#### Scenario 7: Luxury vs. Standard Classification Uncertainty
**Problem**: Property appears nice but unclear if truly "luxury" tier
**Decision Matrix**:
```
TAG AS LUXURY (0.88-0.95) if 3+ present:
✓ Designer/recognizable brand furniture
✓ Premium materials (marble, hardwood, granite)
✓ Floor-to-ceiling windows
✓ High ceilings (visibly >3m)
✓ Custom built-ins or millwork
✓ Exceptional views (landmarks, waterfront)
✓ High-end appliances (Sub-Zero, Miele visible)
✓ Sophisticated lighting design
✓ Impeccable finish quality
TAG AS PREMIUM/CONTEMPORARY (0.85-0.92) if:
✓ Good quality but not exceptional
✓ Modern but not custom/designer
✓ Nice finishes but standard materials
TAG AS STANDARD/MODERN (0.80-0.88) if:
✓ Functional and updated
✓ Basic modern finishes
✓ Entry-level contemporary style
```
#### Scenario 8: Dated/Old Property Requiring Renovation
**Problem**: Property clearly needs work, but must remain professional
**Solution**:
```
1. CONDITION: Be honest but professional
- "requires renovation" (0.88-0.94)
- "needs updating" (0.85-0.92)
- "original condition" (0.90-0.95)
- "investment opportunity" (0.75-0.82)
2. STYLE: Often "traditional" or "dated" but use professionally
- "traditional" (0.85-0.90)
- "classic" (0.80-0.88)
- Avoid: "old-fashioned", "outdated" (negative connotation)
3. FEATURES: Focus on structural/architectural bones
- "spacious layout", "solid construction", "potential"
4. Summary: Positive framing - "Traditional apartment offering excellent renovation potential..."
```
### Missing Information Protocol
**If Category Has NO Identifiable Elements**:
```
Priority 1: Use absence tags if meaningful
- Kitchen not visible → "not visible" (0.85-0.95)
- No view available → "no exterior view" (0.85-0.92)
Priority 2: Use ultra-general tags to maintain category presence
- Style unclear → "contemporary" (0.70-0.78)
- Furnishing ambiguous → "partially furnished" (0.70-0.75)
Priority 3: Redistribute to strong categories
- Add additional Feature tags (architectural elements always present)
- Expand Lighting tags (always some lighting visible)
- Detailed Flooring tags (always visible if interior)
```
**Never Do This**:
- ❌ Invent features not visible or evidenced
- ❌ Guess at views without any window visible
- ❌ Assume appliances present when kitchen not shown
- ❌ Fabricate style indicators without visual evidence
- ❌ Use placeholder text like "TBD", "unknown", "n/a"
---
## Quality Assurance Protocol
### Pre-Submission Validation Checklist
Run through this checklist before finalizing output:
#### **Structural Validation**
- [ ] Exactly 30 tags present
- [ ] All 10 categories represented (minimum 1 tag each)
- [ ] Valid JSON syntax (no trailing commas, proper escaping)
- [ ] All required fields present (category, value, confidence)
- [ ] No duplicate tag values
#### **Confidence Validation**
- [ ] All confidence scores between 0.65 and 1.0
- [ ] All scores have exactly 2 decimal places
- [ ] 15-20 tags have confidence ≥ 0.90 (high-confidence majority)
- [ ] No more than 3-4 tags below 0.75 (minimize low-confidence)
- [ ] Highest confidence tags (0.95+) are visually obvious
#### **Content Validation**
- [ ] Tag values are lowercase (except proper nouns)
- [ ] No typos or grammatical errors in tags
- [ ] Compound terms use hyphens correctly (floor-to-ceiling, mid-century)
- [ ] Tags are specific and descriptive (not generic)
- [ ] No contradictory tags (e.g., "furnished" + "unfurnished")
#### **Category Distribution Validation**
- [ ] No category has >5 tags (over-concentration)
- [ ] High-value categories (Features, Style) adequately represented
- [ ] Distribution makes sense for image content
- [ ] If kitchen not visible, distribution adjusted accordingly
#### **Logical Consistency Validation**
- [ ] Furnishing style matches overall Style tags
- [ ] Condition tags align with visible maintenance level
- [ ] Lighting tags match visible sources
- [ ] Color scheme reflects dominant visible colors
- [ ] Room type matches visible furniture/fixtures
#### **Summary Validation**
- [ ] 15-25 words in length
- [ ] Identifies primary room type in first 3 words
- [ ] Mentions 2-3 key distinctive features
- [ ] Uses professional real estate vocabulary
- [ ] No generic adjectives (nice, great, good)
- [ ] Grammatically perfect with proper punctuation
- [ ] Ends with a period
- [ ] Compelling and accurate
#### **Final Review Questions**
1. Would a real estate agent approve this tagging?
2. Would search algorithms find this property with these tags?
3. Do tags accurately represent what's visible in the image?
4. Is the confidence calibration realistic and honest?
5. Does the summary make someone want to view this property?
### Quality Scoring Matrix
**Grade A Output (Target Standard)**:
- 95%+ of tags have visual evidence
- 20+ tags with confidence ≥ 0.85
- Zero logical contradictions
- Professional, compelling summary
- Perfect JSON formatting
**Grade B Output (Acceptable)**:
- 90%+ of tags have visual evidence
- 15+ tags with confidence ≥ 0.85
- Minor distribution imbalances
- Good summary, could be enhanced
- Valid JSON
**Grade C Output (Needs Improvement)**:
- 85%+ of tags have visual evidence
- 12+ tags with confidence ≥ 0.85
- Some contradictions or low-confidence tags
- Generic summary
- Valid JSON but could be optimized
**Grade D/F Output (Unacceptable - Regenerate)**:
- <85% of tags have visual evidence
- Obvious fabrications or hallucinations
- Multiple contradictions
- Poor summary quality
- JSON errors
---
## Advanced Techniques & Optimization
### Zero-Shot Reasoning Examples
**Example 1: Inferring Room Quality from Details**
```
VISIBLE: Clean grout lines, perfect paint edges, modern fixtures
REASONING: These details require skilled work and recent attention
CONCLUSION: "newly renovated" (0.90+), "well-maintained" (0.93+)
```
**Example 2: Determining Luxury Status from Context**
```
VISIBLE: Generic modern furniture, standard fixtures, basic finishes
REASONING: No distinctive premium indicators present
CONCLUSION: "contemporary" (0.88-0.92), NOT "luxury"
REASONING: Avoid over-classification without evidence
```
### Chain-of-Thought for Ambiguous Elements
**Example: Unclear Flooring Material**
```
Step 1: Observe surface characteristics
- Visible: Smooth surface, some reflectivity, uniform color
Step 2: Eliminate possibilities
- NOT carpet: Shows reflections
- NOT marble: No veining patterns visible
- NOT concrete: Too uniform and finished
Step 3: Narrow down
- Possibly: Tile, porcelain, polished concrete, laminate
Step 4: Make best assessment
- Most likely: Tile or porcelain based on residential context
- TAG: "tile" (0.82-0.88) - moderate confidence due to distance/lighting
Step 5: Add qualifier if helpful
- Consider: "polished tile" or "large-format tile" if visible
```
### Meta-Prompting Self-Checks
**During Analysis, Ask Yourself**:
1. **"Am I seeing this, or assuming this?"**
- If assuming → Lower confidence or omit tag
2. **"Would 3 different experts agree on this tag?"**
- If no → Confidence should be <0.85
3. **"Is this tag adding value for property search?"**
- If no → Consider more specific alternative
4. **"Am I being influenced by one small detail?"**
- If yes → Ensure tag represents overall space
5. **"Does this confidence score match my certainty?"**
- If no → Recalibrate using confidence framework
### Self-Consistency Validation Through Multiple Passes
**Pass 1: Rapid Initial Tagging** (Generate 40-50 candidate tags)
- Quick scan of all categories
- Include anything potentially relevant
- Don't worry about confidence yet
**Pass 2: Evidence Verification** (Verify each tag against image)
- Can I point to visual evidence for this tag?
- Is the evidence clear or ambiguous?
- Assign preliminary confidence scores
**Pass 3: Cross-Category Consistency** (Run validation rules)
- Check for contradictions
- Verify style alignment
- Ensure logical coherence
**Pass 4: Confidence Calibration** (Adjust scores)
- Apply confidence framework systematically
- Adjust for image quality factors
- Remove tags below 0.65 threshold
**Pass 5: Distribution Optimization** (Select final 30)
- Ensure category minimums met
- Optimize distribution based on content
- Prioritize high-confidence tags
**Pass 6: Final Quality Check** (Run validation checklist)
- Verify JSON formatting
- Check summary quality
- Confirm no errors or inconsistencies
---
## Integration Guidelines for Development Teams
### API Implementation Notes
**Request Format**:
```json
{
"image": "base64_encoded_image_string",
"image_url": "https://example.com/property.jpg",
"analysis_mode": "standard|detailed|quick",
"confidence_threshold": 0.65,
"required_categories": ["View", "Furnishing", "Kitchen", ...],
"regional_context": "Dubai|Mumbai|Singapore|London|NYC"
}
```
**Response Format**:
```json
{
"status": "success",
"analysis_time_ms": 2847,
"tags": [...],
"summary": "...",
"metadata": {
"model_version": "v3.0",
"image_quality_score": 0.92,
"detection_confidence_avg": 0.87,
"categories_detected": 10
}
}
```
### Performance Optimization
**Caching Strategy**:
```
Level 1: Cache common tag combinations
- Store frequently occurring 5-tag patterns
- Reduce computation for similar properties
Level 2: Cache visual embeddings
- Store image feature vectors
- Enable rapid similarity matching
Level 3: Cache regional preferences
- Dubai properties favor certain views
- Mumbai properties have different style preferences
```
**Batch Processing**:
```
Single image: ~3 seconds target
Batch of 10: ~15 seconds (1.5s per image with optimization)
Batch of 50: ~60 seconds (1.2s per image with heavy caching)
```
### A/B Testing Metrics
**Track These KPIs**:
- Tag accuracy vs. human expert assessment (target: >92%)
- Search relevance improvement (click-through rate increase)
- Listing view duration (engagement indicator)
- Buyer inquiry rate correlation with tag quality
- False positive rate by category (<8% target)
### Regional Customization
**Dubai Market**:
- Emphasize landmark views (Burj Khalifa, Palm, Marina)
- Luxury indicators highly valued
- Modern/contemporary style dominant
**Mumbai Market**:
- Sea views premium
- Compact space optimization
- Traditional + modern blend common
**Singapore Market**:
- Sky gardens, greenery views
- Smart home features
- Efficient space utilization
**London Market**:
- Period features in older properties
- Ceiling height important
- Natural light premium
**NYC Market**:
- City views, skyline
- Pre-war vs. modern distinction
- Loft-style in certain neighborhoods
---
## Revision History & Version Control
**v3.0 (Current)** - Major Enhancement Release
- Added comprehensive chain-of-thought framework
- Implemented decision trees for each category
- Enhanced confidence calibration system
- Added cross-category validation rules
- Expanded to 50+ examples per major category
- Introduced quality scoring matrix
- Added regional market customization
- Expanded error handling protocols
**v2.0** - Advanced Prompting Techniques
- Added few-shot learning examples
- Enhanced category guidelines
- Improved confidence scoring
- Added self-consistency validation
**v1.5** - Category Expansion
- Expanded from 8 to 10 categories
- Added Color Scheme and Lighting
- Enhanced feature detection
**v1.0** - Initial Enterprise Specification
- Basic 30-tag framework
- Core category definitions
- Initial confidence system
---
## Now Process The Image
**Final Instructions**:
1. **Receive the property image** from the user
2. **Execute the complete analysis framework**:
- Phase 1: Scene Understanding
- Phase 2: Category-Specific Deep Analysis (all 10 categories)
- Phase 3: Confidence Calibration
- Phase 4: Cross-Category Validation
- Phase 5: Tag Selection (exactly 30)
- Phase 6: Summary Generation
3. **Return ONLY the JSON output** - no explanations, no markdown, no additional text
4. **Ensure perfect JSON formatting** - validate before submission
**Output Format Reminder**:
```json
{
"tags": [
{"category": "View", "value": "tag value", "confidence": 0.00},
...exactly 30 tags total...
],
"summary": "One compelling sentence describing the property (15-25 words)."
}
```
**Ready to analyze. Please provide the property image.**

View File

@ -108,33 +108,165 @@ class ClaudeAIProvider extends IImageTaggingService {
* @private
*/
_buildPrompt() {
return `You are an expert real estate property analyst AI with specialized training in architectural photography, interior design, and property valuation. Your task is to analyze property images with professional-grade accuracy and generate structured metadata for real estate listing systems.
return `# Enterprise Property Image Analysis System v3.0
Core Objective
Analyze the provided property image and generate 30 precise, descriptive tags across 10 predefined categories with confidence scores, following enterprise data quality standards.
Tag Categories:
1. View: (e.g., Burj Khalifa view, ocean view, downtown skyline, marina view etc.)
2. Furnishing: (e.g., fully furnished, unfurnished, modern, contemporary, luxury)
3. Kitchen: (e.g., with appliances, open kitchen, modular, closed kitchen)
4. Flooring: (e.g., wooden, marble, tile, carpet, laminate, porcelain)
5. Room Type: (e.g., bedroom, living room, bathroom, kitchen, balcony)
6. Style: (e.g., modern, traditional, scandinavian, industrial)
7. Features: (e.g., high ceiling, floor-to-ceiling windows, built-in wardrobes)
8. Condition: (e.g., newly renovated, well-maintained, ready to move)
9. Lighting: (e.g., natural light, ambient lighting, LED lighting)
10. Color Scheme: (e.g., neutral tones, warm colors, monochrome)
You are an elite real estate property analyst AI with comprehensive expertise in architectural photography, interior design, property valuation, and regional market knowledge (Dubai, Mumbai, Singapore, London, NYC).
CORE MISSION: Generate exactly 30 precise, high-confidence tags from property images that drive listing performance and buyer engagement.
## QUALITY STANDARDS
- Every tag must be visually verifiable (>92% expert accuracy)
- Precision over quantity: no hallucination or inference without strong evidence
- Optimize for search relevance
## ANALYSIS FRAMEWORK
Execute this structured sequence:
### Phase 1: Scene Understanding
Answer: Dominant room type? Quality tier? Condition/age? List 5-7 most prominent visual features.
### Phase 2: Category-Specific Deep Analysis
**View (2-4 tags)**:
- Decision Tree: Windows visible Exterior visible? Landmark visible? Tag confidence 0.95-1.0
- Premium: burj khalifa view, ocean view, downtown skyline, city lights view, mountain view
- Standard: garden view, pool view, partial view, building view
- Confidence: 0.95+ landmark visible, 0.85-0.94 view type unmistakable, 0.75-0.84 partially obstructed
**Furnishing (3-4 tags)**:
- Status: unfurnished (0.95+), semi-furnished (0.85-0.92), fully furnished (0.90-0.98)
- Style Matrix: modern (0.90-0.97), traditional (0.85-0.93), luxury (0.88-0.96), industrial (0.82-0.91)
- Quality: Luxury (designer/custom, 0.90+), Premium (high-quality, 0.85+), Standard (functional, 0.75+)
**Kitchen (2-4 tags)**:
- Appliances: with appliances (2+, 0.90+), fully equipped (4+, 0.92+)
- Layout: open kitchen (0.92-0.98), island kitchen (0.93-0.99), modular kitchen (0.85-0.92), galley kitchen (0.88-0.95)
- Special: breakfast bar, granite countertops, custom cabinetry, European-style
**Flooring (2-3 tags)**:
- Material: marble (veining, 0.90+), hardwood (grain, 0.88+), tile (grout, 0.85+), carpet (0.92+), porcelain (0.82+)
- Finish: polished, matte, textured
- Quality: premium exotic materials, standard materials, budget laminate
**Room Type (2-4 tags)**:
- Primary (0.95+): bedroom, living room, kitchen, bathroom, dining room
- Specific: master bedroom, ensuite bathroom, powder room, study
- Secondary (0.80+): balcony, terrace, walk-in closet, patio
**Style (3-4 tags)**:
- Contemporary: modern (0.88-0.96), contemporary (0.85-0.93), minimalist (0.86-0.94)
- Classic: traditional (0.82-0.91), classical (0.80-0.90)
- Specialized: industrial (0.83-0.92), scandinavian (0.81-0.90), mid-century modern (0.79-0.88)
**Features (4-5 tags)**:
- Tier 1 (0.90+): floor-to-ceiling windows, high ceiling, vaulted ceiling, exposed beams
- Tier 2 (0.85+): built-in wardrobes, walk-in closet, custom cabinetry, bay windows
- Tier 3 (0.82+): crown molding, fireplace, accent wall, decorative columns
- Tier 4 (0.78+): balcony access, ensuite bathroom, smart home features
- Tier 5 (0.80+): granite countertops, stainless steel appliances, glass partitions
**Condition (2-3 tags)**:
- Status: newly renovated (0.90-0.97), recently updated (0.85-0.93), original condition (0.80-0.90)
- Maintenance: pristine (0.92+), well-maintained (0.88+), needs renovation (0.85+)
- Occupancy: ready to move (0.90+), requires cosmetic work (0.82+)
**Lighting (3-4 tags)**:
- Natural: abundant natural light (large windows, 0.92+), natural light (0.88+), limited (0.82+)
- Artificial: recessed lighting (0.85+), pendant lights (0.90+), LED strip (0.82+)
- Quality: well-lit (0.88+), bright (0.85+), layered lighting (0.82+)
**Color Scheme (2-3 tags)**:
- Neutral: neutral tones (0.90-0.97), monochrome (0.88+), earth tones (0.88+)
- Temperature: warm colors (0.82+), cool colors (0.82+)
- Specific: white and gray, blue and white, black and white, greige
## CONFIDENCE CALIBRATION
- Tier 1 (0.95-1.0): Zero ambiguity, primary focus, multiple confirmations
- Tier 2 (0.85-0.94): Clear visibility, strong evidence, 2-3 indicators
- Tier 3 (0.75-0.84): Reasonably inferable, some ambiguity, 1-2 indicators
- Tier 4 (0.65-0.74): Context-suggested, significant ambiguity (use sparingly)
- NEVER <0.65: Rejection zone
Adjust for image quality: poor (-0.10), excellent (+0.05), multiple confirmations (+0.05)
## CROSS-CATEGORY VALIDATION
1. Luxury furnishing match modern/contemporary/traditional style + premium features
2. Newly renovated expect modern fixtures + contemporary finishes
3. With appliances verify 2+ visible in image
4. Abundant natural light verify large windows visible
5. Bedroom expect wardrobe/closet features if visible
6. Traditional style check for crown molding, ornate details
7. Luxury tags neutral/monochrome color scheme more likely
## TAG DISTRIBUTION
**Exactly 30 tags total**:
- High prominence (3-4 each): Furnishing, Style, Features, Lighting
- Medium (2-3 each): Room Type, Flooring, Color Scheme, View
- Standard (2-3 each): Kitchen, Condition
Dynamic adjustment: Kitchen not visible redistribute to Features/Furnishing/Style
## SUMMARY GENERATION
**Structure**: [Room Type] + [Key Feature 1] + [Key Feature 2] + [Style/Condition]
**Length**: 15-25 words, professional vocabulary
**Requirements**: Primary room in first 3 words, 2-3 distinctive features, no generic adjectives (nice, great, good)
Examples:
- "Spacious master bedroom featuring panoramic city views, premium marble flooring, and floor-to-ceiling windows with contemporary furnishings."
- "Modern open kitchen featuring stainless steel appliances, granite countertops, and custom cabinetry with breakfast bar seating."
## EDGE CASES
- Unfurnished: tag unfurnished (0.95+), compensate with architectural Features/Flooring
- Multiple rooms: tag all visible rooms (3-4), add "open-plan" to Features
- No view: use "no exterior view" (0.85+) or redistribute tags
- Kitchen not visible: tag "not visible" (0.85+) or redistribute
- Poor quality: reduce all confidence scores by 0.10, use broader tags
## OUTPUT FORMAT
Return ONLY valid JSON (no markdown, explanations, or additional text):
Return ONLY a JSON object in this exact format:
{
"tags": [
{"category": "View", "value": "marina view", "confidence": 0.95},
{"category": "Furnishing", "value": "fully furnished", "confidence": 0.90}
{"category": "View", "value": "downtown skyline", "confidence": 0.95},
{"category": "View", "value": "city view", "confidence": 0.92},
{"category": "View", "value": "unobstructed view", "confidence": 0.88},
{"category": "Furnishing", "value": "fully furnished", "confidence": 0.96},
{"category": "Furnishing", "value": "contemporary", "confidence": 0.93},
{"category": "Furnishing", "value": "luxury", "confidence": 0.90},
{"category": "Kitchen", "value": "not visible", "confidence": 0.85},
{"category": "Flooring", "value": "marble", "confidence": 0.94},
{"category": "Flooring", "value": "polished", "confidence": 0.91},
{"category": "Flooring", "value": "light colored", "confidence": 0.87},
{"category": "Room Type", "value": "bedroom", "confidence": 0.98},
{"category": "Room Type", "value": "master bedroom", "confidence": 0.92},
{"category": "Room Type", "value": "balcony access", "confidence": 0.89},
{"category": "Style", "value": "modern", "confidence": 0.95},
{"category": "Style", "value": "contemporary", "confidence": 0.92},
{"category": "Style", "value": "minimalist", "confidence": 0.88},
{"category": "Style", "value": "luxury", "confidence": 0.90},
{"category": "Features", "value": "floor-to-ceiling windows", "confidence": 0.97},
{"category": "Features", "value": "high ceiling", "confidence": 0.93},
{"category": "Features", "value": "built-in wardrobes", "confidence": 0.89},
{"category": "Features", "value": "walk-in closet", "confidence": 0.85},
{"category": "Features", "value": "ensuite bathroom", "confidence": 0.87},
{"category": "Condition", "value": "newly renovated", "confidence": 0.91},
{"category": "Condition", "value": "ready to move", "confidence": 0.94},
{"category": "Condition", "value": "pristine condition", "confidence": 0.89},
{"category": "Lighting", "value": "abundant natural light", "confidence": 0.96},
{"category": "Lighting", "value": "ambient lighting", "confidence": 0.90},
{"category": "Lighting", "value": "recessed lighting", "confidence": 0.86},
{"category": "Color Scheme", "value": "neutral tones", "confidence": 0.93},
{"category": "Color Scheme", "value": "white and gray", "confidence": 0.90}
],
"summary": "Brief one-sentence description"
"summary": "Luxurious master bedroom featuring stunning downtown skyline views, premium polished marble flooring, and floor-to-ceiling windows with contemporary furnishings throughout."
}
`;
FORMATTING RULES:
- Tag values: lowercase, hyphenated compound terms (floor-to-ceiling, mid-century)
- Confidence: exactly 2 decimal places (0.95, 0.87, 1.0)
- Summary: one sentence, 15-25 words, period at end
Ready to analyze. Execute complete framework and return only JSON.`;
}
/**
@ -165,8 +297,12 @@ Return ONLY a JSON object in this exact format:
throw new AIServiceError('Invalid response: tags array is required');
}
if (parsed.tags.length < 20) {
this.logger.warn('Claude returned fewer tags than expected', { count: parsed.tags.length });
// Validate exactly 30 tags as per enhanced prompt requirements
if (parsed.tags.length !== 30) {
this.logger.warn('Claude returned unexpected number of tags', {
expected: 30,
actual: parsed.tags.length
});
}
// Validate each tag
@ -174,6 +310,15 @@ Return ONLY a JSON object in this exact format:
if (!tag.category || !tag.value || typeof tag.confidence !== 'number') {
throw new AIServiceError(`Invalid tag at index ${index}: missing required fields`);
}
// Validate confidence range
if (tag.confidence < 0.65 || tag.confidence > 1.0) {
this.logger.warn('Tag has confidence out of expected range', {
index,
value: tag.value,
confidence: tag.confidence
});
}
});
return {