File size: 3,494 Bytes
fc98ba7
 
 
 
3254981
fc98ba7
3254981
fc98ba7
9992e59
fc98ba7
9992e59
 
 
 
 
 
 
fc98ba7
 
 
 
 
9992e59
fc98ba7
 
 
9992e59
fc98ba7
 
 
 
 
 
 
 
311501a
fc98ba7
 
 
 
 
 
 
6662da1
fc98ba7
 
 
 
311501a
fc98ba7
9992e59
fc98ba7
9992e59
 
 
 
 
 
b160b58
 
 
 
 
 
 
 
 
 
fc98ba7
 
 
 
9992e59
 
 
 
 
 
 
 
 
 
 
fc98ba7
 
 
 
 
 
 
 
 
 
 
 
 
6662da1
9992e59
 
 
 
 
 
6662da1
 
9992e59
 
 
6662da1
9992e59
 
 
6662da1
9992e59
 
 
 
fc98ba7
9992e59
 
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# This file is .....
# Author: Hanbin Wang
# Date: 2023/4/18
import transformers
import streamlit as st
from PIL import Image

from transformers import RobertaTokenizer, T5ForConditionalGeneration
from transformers import pipeline

# @st.cache_resource
# def load_model(model_name):
#     # load model
#     model = T5ForConditionalGeneration.from_pretrained("E:\DenseRetrievalGroup\卢帅学长ckpt\py150_model\checkpoint")
#     # load tokenizer
#     tokenizer = RobertaTokenizer.from_pretrained("E:\DenseRetrievalGroup\卢帅学长ckpt\py150_model\checkpoint")
#     return model,tokenizer





def main():
    # `st.set_page_config` is used to display the default layout width, the title of the app, and the emoticon in the browser tab.

    st.set_page_config(
        layout="centered", page_title="MaMaL-Com Demo(代码补全)", page_icon="❄️"
    )

    c1, c2 = st.columns([0.32, 2])

    # The snowflake logo will be displayed in the first column, on the left.

    with c1:
        st.image(
            "./panda.png",
            width=100,
        )

    # The heading will be on the right.

    with c2:
        st.caption("")
        st.title("MaMaL-Gen(代码补全)")


    ############ SIDEBAR CONTENT ############

    st.sidebar.image("./panda.png",width=270)

    st.sidebar.markdown("---")

    st.sidebar.write(
    """
    # 使用方法:
    在【输入】文本框输入未完成的代码,点击【补全】按钮,即会显示补全的代码。
    """
    )

    st.sidebar.write(
    """
    ## 注意事项:
    1)APP托管在外网上,请确保您可以全局科学上网。
    
    2)您可以下载MaMaL-Gen模型,本地测试。(无需科学上网)
    """
    )

    # For elements to be displayed in the sidebar, we need to add the sidebar element in the widget.

    # We create a text input field for users to enter their API key.

    # API_KEY = st.sidebar.text_input(
    #     "Enter your HuggingFace API key",
    #     help="Once you created you HuggingFace account, you can get your free API token in your settings page: https://huggingface.co/settings/tokens",
    #     type="password",
    # )
    #
    # # Adding the HuggingFace API inference URL.
    # API_URL = "https://api-inference.huggingface.co/models/valhalla/distilbart-mnli-12-3"
    #
    # # Now, let's create a Python dictionary to store the API headers.
    # headers = {"Authorization": f"Bearer {API_KEY}"}


    st.sidebar.markdown("---")


    # Let's add some info about the app to the sidebar.

    st.sidebar.write(
    """
    App 由 东北大学NLP课小组成员创建, 使用 [Streamlit](https://streamlit.io/)🎈 和 [HuggingFace](https://huggingface.co/inference-api)'s [MaMaL-Gen](https://huggingface.co/hanbin/MaMaL-Gen) 模型.
    """
    )

   



    # model, tokenizer = load_model("hanbin/MaMaL-Gen")
    st.write("### 输入:")
    input = st.text_area("",height=200)
    button = st.button('补全')
    generator = pipeline('text-generation', model="hanbin/MaMaL-Com")
    output = generator(input)
    # code = '''def hello():
    #     print("Hello, Streamlit!")'''
    if button:
        st.write("### 输出:")
        st.code(output, language='python')
    else:
        st.write('请等待输出,如果长时间未输出,可能是您网络不通畅。也可能是我们并没有花钱购买服务器,用的是免费的服务器。您可以下载模型到本地测试~')




if __name__ == '__main__':

    main()