import os import gradio as gr from gradio_client import Client MY_HF_TOKEN_KEY = os.environ["MY_HF_TOKEN_KEY"] client = Client("Ghana-NLP/Khaya-image-caption-backend-infer-api",hf_token=MY_HF_TOKEN_KEY,upload_files=True) def generate(filepath,language): output = client.predict(filepath,language,api_name="/predict") return output with gr.Blocks() as demo: title = gr.Markdown( """ # African Language Image Captioning Based on the Khaya AI Translation API, Lesan AI, Google Translate API and the BLIP model. Lesan is used for Amharic and Tigrinya, Khaya AI is used for Twi, Dagbani, Ewe, Ga, Gurene, Fante, Kikuyu, Kimeru, Luo, Yoruba and Google is used for Hausa, Swahili and Shona. """) with gr.Row(): with gr.Column(scale=1): language_selector = gr.Dropdown(["Twi","Amharic","Dagbani","Ewe","Ga","Gurene","Fante","Hausa", "Kikuyu", "Kimeru", "Luo","Shona","Swahili","Tigrinya","Yoruba"],value="Twi",label="Choose Language! (default is Twi)", info="Language:") inputs = [gr.Image(type="filepath"),language_selector] examples = [["https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"], ["https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/rotated_image.jpeg"]] with gr.Column(scale=1): outputs = [gr.Textbox(label="English Caption"), gr.Textbox(label="African Language Caption"), gr.Image(label="OUT", type="filepath")] btn = gr.Button("Generate African Language Caption") btn.click(generate, inputs=inputs, outputs=outputs) if __name__ == "__main__": demo.queue(max_size=20).launch()