Updated week2 assignment folder to include GEN AI version

This commit is contained in:
The Top Dev
2025-10-22 13:04:46 +03:00
parent e7b2dd3c65
commit 053199eae0
10 changed files with 264 additions and 205 deletions

View File

@@ -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()