Updated week2 assignment folder to include GEN AI version
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
"""
|
||||
Run the Radio Africa Group Advanced Chatbot
|
||||
This script ensures all ports are free and launches the chatbot
|
||||
"""
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
import sys
|
||||
|
||||
def kill_processes_on_ports():
|
||||
"""Kill all processes using Gradio ports"""
|
||||
print("🔍 Checking for processes using Gradio ports...")
|
||||
|
||||
# Check for processes on common Gradio ports
|
||||
ports_to_check = [7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879]
|
||||
|
||||
for port in ports_to_check:
|
||||
try:
|
||||
# Find process using the port
|
||||
result = subprocess.run(['netstat', '-ano'], capture_output=True, text=True)
|
||||
for line in result.stdout.split('\n'):
|
||||
if f':{port}' in line and 'LISTENING' in line:
|
||||
parts = line.split()
|
||||
if len(parts) > 4:
|
||||
pid = parts[-1]
|
||||
try:
|
||||
print(f"🔄 Killing process {pid} using port {port}")
|
||||
subprocess.run(['taskkill', '/F', '/PID', pid], capture_output=True)
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
print("✅ Port cleanup completed!")
|
||||
|
||||
def find_free_port(start_port=7860):
|
||||
"""Find a free port starting from the given port"""
|
||||
import socket
|
||||
|
||||
for port in range(start_port, start_port + 100):
|
||||
try:
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
s.bind(('127.0.0.1', port))
|
||||
return port
|
||||
except OSError:
|
||||
continue
|
||||
return None
|
||||
|
||||
def main():
|
||||
"""Main function to run the chatbot"""
|
||||
print("🚀 Starting Radio Africa Group Advanced Chatbot...")
|
||||
|
||||
# Kill any existing processes
|
||||
kill_processes_on_ports()
|
||||
|
||||
# Find a free port
|
||||
free_port = find_free_port(7860)
|
||||
if not free_port:
|
||||
print("❌ No free ports available!")
|
||||
return
|
||||
|
||||
print(f"✅ Using port {free_port}")
|
||||
|
||||
# Set environment variable for Gradio
|
||||
os.environ['GRADIO_SERVER_PORT'] = str(free_port)
|
||||
|
||||
# Import and run the chatbot
|
||||
try:
|
||||
# Change to the correct directory
|
||||
os.chdir('week2/community-contributions/week2-assignment-Joshua')
|
||||
|
||||
# Import the chatbot
|
||||
from radio_africa_advanced_chatbot import main as chatbot_main
|
||||
|
||||
print("🎯 Launching Radio Africa Group Advanced Chatbot...")
|
||||
print(f"🌐 Interface will be available at: http://127.0.0.1:{free_port}")
|
||||
|
||||
# Run the chatbot
|
||||
chatbot_main()
|
||||
|
||||
except ImportError as e:
|
||||
print(f"❌ Import error: {e}")
|
||||
print("Please make sure you're in the correct directory and all dependencies are installed.")
|
||||
except Exception as e:
|
||||
print(f"❌ Error: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user