Spaces:
Sleeping
Sleeping
import streamlit as st | |
def show_text_generator(nlp_engine): | |
"""Display the text generation UI component""" | |
#st.markdown("✍🏻🪄") | |
st.title("Text Generation✍🏻🪄") | |
st.markdown(""" | |
Generate creative text completions using GPT-2. | |
This model can continue text from a prompt in a coherent and contextually relevant way. | |
""") | |
# Prompt input | |
prompt = st.text_area( | |
"Enter a prompt to continue", | |
"In a world powered by AI,", | |
height=100 | |
) | |
# Parameters | |
col1, col2 = st.columns(2) | |
with col1: | |
max_length = st.slider( | |
"Maximum Length (tokens)", | |
min_value=10, | |
max_value=200, | |
value=50, | |
step=5, | |
help="Maximum length of generated text in tokens (roughly words)" | |
) | |
with col2: | |
num_sequences = st.slider( | |
"Number of Completions", | |
min_value=1, | |
max_value=5, | |
value=1, | |
step=1, | |
help="Number of different completions to generate" | |
) | |
# Advanced options | |
with st.expander("Advanced Options"): | |
temperature = st.slider( | |
"Temperature", | |
min_value=0.1, | |
max_value=1.5, | |
value=1.0, | |
step=0.1, | |
help="Higher values make output more random, lower values more deterministic" | |
) | |
top_p = st.slider( | |
"Top-p (nucleus sampling)", | |
min_value=0.1, | |
max_value=1.0, | |
value=0.9, | |
step=0.1, | |
help="Limit tokens to the most likely ones covering top_p probability mass" | |
) | |
# Process button | |
if st.button("Generate Text"): | |
if not prompt: | |
st.error("Please provide a prompt.") | |
else: | |
with st.spinner("Generating text..."): | |
# Get generated text | |
# Note: The current NLPEngine implementation doesn't support temperature and top_p, | |
# but we're adding UI controls for future enhancement | |
generated_texts = nlp_engine.generate_text( | |
prompt, | |
max_length=max_length, | |
num_return_sequences=num_sequences | |
) | |
# Display results | |
st.markdown("### Generated Text") | |
for i, text in enumerate(generated_texts): | |
st.markdown(f"**Completion {i+1}:**") | |
st.markdown(f"{text['generated_text']}") | |
st.markdown("---") | |
# Example section | |
with st.expander("Example prompts to try"): | |
st.markdown(""" | |
### Creative Writing Prompts | |
- Once upon a time in a forest of talking animals, | |
- The abandoned spaceship contained a mysterious | |
- As the detective entered the room, he immediately noticed | |
- The secret to time travel was accidentally discovered by | |
### Business/Technical Prompts | |
- The future of artificial intelligence will transform industries by | |
- The main advantages of using cloud computing include | |
- To improve customer retention, companies should focus on | |
- The report outlines three key strategies for sustainable growth: | |
""") | |
# Information about the model | |
with st.expander("About this model"): | |
st.markdown(""" | |
**Model**: `gpt2` | |
GPT-2 is an autoregressive language model that uses transformer architecture to generate text. | |
- **Size**: 124M parameters (This is the smallest version of GPT-2) | |
- **Training**: Trained on a diverse dataset of internet text | |
- **Capabilities**: Text completion, story generation, question answering (to some extent) | |
The model predicts the next token based on all previous tokens in the sequence, allowing it to generate coherent and contextually relevant text continuations. | |
""") | |