Spaces:
Runtime error
Runtime error
| import requests | |
| from PIL import Image | |
| import io | |
| import base64 | |
| # FILTER | |
| import re | |
| def clean_string(input_string): | |
| # Lowercase the string and remove non-alphabetic characters | |
| cleaned_string = re.sub(r'[^a-z]', '', input_string.lower()) | |
| return cleaned_string | |
| with open("invalid_searches.txt", 'r') as f: | |
| invalid = f.readlines() | |
| invalid = [clean_string(i) for i in invalid] | |
| invalid = [i for i in invalid if i != ""] | |
| invalid.append("") | |
| def check_invalid(word): | |
| word = clean_string(word) | |
| return word in invalid | |
| # GETTING THE KEYS | |
| # from keys import * | |
| import os | |
| HF_TOKEN = os.environ.get('HF_TOKEN') | |
| DICTIONARY_API_KEY = os.environ.get('DICTIONARY_API_KEY') | |
| def get_definition(word): | |
| url = 'https://siwar.ksaa.gov.sa/api/alriyadh/exact-search' | |
| headers = { | |
| 'accept': 'application/json', | |
| 'apikey': DICTIONARY_API_KEY | |
| } | |
| params = {'query': word} | |
| response = requests.get(url, params=params, headers=headers) | |
| print(response) | |
| # word not found | |
| define = response.json() | |
| if len(define) == 0: | |
| return "", "", [] | |
| define = define[0] | |
| word = define['lemma']['formRepresentations'][0]['form'] | |
| english = None | |
| meanings_examples = [] | |
| for i, sense in enumerate(define['senses']): | |
| meaning = sense['definition']['textRepresentations'][0]['form'] | |
| example = None | |
| for ex in sense['examples']: | |
| if ex['form'] != "": | |
| example = ex['form'] | |
| for ex in sense['translations']: | |
| if ex['form'] != "" and not english: | |
| english = ex['form'] | |
| meanings_examples.append({ | |
| "i": i+1, | |
| "meaning": meaning, | |
| "example": example | |
| }) | |
| return word, english, meanings_examples | |
| def get_translation(word): | |
| if word == "": | |
| return "" | |
| API_URL = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-ar-en" | |
| headers = {"Authorization": f"Bearer {HF_TOKEN}"} | |
| response = requests.post(API_URL, headers=headers, json={ | |
| "inputs": word, | |
| }) | |
| print(response) | |
| response = response.json() | |
| print(response) | |
| # error in response | |
| if type(response) == dict: | |
| return "" | |
| return response[0]['translation_text'] | |
| def get_image(word): | |
| print(word) | |
| if check_invalid(word): | |
| return None | |
| # blank image | |
| return "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" | |
| API_URL = "https://api-inference.huggingface.co/models/runwayml/stable-diffusion-v1-5" | |
| headers = {"Authorization": f"Bearer {HF_TOKEN}"} | |
| response = requests.post(API_URL, headers=headers, json={ | |
| "inputs": word, | |
| }) | |
| print(response) | |
| image_bytes = response.content | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| # Convert image to base64 | |
| image_base64 = "" | |
| with io.BytesIO() as buffer: | |
| image.save(buffer, format="JPEG") | |
| image_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8') | |
| return image_base64 | |
| if __name__ == "__main__": | |
| pass | |