Spaces:
Runtime error
Runtime error
File size: 4,962 Bytes
644c96b 86f2d3a 0c756f9 be5bcd1 5c60a64 877913f be5bcd1 644c96b 86f2d3a be5bcd1 86f2d3a 877913f 86f2d3a 877913f 5c60a64 644c96b 86f2d3a 877913f 86f2d3a 62a9f8b 86f2d3a c1fa828 86f2d3a c1fa828 86f2d3a be5bcd1 86f2d3a 877913f 0c756f9 877913f 0c756f9 be5bcd1 c1fa828 877913f c1fa828 644c96b 86f2d3a 644c96b 86f2d3a c1fa828 86f2d3a be5bcd1 86f2d3a 877913f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
import streamlit as st
from story_gen import StoryGenerator
import plotly.figure_factory as ff
import plotly.express as px
import random
import numpy as np
gen = StoryGenerator()
st.set_page_config(page_title='Storytelling ' +
u'\U0001F5BC', page_icon=u'\U0001F5BC', layout="wide")
if 'count' not in st.session_state or st.session_state.count == 6:
st.session_state.count = 0
st.session_state.chat_history_ids = None
st.session_state.old_response = ''
else:
st.session_state.count += 1
container_mode = st.sidebar.container()
container_guide = st.sidebar.container()
container_param = st.sidebar.container()
container_button = st.sidebar.container()
mode = container_mode.radio(
"Select your mode",
('Create Statistics', 'Play Storytelling'), index=0)
story_till_now = st.text_input(
label='First Sentence',
value=random.choice([
'Hello, I\'m a language model,',
'So I suppose you want to ask me how I did it.',
'I always wanted to be a giraffe - until that night.',
'My first tutor was a dragon with a terrible sense of humor.',
'Doctors told her she could never diet again.',
'Memory is all around us, as well as within.',
]))
num_generation = container_param.slider(
label='Number of generation', min_value=1, max_value=100, value=5, step=1)
length = container_param.slider(label='Length of the generated sentence',
min_value=1, max_value=100, value=10, step=1)
if mode == 'Create Statistics':
num_tests = container_param.slider(
label='Number of tests', min_value=1, max_value=1000, value=3, step=1)
reaction_weight_mode = container_param.select_slider(
"Reaction Weight w:", ["Random", "Fixed"])
if reaction_weight_mode == "Fixed":
reaction_weight = container_param.slider(
label='Reaction Weight w', min_value=0.0, max_value=1.0, value=0.5, step=0.01)
elif reaction_weight_mode == "Random":
reaction_weight = -1
if container_button.button('Analyse'):
gen.get_stats(story_till_now=story_till_now,
num_generation=num_generation, length=length, reaction_weight=reaction_weight, num_tests=num_tests)
# if len(gen.stories) > 0:
# for si, story in enumerate(gen.stories):
# st.markdown(f'### Story no. {si}:', unsafe_allow_html=False)
# st.markdown(story, unsafe_allow_html=False)
# data=gen.stats_df[gen.stats_df.sentence_no==3]
# fig = px.violin(data_frame=data, x="reaction_weight", y="num_reactions", hover_data=data.columns)
# st.plotly_chart(fig, use_container_width=True)
# fig2 = px.box(data_frame=data, x="reaction_weight", y="num_reactions", hover_data=data.columns)
# st.plotly_chart(fig2, use_container_width=True)
if len(gen.data) > 0:
for si, story in enumerate(gen.data):
st.markdown(f'### Story no. {si}:', unsafe_allow_html=False)
for i, sentence in enumerate(story):
col_sentence, col_emo = st.columns([3,1])
col_sentence.markdown(sentence['sentence'], unsafe_allow_html=False)
col_emo.markdown(f'{sentence["emotion"]} {np.round(sentence["confidence_score"], 3)}', unsafe_allow_html=False)
st.table(data=gen.stats_df, )
data=gen.stats_df[gen.stats_df.sentence_no==3]
fig = px.violin(data_frame=data, x="reaction_weight", y="num_reactions", hover_data=data.columns)
st.plotly_chart(fig, use_container_width=True)
fig2 = px.box(data_frame=data, x="reaction_weight", y="num_reactions", hover_data=data.columns)
st.plotly_chart(fig2, use_container_width=True)
else:
container_guide.markdown('### You selected statistics. Now set your parameters and click the `Analyse` button.')
elif mode == 'Play Storytelling':
# # , placeholder="Start writing your story...")
# story_till_now = st.text_input(
# label='First Sentence', value='Hello, I\'m a language model,')
# num_generation = st.sidebar.slider(
# label='Number of generation', min_value=1, max_value=100, value=10, step=1)
# length = st.sidebar.slider(label='Length of the generated sentence',
# min_value=1, max_value=100, value=20, step=1)
if container_button.button('Run'):
story_till_now, emotion = gen.story(
story_till_now, num_generation, length)
st.markdown(f'### Story')
st.text(story_till_now)
st.markdown(f'The last sentence has the "{emotion["label"]}" **Emotion** with a confidence score of {emotion["score"]}.')
else:
container_guide.markdown('### Write the first sentence and then hit the `Run` button')
# elif mode == 'Analyse Emotions':
# container_mode.write('Let\'s play storytelling.')
|