Spaces:
Runtime error
Runtime error
import numpy as np | |
import os | |
import streamlit as st | |
import sys | |
import urllib | |
import json | |
import torch | |
def generate(tokenizer, model, text, features): | |
generated = tokenizer("<|startoftext|> <|titlestart|>{}<|titleend|>".format(text), return_tensors="pt").input_ids | |
sample_outputs = model.generate( | |
generated, do_sample=True, top_k=50, | |
max_length=300, top_p=features['top_p'], temperature=features['t'] / 100.0, num_return_sequences=features['num'], | |
) | |
for i, sample_output in enumerate(sample_outputs): | |
decoded = tokenizer.decode(sample_output, skip_special_tokens=True).split(text)[1] | |
st.write(decoded) | |
def load_model(): | |
tokenizer = torch.load('./tokenizer.pt') | |
model = torch.load('./model.pt', map_location=torch.device('cpu')) | |
return tokenizer, model | |
def main(): | |
tokenizer, model = load_model() | |
st.title("YouTube comments generating project") | |
st.header('YouTube comments generator') | |
st.sidebar.title("Features") | |
seed = 27834096 | |
default_control_features = ["Количество комментариев", "Температура", "Top-p"] | |
control_features = default_control_features | |
# Insert user-controlled values from sliders into the feature vector. | |
features = { | |
"num": st.sidebar.slider("Количество комментариев", 0, 20, 1, 1), | |
"t": st.sidebar.slider("Температура", 0, 300, 180, 1), | |
"top_p": st.sidebar.slider("Top-p", 0, 100, 95, 5), | |
} | |
st.sidebar.title("Note") | |
st.sidebar.write( | |
""" | |
Изменяя значения, можно получить различные выводы модели | |
""" | |
) | |
st.sidebar.write( | |
""" | |
Значение температуры делится на 100 | |
""" | |
) | |
st.sidebar.caption(f"Streamlit version `{st.__version__}`") | |
with st.form(key='my_form'): | |
url = st.text_input('Введите url видео на YouTube') | |
st.form_submit_button('Готово!') | |
params = {"format": "json", "url": url} | |
base_url = "https://www.youtube.com/oembed" | |
query_string = urllib.parse.urlencode(params) | |
base_url = base_url + "?" + query_string | |
with urllib.request.urlopen(base_url) as response: | |
response_text = response.read() | |
data = json.loads(response_text.decode()) | |
st.write('Video Title: ' + data['title']) | |
st.video(url) | |
generate(tokenizer, model, data['title'], features) | |
if __name__ == "__main__": | |
main() | |