|
import streamlit as st |
|
from Zmaker import Zmaker |
|
|
|
if __name__ == "__main__": |
|
|
|
|
|
with st.spinner(text = "loading GPT-2..."): |
|
if not ("AI" in st.session_state.keys()): |
|
st.session_state["AI"] = Zmaker( |
|
ft_path = "./models/" |
|
) |
|
|
|
|
|
with st.sidebar: |
|
st.title("GPT-2のパラメータ") |
|
|
|
|
|
sld_max_len = st.sidebar.slider( |
|
"length of the sentence", min_value = 0, max_value = 256, |
|
value = (25, 75), step = 1, key = "length" |
|
) |
|
|
|
|
|
sld_temp = st.sidebar.slider( |
|
"temperature", min_value = 0.1, max_value = 1.5, |
|
value = 0.1, step = 0.1, key = "temp" |
|
) |
|
|
|
|
|
sld_top_k = st.sidebar.slider( |
|
"top_k", min_value = 0, max_value = 500, |
|
value = 40, step = 1, key = "top_k" |
|
) |
|
|
|
|
|
sld_top_p = st.sidebar.slider( |
|
"top_p", min_value = 0.01, max_value = 1.0, |
|
value = 0.95, step = 0.01, key = "top_p" |
|
) |
|
|
|
|
|
sld_top_p = st.sidebar.slider( |
|
"repeat_ngram_size ", min_value = 1, max_value = 10, |
|
value = 1, step = 1, key = "repeat_ngram_size" |
|
) |
|
|
|
|
|
with st.form(key = "Letter Form", clear_on_submit = False): |
|
st.title("おてがみ 入力欄") |
|
body = st.empty() |
|
if ("letter_body" in st.session_state.keys()): |
|
ret = body.text_area( |
|
label = "おてがみを途中まで漢字+ひらがなで書くと続きをAIが生成します。"\ |
|
"生成できるのはおてがみ本文のみです。"\ |
|
"生成には数十秒~数分の時間がかかります。何卒ご了承ください。", |
|
value = st.session_state["letter_body"] |
|
) |
|
else: |
|
ret = body.text_area( |
|
label = "おてがみを途中まで漢字+ひらがなで書くと続きをAIが生成します。"\ |
|
"生成できるのはおてがみ本文のみです。"\ |
|
"生成には数十秒~数分の時間がかかります。何卒ご了承ください。", |
|
value = "ズッポシ村へようこそ!" |
|
) |
|
sub = st.form_submit_button("Generate") |
|
|
|
|
|
with st.expander("zupposhi_makerについて・注意事項"): |
|
st.markdown( |
|
""" |
|
このAIは教師データの作成に以下のサイトの情報を用いています。 |
|
- 稲葉百万鉄氏の[「どうぶつの森e+実況プレイ」](https://www.nicovideo.jp/mylist/45062007)において作成された文章 |
|
- mintmama氏の作成した[「ズッポシむら手紙集」](https://www.nicovideo.jp/series/85494) |
|
本ページのモデルおよび生成データの商用利用は禁止させていただきます。個人利用の範囲(趣味・研究など)でご使用ください。 |
|
|
|
また、以下の行為についても禁止とさせていただきます。 |
|
- フェイクニュース作成への利用 |
|
- わいせつ物の頒布 |
|
- その他犯罪行為への利用 |
|
本AIの詳細はエンジニア向け情報共有サービスzennにおいて[記事](https://zenn.dev/koujimachi2023/articles/b6bde79e73dd1d)としてまとめております。 |
|
不明点などありましたら、こちらの記事を参照ください。 |
|
|
|
""" |
|
) |
|
|
|
|
|
|
|
if sub == True: |
|
|
|
st.session_state["AI"].min_len = st.session_state["length"][0] |
|
st.session_state["AI"].max_len = st.session_state["length"][-1] |
|
st.session_state["AI"].top_k = st.session_state["top_k"] |
|
st.session_state["AI"].top_p = st.session_state["top_p"] |
|
st.session_state["AI"].temp = st.session_state["temp"] |
|
st.session_state["AI"].repeat_ngram_size = st.session_state["repeat_ngram_size"] |
|
|
|
|
|
with st.spinner(text = "generating..."): |
|
prompt = ret |
|
text = str(st.session_state["AI"].GenLetter("<s>"+prompt)[0]) |
|
text = text.replace('<s>', '') |
|
text = text.replace('</s>', '') |
|
st.session_state["letter_body"] = text |
|
st.experimental_rerun() |