Upload files to 'Streamlit'

update streamlit
This commit is contained in:
Dávid Omasta 2024-02-17 19:00:27 +00:00
parent 6e57cab13f
commit 24dc8fd808
3 changed files with 90 additions and 0 deletions

51
Streamlit/Dockerfile Normal file
View File

@ -0,0 +1,51 @@
FROM python:3.10-slim-bullseye AS base
WORKDIR /app
# Set utf-8 encoding for Python et al
ENV LANG=C.UTF-8 \
# Turn off writing .pyc files
PYTHONDONTWRITEBYTECODE=1 \
# Reduce the OS system calls for this tool it makes a difference
PYTHONUNBUFFERED=1 \
# Disables cache dir in pip
PIP_NO_CACHE_DIR=1 \
# Virtual environment
VENV="/opt/venv" \
# Add new user
APPUSER=appuser \
# Ensure that the python and pip executables used in the image
PATH="${VENV}/bin:$PATH"
FROM base as builder
COPY requirements.txt .
RUN apt-get update \
&& python -m venv ${VENV} \
&& . ${VENV}/bin/activate \
&& pip install --upgrade pip \
&& pip install -r requirements.txt
FROM base as runner
COPY aplication.py .
COPY --from=builder ${VENV} ${VENV}
ENV PATH="${VENV}/bin:$PATH"
# Update permissions & change user to not run as root
RUN chgrp -R 0 /app \
&& chmod -R g=u /app \
&& groupadd -r ${APPUSER} \
&& useradd -r -g ${APPUSER} ${APPUSER} \
&& chown -R ${APPUSER}:${APPUSER} /app \
&& usermod -d /app ${APPUSER}
#$HEALTHCHECK CMD curl --fail http://localhost/_stcore/health
CMD ["streamlit", "run", "aplication.py", "--server.address=0.0.0.0"]

36
Streamlit/aplication.py Normal file
View File

@ -0,0 +1,36 @@
import requests
import json
import streamlit as st
import os
from dotenv import load_dotenv
load_dotenv()
def predict(context,question):
url = os.getenv("URL")
#url = 'http://localhost:8090/predict'
data = {'context': context,'question': question}
json_data = json.dumps(data)
headers = {'Content-type': 'application/json'}
response = requests.post(url, data=json_data, headers=headers)
result = response.json()
return result
def main():
st.title("T5 model inference")
# Vytvoríme polia pre zadanie hodnôt
context = st.text_input("context:")
question = st.text_input("question:")
prediction = predict(context,question)
# Vytvoríme tlačidlo pre vykonanie akcie
if st.button("Execute"):
st.json({
'context': context,
'question': question,
'prediciton':prediction
})
if __name__ == "__main__":
main()

View File

@ -0,0 +1,3 @@
requests
streamlit
python-dotenv