Getting started¶
Launch Sentiment Studio, sign in, and check one text result and one CSV result.
You need: an AWS account that can subscribe on AWS Marketplace, launch EC2, and start a Session Manager port-forwarding session. Install the AWS CLI and the Session Manager plugin on your workstation.
1. Subscribe¶
Open the Sentiment Studio listing, choose View purchase options, review the terms, and subscribe. When the subscription is active, choose Launch your software.
2. Launch the instance¶
On the EC2 launch page:
- Choose t3.medium (4 GiB of memory), Ubuntu 24.04, x86_64.
- Under Configure storage, use an encrypted gp3 root volume of at least 32 GiB.
- Require IMDSv2.
- Attach an IAM instance profile that includes
AmazonSSMManagedInstanceCore. - Allow the outbound access Session Manager needs. Leave inbound application ports closed.
- Choose Launch instance.
Wait until cloud-init and automatic first boot finish before you sign in. This starter runs on the instance. It does not need a model provider or an external database.
3. Connect¶
In the EC2 console, select the instance,
choose Connect, then Session Manager, then Connect. Then switch
to ubuntu:
4. Open the app¶
The application listens on loopback port 8501. On your workstation, start a forward and leave it running. Keep both ends on localhost. Do not expose port 8501 to the internet.
read -r -p "EC2 instance ID: " INSTANCE_ID
aws ssm start-session --target "$INSTANCE_ID" \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["8501"],"localPortNumber":["8501"]}'
Open http://127.0.0.1:8501 in your browser.
5. Sign in¶
First boot writes /home/ubuntu/.config/sushi-streamlit/access.json with
mode 0600. Read it in a shell you are not recording, then type the username
and password into the sign-in form. Leave the other fields in that file as
they are.
The file is a per-session password gate. It is not an external identity provider and it is not a multi-user organization account. Sign out to clear the browser session. The account file stays on the instance.
6. Score text or a CSV¶
In the text form, try helpful excellent service. For a CSV, use UTF-8 with
exactly the columns row_id,text. Send 1 to 12 rows. Each row_id must be
distinct and may contain only letters, digits, underscores, and hyphens. The
file must be at most 16 KiB. /opt/streamlit/sample.csv has six synthetic
examples.
Inspect the labels and totals, then choose Download result JSON. Treat the loopback download link as access to that result for as long as the server retains it.
The terminal client calls the same running server. Use a new output file for each run so earlier results stay in place:
sushi-streamlit text 'helpful excellent service' \
--output ~/streamlit-results/my-text.json
sushi-streamlit csv /opt/streamlit/sample.csv \
--output ~/streamlit-results/my-csv.json
sushi-streamlit verify ~/streamlit-results/my-csv.json
sushi-streamlit verify checks the saved rows in that JSON file. What you
see in the browser is a separate check. The demo drives the real server and
verifies saved rows on its own.
Next, see Configuration for the files to keep with those results.
Last updated November 1, 2026 · Suggest an improvement