demeter

Autonomous Hydroponic Intelligence

backend/server/fix.py (1664B)


 1import sys
 2import os
 3from dotenv import load_dotenv # Ensure you have python-dotenv installed
 4
 5# 1. Get the folder where this script lives
 6current_dir = os.path.dirname(os.path.abspath(__file__))
 7
 8# 2. Go up two levels to find the Project Root (Code/)
 9project_root = os.path.abspath(os.path.join(current_dir, '../../'))
10
11# 3. Add Project Root to Python Path
12sys.path.append(project_root)
13
14# 4. 🔥 FORCE LOAD THE .ENV FILE 🔥
15# This must happen BEFORE importing Qdrant.Client
16env_path = os.path.join(project_root, '.env')
17if os.path.exists(env_path):
18    print(f"✅ Loading environment from: {env_path}")
19    load_dotenv(env_path)
20else:
21    print("⚠️ WARNING: .env file not found at project root!")
22
23# 5. NOW Import Client (It will see the loaded variables)
24from Qdrant.Client import client
25from qdrant_client.http import models
26
27def create_indexes():
28    print(f"🔧 Optimizing collection Farm_Memory...")
29    
30    # 1. Create Index for crop_id
31    try:
32        client.create_payload_index(
33            collection_name="Farm_Memory",
34            field_name="crop_id",
35            field_schema=models.PayloadSchemaType.KEYWORD
36        )
37        print("✅ Index created for 'crop_id'")
38    except Exception as e:
39        print(f"ℹ️ Note on crop_id: {e}")
40
41    # 2. Create Index for outcome
42    try:
43        client.create_payload_index(
44            collection_name="Farm_Memory",
45            field_name="outcome",
46            field_schema=models.PayloadSchemaType.KEYWORD
47        )
48        print("✅ Index created for 'outcome'")
49    except Exception as e:
50        print(f"ℹ️ Note on outcome: {e}")
51
52if __name__ == "__main__":
53    create_indexes()