File size: 2,923 Bytes
e848727
 
0efe9bb
1cefe99
e848727
c848c8f
5bba451
e848727
 
 
 
b463bee
e848727
 
191bc65
 
 
 
 
e848727
 
 
191bc65
 
 
 
e848727
 
 
 
b463bee
191bc65
 
1cefe99
dd18f0e
 
 
 
c848c8f
 
dd18f0e
 
c848c8f
 
dd18f0e
 
 
191bc65
1cefe99
191bc65
a2e4457
1cefe99
 
 
e848727
 
 
 
 
 
 
 
 
 
 
5bba451
 
 
 
 
 
 
 
 
 
 
e848727
 
 
 
 
 
 
 
 
 
 
 
 
191bc65
b463bee
e848727
 
 
 
 
 
5bba451
 
 
e848727
0efe9bb
5bba451
 
 
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
### 文言文翻译

import simplestart as ss
import requests
import json
##import mymodule as mm
import psutil


#函数部分
def mychange(event):
    ss.session.result = ""
    if event.index == 0:
        ss.session.prompt1 = "请将文言文拷贝到这里"
        data = mytext.data
        data["value"] = "子曰:温故而知新"
        mytext.data = data
        
        #mytext.value = "子曰:温故而知新" ### todo 随机
        ss.session.method = 0
    else:
        ss.session.prompt1 = "请将现代文拷贝到这里"
        data = mytext.data
        data["value"] = "谦虚使人进步,骄傲使人失败"
        mytext.data = data
        #mytext.value = "谦虚使人进步,骄傲使人失败" ### todo 随机
        ss.session.method = 1


def predict():
    ss.session.result = "稍安勿躁,服务器正在运算中..."
    ss.message(mytext.value)

    method = str(ss.session.method)

    input = mytext.value[:100].replace("\n", "")
    
    #本地模式
    ##response = mm.predict("'" + input + "'", ss.session.method)
    ##res = response.replace("<|endoftext|>", "")

    #服务器模式
    response = inference("'" + input + "'", method)
    res = response["processed_text"].replace("<|endoftext|>", "")
    
    myresult.value = res


def inference(input_text, method):
    #url = "http://0.0.0.0:8106/process"  # 假设POST请求的路径是 /process
    url = "https://test2023h5-fastapi-wyw.hf.space/process"
    data = {"text": input_text, "method": method}  # 将 input_text 和 method 作为 JSON 数据发送
    res = requests.post(url, json=data)  # 发送 POST 请求,传递 JSON 数据
    return res.json()  # 假设服务器返回 JSON 响应


def demo1(state, value):
    ss.session["result"] = ""
    ss.session["comment"] = ""
    
    if ss.session.method == 0:
        mytext.value = "己所不欲勿施于人"
    else:
        mytext.value = "谦虚使人进步"

def mem_info():
    # 获取内存信息
    mem_info = psutil.virtual_memory()

    # 剩余内存,单位为字节
    remaining_memory = mem_info.available

    # 将字节转换为更易读的单位(例如 GB)
    remaining_memory_gb = remaining_memory / (1024 ** 3)
    return remaining_memory_gb
    
#会话变量
ss.session.method = 0
ss.session.prompt1 = "请将文言文拷贝到这里"
ss.session.text = "子曰:温故而知新"

### UI部分
ss.write("### 😾 古文-现代文翻译演示")

myradio = ss.radio(["古文-现代文", "现代文-古文"], index=0, onchange=mychange)

ss.space()


mytext = ss.textarea("子曰:温故而知新", label="@prompt1")
myresult = ss.textarea("@result", label="翻译结果 (CPU服务器,10秒内出结果,稍安勿躁)")

ss.button("开始翻译", onclick = predict)

ss.space()

ss.write("---")

###剩余内存测试
remaining_memory_gb = mem_info()
ss.write(f"剩余内存: {remaining_memory_gb:.2f} GB")