The first thing we’ll do is define the environment that our app will run on. For
this example, we’re building a Sentiment Analysis model using Huggingface.
Now, we’ll write some code to predict the sentiment of a given text prompt.
Our function takes keyword arguments, as (**inputs).
run.py
from transformers import pipelinedefpredict_sentiment(**inputs): model = pipeline("sentiment-analysis", model="siebert/sentiment-roberta-large-english") result = model(inputs["text"], truncation=True, top_k=1) prediction ={i["label"]: i["score"]for i in result}print(prediction)return{"prediction": prediction}
To deploy the model, enter your terminal and cd to the directory you’re
working on.
Then, run the following:
beam deploy app.py
After running this command, you’ll see some logs in the console that show the progress of your deployment.
user@MacBook sentiment-analysis % beam deploy app.py i Copying files in workspace './'... ✓ Done. i Adding python requirements... i torch i transformers ✓ Done. i Using cached image. ✓ <sentiment-analysis> deployed successfully! 🎉 i ID: 64c131ff2628c00009ebefc8 i Version:6 i Trigger type: rest_api i CPU: 2000m i Memory: 8Gi i Runtime: python3.9 i Send requests to: https://hf-inference-712408b-v1.app.beam.cloud i View deployment status at: https://www.beam.cloud/apps/hf-inference/deployment/64c131ff2628c00009ebefc8/logs
At the bottom of the console, you’ll see a URL for invoking your function.
Here’s what a cURL request would look like:
curl-X POST --compressed"https://hf-inference-712408b-v1.app.beam.cloud"\-H'Accept: */*'\-H'Accept-Encoding: gzip, deflate'\-H'Authorization: Basic [YOUR_AUTH_TOKEN]'\-H'Connection: keep-alive'\-H'Content-Type: application/json'\-d'{"text": "If we override the bandwidth, we can get to the SMTP capacitor through the cross-platform RSS alarm!"}'