vk98's picture
Initial deployment of ColPali Visual Retrieval backend
a54266b
#!/usr/bin/env python3
"""
Quick setup script for ColPali-Vespa Visual Retrieval System
"""
import os
import sys
from pathlib import Path
def create_env_file():
"""Create a sample .env file if it doesn't exist"""
env_path = Path(".env")
if env_path.exists():
print("βœ… .env file already exists")
return
env_content = """# Vespa Configuration
# Choose one authentication method:
# Option 1: Token Authentication (Recommended)
VESPA_APP_TOKEN_URL=https://your-app.your-tenant.vespa-cloud.com
VESPA_CLOUD_SECRET_TOKEN=your_vespa_secret_token_here
# Option 2: mTLS Authentication
# USE_MTLS=true
# VESPA_APP_MTLS_URL=https://your-app.your-tenant.vespa-cloud.com
# VESPA_CLOUD_MTLS_KEY="-----BEGIN PRIVATE KEY-----
# Your private key content here
# -----END PRIVATE KEY-----"
# VESPA_CLOUD_MTLS_CERT="-----BEGIN CERTIFICATE-----
# Your certificate content here
# -----END CERTIFICATE-----"
# Google Gemini Configuration (Optional - for AI chat features)
GEMINI_API_KEY=your_gemini_api_key_here
# Application Configuration
LOG_LEVEL=INFO
HOT_RELOAD=false
# Development Configuration
# Uncomment for development mode
# HOT_RELOAD=true
# LOG_LEVEL=DEBUG
"""
with open(env_path, "w") as f:
f.write(env_content)
print("βœ… Created .env file with sample configuration")
print(" Please edit .env with your actual credentials")
def create_directories():
"""Create necessary directories"""
directories = ["static", "static/full_images", "static/sim_maps"]
for directory in directories:
Path(directory).mkdir(parents=True, exist_ok=True)
print("βœ… Created necessary directories")
def check_python_version():
"""Check if Python version is compatible"""
version = sys.version_info
if version.major != 3 or version.minor < 10 or version.minor >= 13:
print("❌ Python 3.10, 3.11, or 3.12 is required")
print(f" Current version: {version.major}.{version.minor}.{version.micro}")
return False
print(
f"βœ… Python version {version.major}.{version.minor}.{version.micro} is compatible"
)
return True
def main():
"""Main setup function"""
print("πŸš€ ColPali-Vespa Visual Retrieval Setup")
print("=" * 40)
# Check Python version
if not check_python_version():
sys.exit(1)
# Create directories
create_directories()
# Create .env file
create_env_file()
print("\nπŸ“‹ Next steps:")
print("1. Edit .env file with your Vespa and Gemini credentials")
print("2. Install dependencies: pip install -e .")
print("3. Deploy Vespa application: python deploy_vespa_app.py ...")
print("4. Upload documents: python feed_vespa.py ...")
print("5. Run the application: python main.py")
print("\nπŸ“– See README.md for detailed instructions")
if __name__ == "__main__":
main()