test / app.py
ablamahfadi's picture
Upload folder using huggingface_hub
2912f80
import os
os.system("pip install awscli boto3 sagemaker gradio")
os.system("aws configure set aws_access_key_id AKIAYIBNUHKT7UN3PKCK")
os.system("aws configure set aws_secret_access_key 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")
os.system("aws configure set default.region us-east-1")
os.system("aws configure set default.output json")
import boto3
import sagemaker
from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uri
import gradio as gr
predictor = None
def deploy_and_get_interface(hf_model_url):
global predictor
try:
role = sagemaker.get_execution_role()
except ValueError:
iam = boto3.client('iam')
role = iam.get_role(RoleName='Moh-work')['Role']['Arn']
hf_model_id = hf_model_url.split('/')[-2]
hub = {
'HF_MODEL_ID': hf_model_id,
'SM_NUM_GPUS': '1'
}
huggingface_model = HuggingFaceModel(
image_uri=get_huggingface_llm_image_uri("huggingface", version="1.0.3"),
env=hub,
role=role
)
predictor = huggingface_model.deploy(
initial_instance_count=1,
instance_type="ml.g5.2xlarge",
container_startup_health_check_timeout=300,
)
def get_prediction(input_text):
response = predictor.predict({"inputs": input_text})
return response[0]['generated_text']
iface = gr.Interface(fn=get_prediction,
inputs="text",
outputs="text",
title="HuggingFace Model Predictor",
description="Enter some text and get the model's prediction!")
return iface
def get_prediction(input_text):
response = predictor.predict({"inputs": input_text})
return response[0]['generated_text']
def trigger_deploy(hf_model_url):
deploy_and_get_interface(hf_model_url)
iface = gr.Interface(fn=get_prediction,
inputs="text",
outputs="text",
title="HuggingFace Model Predictor",
description="Enter some text and get the model's prediction!")
iface.launch()
def setup_interface():
iface = gr.Interface(fn=trigger_deploy,
inputs="text",
outputs="text",
title="Enter HuggingFace Model URL",
description="Please input the URL of the desired HuggingFace model and submit to deploy.")
iface.launch()
setup_interface()