Spaces:
Runtime error
Runtime error
| from config import * | |
| import pandas as pd | |
| import requests | |
| def build_skill_query(skill): | |
| skill_query = skill['preferredLabel']['de'] +" " + skill['preferredLabel']['en']+" "+ skill['description']['de']+ " "+ skill['description']['en'] | |
| if skill['borderConcept']['broaderHierarchyConcept']: | |
| broader_hierarchy_concept_str = ", ".join(skill['borderConcept']['broaderHierarchyConcept']) | |
| skill_query += " " + broader_hierarchy_concept_str | |
| else: | |
| pass | |
| if skill['borderConcept']['broaderSkill']: | |
| broaderSkill_str = ", ".join(skill['borderConcept']['broaderSkill']) | |
| skill_query += " " + broaderSkill_str | |
| else: | |
| pass | |
| if skill['alternativeLabel']['de']: | |
| alternativeLabel_de_str = ", ".join(skill['alternativeLabel']['de']) | |
| skill_query += " " + alternativeLabel_de_str | |
| else: | |
| pass | |
| if skill['alternativeLabel']['en']: | |
| alternativeLabel_en_str = ", ".join(skill['alternativeLabel']['en']) | |
| skill_query += " " + alternativeLabel_en_str | |
| else: | |
| pass | |
| return skill_query | |
| def build_occupation_query(occupation): | |
| occupation_name_de = occupation['preferredLabel'].get('de','') | |
| occupation_dsp = occupation['description'].get('de','').get('literal','') | |
| occupation_query = occupation_name_de +" " + occupation['preferredLabel'].get('en','')+" "+ occupation['description'].get('de','').get('literal','') + " "+ occupation_dsp | |
| ''' | |
| if occupation['_links']['broaderIscoGroup']: | |
| for group in occupation['_links']['broaderIscoGroup']: | |
| occupation_query += " " + group['title'] | |
| else: | |
| pass | |
| ''' | |
| return occupation_name_de,occupation_dsp,occupation_query | |
| # Get occupations from a CSV | |
| def get_occupations_from_csv(file_path): | |
| df = pd.read_csv(file_path) | |
| return df[['preferredLabel', 'conceptUri']].set_index('preferredLabel').to_dict()['conceptUri'] | |
| def get_oauth_token(): | |
| # API endpoint URL | |
| token_url = "https://rest.arbeitsagentur.de/oauth/gettoken_cc" | |
| # Client credentials | |
| client_id = "38053956-6618-4953-b670-b4ae7a2360b1" | |
| client_secret = "c385073c-3b97-42a9-b916-08fd8a5d1795" | |
| grant_type = "client_credentials" | |
| # Prepare request data | |
| payload = { | |
| "client_id": client_id, | |
| "client_secret": client_secret, | |
| "grant_type": grant_type | |
| } | |
| # Send request and get response | |
| response = requests.post(token_url, data=payload) | |
| # Check if the request was successful | |
| if response.status_code == 200: | |
| return response.json().get("access_token") | |
| else: | |
| print("Token request failed:", response.text) | |
| return None | |
| def query_weiterbildungssuche_api(token, params): | |
| # Set API URL | |
| api_url = "https://rest.arbeitsagentur.de/infosysbub/wbsuche/pc/v2/bildungsangebot" | |
| # Prepare request headers | |
| headers = { | |
| "Authorization": f"Bearer {token}" | |
| } | |
| # Send GET request | |
| response = requests.get(api_url, headers=headers, params=params) | |
| if response.status_code == 200: | |
| return response.json() | |
| else: | |
| print("API request failed:", response.text) | |
| return None | |
| def get_courses_from_BA(ids): | |
| # Get OAuth token | |
| token = get_oauth_token() | |
| if token: | |
| # Set query parameters | |
| params = { | |
| "ids": list(ids) | |
| } | |
| # Use token to query the API | |
| result = query_weiterbildungssuche_api(token, params) | |
| return result | |
| def get_occupation_detial(oc_uri): | |
| uri = f'https://ec.europa.eu/esco/api/resource/occupation?selectedVersion=v1.0.9&language=en&uri={oc_uri}' | |
| try: | |
| occupation_response = requests.get(uri) | |
| occupation_response.raise_for_status() | |
| occupation_json = occupation_response.json() | |
| return occupation_json | |
| except requests.RequestException as e: | |
| print(f"Error while fetching skill details: {e}") | |