Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,53 +1,39 @@
|
|
1 |
import streamlit as st
|
2 |
-
import pandas as pd
|
3 |
from transformers import pipeline, AutoTokenizer
|
4 |
import base64
|
5 |
|
6 |
-
# Load the
|
7 |
-
|
8 |
|
9 |
# Increase the maximum token limit
|
10 |
-
tokenizer = AutoTokenizer.from_pretrained("
|
11 |
-
|
12 |
|
13 |
-
# Function to generate
|
14 |
-
def
|
15 |
-
|
16 |
-
return
|
17 |
|
18 |
# Function to handle feedback and store it in a CSV file
|
19 |
def handle_feedback(feedback_data, feedback_file):
|
20 |
-
|
21 |
-
|
22 |
-
# Save the dataframe to the feedback CSV file
|
23 |
-
feedback_df.to_csv(feedback_file, mode='a', index=False, header=not st.session_state.feedback_csv_exists)
|
24 |
-
|
25 |
-
# Display a feedback collected message only if thumbs up or thumbs down is clicked
|
26 |
-
if 'π' in feedback_df['π'].values or 'π' in feedback_df['π'].values:
|
27 |
-
st.success("Feedback collected successfully!")
|
28 |
-
|
29 |
-
# Display a download button for the user
|
30 |
-
st.markdown(get_binary_file_downloader_html(feedback_file, 'Feedback Data'), unsafe_allow_html=True)
|
31 |
|
32 |
# Function to create a download link for a binary file
|
33 |
def get_binary_file_downloader_html(file_path, file_label):
|
34 |
-
|
35 |
-
file_content = file.read()
|
36 |
-
b64 = base64.b64encode(file_content).decode()
|
37 |
-
return f'<a href="data:file/csv;base64,{b64}" download="{file_label}.csv">Click here to download {file_label}</a>'
|
38 |
|
39 |
# Main Streamlit app
|
40 |
def main():
|
41 |
-
st.title("
|
42 |
|
43 |
-
# Input area for
|
44 |
-
|
45 |
|
46 |
-
# Button to generate
|
47 |
-
if st.button("Generate
|
48 |
-
|
49 |
-
st.subheader("Generated
|
50 |
-
st.write(
|
51 |
|
52 |
# Feedback section
|
53 |
st.subheader("Feedback:")
|
@@ -57,7 +43,7 @@ def main():
|
|
57 |
chosen = "π" if thumbs_up else None
|
58 |
rejected = "π" if thumbs_down else None
|
59 |
|
60 |
-
feedback_data.append((
|
61 |
|
62 |
# Handle feedback data
|
63 |
if feedback_data:
|
|
|
1 |
import streamlit as st
|
|
|
2 |
from transformers import pipeline, AutoTokenizer
|
3 |
import base64
|
4 |
|
5 |
+
# Load the GPT-2 text generation model from Hugging Face
|
6 |
+
text_generator = pipeline("text-generation", model="EleutherAI/gpt-neo-2.7B")
|
7 |
|
8 |
# Increase the maximum token limit
|
9 |
+
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-2.7B")
|
10 |
+
text_generator.model.config.max_position_embeddings = tokenizer.model_max_length
|
11 |
|
12 |
+
# Function to generate text using the GPT-2 model
|
13 |
+
def generate_text(prompt):
|
14 |
+
generated_text = text_generator(prompt, max_length=300, num_return_sequences=1, temperature=0.7)[0]['generated_text']
|
15 |
+
return generated_text
|
16 |
|
17 |
# Function to handle feedback and store it in a CSV file
|
18 |
def handle_feedback(feedback_data, feedback_file):
|
19 |
+
# Your existing feedback handling logic remains the same
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
# Function to create a download link for a binary file
|
22 |
def get_binary_file_downloader_html(file_path, file_label):
|
23 |
+
# Your existing file downloader logic remains the same
|
|
|
|
|
|
|
24 |
|
25 |
# Main Streamlit app
|
26 |
def main():
|
27 |
+
st.title("Text Generation with Feedback")
|
28 |
|
29 |
+
# Input area for prompt
|
30 |
+
prompt = st.text_area("Enter a prompt:", height=100)
|
31 |
|
32 |
+
# Button to generate text
|
33 |
+
if st.button("Generate Text"):
|
34 |
+
generated_text = generate_text(prompt)
|
35 |
+
st.subheader("Generated Text:")
|
36 |
+
st.write(generated_text)
|
37 |
|
38 |
# Feedback section
|
39 |
st.subheader("Feedback:")
|
|
|
43 |
chosen = "π" if thumbs_up else None
|
44 |
rejected = "π" if thumbs_down else None
|
45 |
|
46 |
+
feedback_data.append((prompt, generated_text, chosen, rejected))
|
47 |
|
48 |
# Handle feedback data
|
49 |
if feedback_data:
|