Spaces:
Sleeping
Sleeping
File size: 2,228 Bytes
dc95236 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | from typing import Any, Dict, List
import requests
import streamlit as st
DEFAULT_BACKEND_URL = "http://localhost:8000"
def _backend_url() -> str:
try:
return st.secrets["backend"]["url"]
except (KeyError, FileNotFoundError):
return DEFAULT_BACKEND_URL
def _auth_headers(access_token: str) -> Dict[str, str]:
return {"Authorization": f"Bearer {access_token}"}
def health_check() -> Dict[str, Any]:
response = requests.get(f"{_backend_url()}/api/v1/health", timeout=10)
response.raise_for_status()
return response.json()
def analyze_resume(
resume_file,
access_token: str,
job_description: str = "",
) -> Dict[str, Any]:
files = {
"resume": (resume_file.name, resume_file.getvalue(), resume_file.type),
}
data = {"job_description": job_description}
response = requests.post(
f"{_backend_url()}/api/v1/analyze-resume",
files=files,
data=data,
headers=_auth_headers(access_token),
timeout=180,
)
response.raise_for_status()
return response.json()
def get_history(access_token: str) -> List[Dict[str, Any]]:
response = requests.get(
f"{_backend_url()}/api/v1/history",
headers=_auth_headers(access_token),
timeout=30,
)
response.raise_for_status()
return response.json()
def delete_history_entry(analysis_id: str, access_token: str) -> None:
response = requests.delete(
f"{_backend_url()}/api/v1/history/{analysis_id}",
headers=_auth_headers(access_token),
timeout=30,
)
response.raise_for_status()
def generate_pdf(analysis_data: Dict[str, Any], access_token: str) -> bytes:
response = requests.post(
f"{_backend_url()}/api/v1/generate-pdf",
json=analysis_data,
headers=_auth_headers(access_token),
timeout=60,
)
response.raise_for_status()
return response.content
def get_history_pdf(analysis_id: str, access_token: str) -> bytes:
response = requests.get(
f"{_backend_url()}/api/v1/history/{analysis_id}/pdf",
headers=_auth_headers(access_token),
timeout=60,
)
response.raise_for_status()
return response.content
|