File size: 2,230 Bytes
3998131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
"""
Verification Script for Module C (Interactive Flow)
Tests the analyze_requirements functionality.
"""

import sys
import os
from pathlib import Path

# Add project root to path
sys.path.append(str(Path(__file__).parent.parent))

from module_c.interface import LetterGenerationAPI

def test_interactive_flow():
    print("=== Testing Module C: Interactive Flow ===")
    
    api = LetterGenerationAPI()
    
    # 1. Analyze Requirements
    description = "I need a citizenship certificate for my child"
    print(f"\n[1] Analyzing Description: '{description}'")
    
    if not os.getenv("MISTRAL_API_KEY"):
        print("WARNING: MISTRAL_API_KEY not set. Analysis might fail.")

    analysis = api.analyze_requirements(description)
    
    if analysis['success']:
        print(f" -> Template Found: {analysis['template_name']}")
        print(f" -> Detected Placeholders: {analysis['detected_placeholders']}")
        print(f" -> Missing Fields: {analysis['missing_fields']}")
        
        if analysis['missing_fields']:
            print("\n[2] Providing Missing Info and Generating")
            # Simulate user providing data
            additional_data = {
                "Date": "2081-01-01",
                "District": "Kathmandu",
                "Applicant Name": "Ram Sharma",
                "Applicant Address": "Kathmandu-10",
                "Ward No": "10",
                "Municipality": "Kathmandu",
                "Father's Name": "Hari Sharma",
                "Mother's Name": "Gita Sharma",
                "Age": "20",
                "CDO Name": "Chief District Officer"
            }
            
            result = api.generate_smart_letter(description, additional_data)
            if result['success']:
                print("SUCCESS: Letter Generated with Additional Data")
                print("--- Preview ---")
                print(result['letter'][:200] + "...")
            else:
                print(f"FAILED: {result.get('error')}")
        else:
            print("No missing fields detected (unexpected for this short description).")
            
    else:
        print(f"Analysis Failed: {analysis.get('error')}")

if __name__ == "__main__":
    test_interactive_flow()