from django.shortcuts import render, redirect from ai.local_ai_api import LocalAIApi import json def index(request): user_groups = [] if request.user.is_authenticated: user_groups = [group.name for group in request.user.groups.all()] context = { "project_name": "ComplianceShield", "user_groups": user_groups, } return render(request, "core/index.html", context) def search(request): user_groups = [] if request.user.is_authenticated: user_groups = [group.name for group in request.user.groups.all()] if request.method == "POST": query = request.POST.get("query", "") if query: response = LocalAIApi.create_response( { "input": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": query}, ], }, { "poll_interval": 5, # seconds "poll_timeout": 300, # seconds }, ) if response.get("success"): text = LocalAIApi.extract_text(response) if not text: decoded = LocalAIApi.decode_json_from_response(response) text = json.dumps(decoded, ensure_ascii=False) if decoded else str(response.get("data", "")) search_results = text else: search_results = "Error: Could not get a response from the AI." context = { "project_name": "ComplianceShield", "search_results": search_results, "user_groups": user_groups, } return render(request, "core/index.html", context) return redirect("index") def settings(request): context = { "project_name": "ComplianceShield", "user_groups": user_groups, } return render(request, "core/settings.html", context) def daily_logs(request): return render(request, "core/daily_logs.html") def safety_meetings(request): return render(request, "core/safety_meetings.html") def incidents(request): return render(request, "core/incidents.html") def documents(request): return render(request, "core/documents.html") def subcontractors(request): return render(request, "core/subcontractors.html") def equipment(request): return render(request, "core/equipment.html") def ongoing_projects(request): return render(request, "core/ongoing_projects.html") def completed_projects(request): return render(request, "core/completed_projects.html") def on_hold_projects(request): return render(request, "core/on_hold_projects.html")