Skip to content

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:

  1. Choose t3.medium (4 GiB of memory), Ubuntu 24.04, x86_64.
  2. Under Configure storage, use an encrypted gp3 root volume of at least 32 GiB.
  3. Require IMDSv2.
  4. Attach an IAM instance profile that includes AmazonSSMManagedInstanceCore.
  5. Allow the outbound access Session Manager needs. Leave inbound application ports closed.
  6. 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:

sudo -iu 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.

sudo -iu ubuntu cat /home/ubuntu/.config/sushi-streamlit/access.json

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