Files
ds_zagres_ai/deploy_production.sh
T
2025-05-09 15:41:16 +01:00

83 lines
2.4 KiB
Bash

#!/bin/bash
# Production deployment script for AI Service
# This script deploys the AI service in a production environment
# Exit on error
set -e
echo "Starting AI Service deployment..."
# Check if virtual environment exists
if [ ! -d "venv" ]; then
echo "Creating virtual environment..."
python3 -m venv venv
fi
# Activate virtual environment
source venv/bin/activate
# Install dependencies
echo "Installing dependencies..."
pip install --upgrade pip
pip install -r ai_service/requirements.txt
# Check if .env file exists, if not copy from .env.production
if [ ! -f "ai_service/.env" ]; then
echo "Creating .env file from .env.production..."
cp ai_service/.env.production ai_service/.env
echo "Please edit ai_service/.env to add your API keys before continuing."
echo "Then run this script again."
exit 1
fi
# Create data directory if it doesn't exist
mkdir -p ai_service/data
# Check if Pinecone API key is set
PINECONE_API_KEY=$(grep PINECONE_API_KEY ai_service/.env | cut -d '=' -f2)
if [ "$PINECONE_API_KEY" = "your-pinecone-api-key-here" ]; then
echo "Warning: Pinecone API key not set. Vector storage will not be available."
echo "Edit ai_service/.env to set your Pinecone API key."
fi
# Check if OpenAI API key is set
OPENAI_API_KEY=$(grep OPENAI_API_KEY ai_service/.env | cut -d '=' -f2)
if [ "$OPENAI_API_KEY" = "your-openai-api-key-here" ]; then
echo "Warning: OpenAI API key not set. AI responses will be placeholders."
echo "Edit ai_service/.env to set your OpenAI API key."
fi
# Stop any existing service
echo "Stopping any existing AI service..."
pkill -f "uvicorn ai_service.run:app" || true
# Start the service with nohup
echo "Starting AI service..."
cd $(dirname "$0")
nohup uvicorn ai_service.run:app --host 0.0.0.0 --port 5251 > ai_service.log 2>&1 &
# Wait for service to start
sleep 2
# Check if service is running
if pgrep -f "uvicorn ai_service.run:app" > /dev/null; then
echo "AI service started successfully!"
echo "Service is running on http://0.0.0.0:5251"
echo "Logs are available in ai_service.log"
else
echo "Failed to start AI service. Check ai_service.log for details."
exit 1
fi
# Test the service
echo "Testing service health..."
if curl -s http://localhost:5251/health | grep -q "healthy"; then
echo "Service is healthy!"
else
echo "Service health check failed. Check ai_service.log for details."
exit 1
fi
echo "Deployment complete!"