Learn practical skills, build real-world projects, and advance your career
import ujson, requests, pickle
from pathlib import Path
MODEL_DIR = "../models"
vectorizer = None #Variable in global name space 
model = None #Variable in global name space 

Utils

import urllib3
#Suppress InsecureRequestWarning
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
DEFAULT_SEARCH_SERVICE_URI = 'https://api.access.redhat.com/rs/search'
ROWS = 50
ENABLE_SIGNALS = 'false' 
ENABLE_ELEVATION = 'false' #Disable elevation as we want to evaluate against the natural search results
headers = {'Accept': 'application/vnd.redhat.solr+json'}

def update_params(query: str):
    params = {
        'q': query, 'wt': 'json', 'start': 0, 'rows': 1,        
        'enableSignals': ENABLE_SIGNALS, 'enableElevation': ENABLE_ELEVATION,
        'fl': 'view_uri, allTitle'
    }    
    return params
def execute_search(query: str):
    params = update_params(query)
    response = requests.get(url=DEFAULT_SEARCH_SERVICE_URI, params=params, 
             headers=headers, verify=False)
    if (response.status_code != 200):
        print(response.text)        
        return dict()
    #print(response.text)
    data = ujson.loads(response.text)
    docs = data.get('response', {}).get('docs', [])
    if len(docs) > 0:
        url = docs[0]['view_uri']
        title = docs[0]['allTitle']
        return (url, title)
    return ("", "")