File size: 2,994 Bytes
db7c1e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import os
import sys
from dotenv import load_dotenv
from qdrant_client import QdrantClient
from qdrant_client.http import models

# Load environment variables from parent directory
load_dotenv(os.path.join(os.path.dirname(__file__), '..', '.env'))

def comprehensive_debug():
    # Get environment variables
    qdrant_url = os.getenv("QDRANT_URL")
    qdrant_api_key = os.getenv("QDRANT_API_KEY")
    collection_name = os.getenv("QDRANT_COLLECTION", "project_documents")

    print(f"QDRANT_URL: {qdrant_url}")
    print(f"Collection: {collection_name}")

    # Initialize Qdrant client for cloud
    if qdrant_url and qdrant_api_key and "qdrant.io" in qdrant_url:
        qdrant_client = QdrantClient(
            url=qdrant_url.replace(":6333", ""),  # Remove port from URL for cloud
            api_key=qdrant_api_key,
            prefer_grpc=False
        )
    else:
        # Use local Qdrant if cloud not configured
        qdrant_client = QdrantClient(
            host=os.getenv("QDRANT_HOST", "localhost"),
            port=int(os.getenv("QDRANT_PORT", 6333))
        )

    # 1. Check collections
    print("\n1. Available collections:")
    try:
        collections = qdrant_client.get_collections()
        for collection in collections.collections:
            print(f"  - {collection.name}")
    except Exception as e:
        print(f"  Error getting collections: {e}")

    # 2. Get collection info
    print(f"\n2. Collection info:")
    try:
        collection_info = qdrant_client.get_collection(collection_name)
        print(f"  Points count: {collection_info.points_count}")
        print(f"  Vector size: {collection_info.config.params.vectors.size}")
        print(f"  Distance: {collection_info.config.params.vectors.distance}")
    except Exception as e:
        print(f"  Error getting collection info: {e}")

    # 3. List all points in the collection (up to 10 for debugging)
    print(f"\n3. All points in collection (up to 10):")
    try:
        points = qdrant_client.scroll(
            collection_name=collection_name,
            limit=10
        )

        count = 0
        for point in points[0]:  # points[0] contains the list of points
            count += 1
            print(f"  Point {count}:")
            print(f"    ID: {point.id}")
            print(f"    Payload keys: {list(point.payload.keys()) if point.payload else 'None'}")
            if point.payload and 'content' in point.payload:
                content_preview = point.payload['content'][:100] + "..." if len(point.payload['content']) > 100 else point.payload['content']
                print(f"    Content preview: {content_preview}")
                print(f"    Topic: {point.payload.get('metadata', {}).get('topic', 'Unknown')}")
            print()

        print(f"  Total points found: {count}")
    except Exception as e:
        print(f"  Error listing points: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    comprehensive_debug()