File size: 3,028 Bytes
f729bac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
80
81
82
83
84
85
86
87
88
89
# =============================================================================
# DEPLOYMENT CONFIGURATION FOR GRADIO SPACES
# =============================================================================

import os
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# =============================================================================
# OPENAI CONFIGURATION
# =============================================================================

# API Key (required for deployment)
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
    print("⚠️  Warning: OPENAI_API_KEY not found in environment variables")

# Embedding model configuration
OPENAI_EMBEDDING_MODEL = "text-embedding-3-large"
EMBEDDING_DIMENSIONS = 3072

# =============================================================================
# QDRANT CONFIGURATION
# =============================================================================

# Qdrant URL (cloud deployment will need external Qdrant)
QDRANT_URL = os.getenv("QDRANT_URL", "http://localhost:6333")
QDRANT_API_KEY = os.getenv("QDRANT_API_KEY")  # For cloud Qdrant

# Collection configuration
QDRANT_COLLECTION_NAME = "chunks_collection"

# =============================================================================
# CHUNKING CONFIGURATION
# =============================================================================

# Available chunking methods
CHUNKING_METHODS = ["fixed", "sentence", "adaptive"]

# Fixed chunking parameters
FIXED_CHUNK_SIZE = 1000
FIXED_CHUNK_OVERLAP = 200

# Sentence chunking parameters  
SENTENCE_MIN_CHUNK_SIZE = 100
SENTENCE_MAX_CHUNK_SIZE = 1000

# Adaptive chunking parameters
ADAPTIVE_MIN_CHUNK_SIZE = 200
ADAPTIVE_MAX_CHUNK_SIZE = 800
ADAPTIVE_SIMILARITY_THRESHOLD = 0.5

# =============================================================================
# SEARCH AND RETRIEVAL CONFIGURATION
# =============================================================================

# Number of chunks to return in search results
TOP_K_RESULTS = 10

# Minimum similarity score for search results
MIN_SIMILARITY_SCORE = 0.5

# =============================================================================
# LOGGING CONFIGURATION
# =============================================================================

# Logging level for deployment
LOG_LEVEL = "INFO"

# =============================================================================
# DEPLOYMENT NOTES
# =============================================================================

"""
For Gradio Spaces deployment:

1. Set environment variables in Space settings:
   - OPENAI_API_KEY: Your OpenAI API key
   - QDRANT_URL: URL to your cloud Qdrant instance
   - QDRANT_API_KEY: API key for cloud Qdrant (if required)

2. Consider using Qdrant Cloud or self-hosted Qdrant instance
   since Gradio Spaces don't support Docker containers

3. The app will show warning messages if components fail to initialize
   but will still launch for configuration troubleshooting
"""