Update app.py
Browse files
app.py
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
import gradio as gr
|
2 |
import requests
|
3 |
import json
|
@@ -5,6 +6,10 @@ import time
|
|
5 |
import random
|
6 |
import re
|
7 |
import os
|
|
|
|
|
|
|
|
|
8 |
|
9 |
elements = {'LEO_SOC': ('犯罪主體', 'Subject of Crime'),
|
10 |
'LEO_VIC': ('客體', 'Victim'),
|
@@ -130,57 +135,21 @@ def tag_in_color(tag_content, tag):
|
|
130 |
return parts
|
131 |
|
132 |
def le_tagger(content, tag):
|
133 |
-
|
134 |
-
|
135 |
-
url = f"{api_base_url}/generate"
|
136 |
-
list_url = f"{api_base_url}/tags"
|
137 |
-
headers = {
|
138 |
-
"Content-Type": "application/json"
|
139 |
-
}
|
140 |
random.seed(time.localtime(time.time())[5]) # 以時間為基礎的隨機種子
|
141 |
tag = tag # 傳進來的標籤英文字串,不含方括號。
|
142 |
prompt = get_prompt(content, tag, elements[tag][0]) # 將要標註的內以及提示詞組合成作業提示詞
|
143 |
-
ner_model_name = 'gemma2-ner:2b' # 已載入 Ollama 中的 LE-NER 模型名稱
|
144 |
-
data = {
|
145 |
-
"model": f"{ner_model_name}",
|
146 |
-
"prompt": f"{prompt}",
|
147 |
-
# "format": "json",
|
148 |
-
"options": {
|
149 |
-
"seed": 60,
|
150 |
-
"top_k": 50,
|
151 |
-
"top_p": 0.7,
|
152 |
-
"temperature": 0.9
|
153 |
-
},
|
154 |
-
"stream": False
|
155 |
-
}
|
156 |
loop_time = time.time()
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
print(f"{actual_response}\n") # 輸出含有標籤的回應內容
|
167 |
-
color_result = tag_in_color(actual_response, tag) # 將回應內容進行標籤標色
|
168 |
-
print(color_result) # 輸出有標色的結果
|
169 |
-
score = Jaccard(actual_response, tag) # 算分數
|
170 |
-
jaccard_score.append(score)
|
171 |
-
print(f"--- 執行耗時:{(time.time() - loop_time)}秒 ---\n")
|
172 |
-
# example_num = example_num + 1
|
173 |
-
else:
|
174 |
-
# 列出 Ollama 中已經安裝的模型名稱
|
175 |
-
print(f"Error:{response.status_code} {json.loads(response.text)['error']}")
|
176 |
-
response = requests.get(list_url, headers=headers, data=json.dumps(data))
|
177 |
-
response_text = response.text
|
178 |
-
# print(response_text)
|
179 |
-
data = json.loads(response_text)
|
180 |
-
actual_response = data["models"]
|
181 |
-
for _, model in enumerate(data["models"]):
|
182 |
-
print(model['name'])
|
183 |
-
print(f"--- 執行耗時:{(time.time() - loop_time)}秒 ---\n")
|
184 |
return color_result
|
185 |
|
186 |
examples = ["錢旺來雖明知不法犯罪集團經常使用人頭帳戶,向被害人施用詐術,藉此逃避檢警人員之追緝,並預見向其取得帳戶之人,會以該帳戶作為詐欺取財之不法所用,竟仍基於幫助詐欺之犯意,於民國106年1月11日某時,將其所申辦之上海商業銀行(下稱上海商銀)帳號00000000000000號帳戶之提款卡、密碼,以宅急便之方式,寄送予某真實姓名年籍不詳之詐欺集團成員,供該詐欺集團成員用於詐欺取財之犯行。嗣該詐欺集團成員即意圖為自己不法之所有,於106年1月13日18時許,撥打電話予洪菁霞,向洪菁霞佯稱係其友人,急需資金周轉,致洪菁霞陷於錯誤,於同日14時35分許,至台中市○區○○路000號之郵局,臨櫃匯款新臺幣(下同)10萬元至錢旺來前揭上海商銀帳戶內,隨即遭提領一空。",
|
|
|
1 |
+
import spaces
|
2 |
import gradio as gr
|
3 |
import requests
|
4 |
import json
|
|
|
6 |
import random
|
7 |
import re
|
8 |
import os
|
9 |
+
from transformers import pipeline
|
10 |
+
|
11 |
+
@spaces.GPU
|
12 |
+
pipe = pipeline("text-generation", model="jslin09/gemma2-2b-ner", device="cuda")
|
13 |
|
14 |
elements = {'LEO_SOC': ('犯罪主體', 'Subject of Crime'),
|
15 |
'LEO_VIC': ('客體', 'Victim'),
|
|
|
135 |
return parts
|
136 |
|
137 |
def le_tagger(content, tag):
|
138 |
+
jaccard_score = [] # 紀錄單篇的分數
|
139 |
+
score = ()
|
|
|
|
|
|
|
|
|
|
|
140 |
random.seed(time.localtime(time.time())[5]) # 以時間為基礎的隨機種子
|
141 |
tag = tag # 傳進來的標籤英文字串,不含方括號。
|
142 |
prompt = get_prompt(content, tag, elements[tag][0]) # 將要標註的內以及提示詞組合成作業提示詞
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
loop_time = time.time()
|
144 |
+
pipe_result = pipe(prompt, max_new_tokens=1200)
|
145 |
+
# print(f"Pipe的回應內容:\n{pipe_result[0]['generated_text'].split('標註結果:')[1]}")
|
146 |
+
actual_response = pipe_result[0]['generated_text']
|
147 |
+
# print(actual_response)
|
148 |
+
color_result = tag_in_color(actual_response, tag) # 將回應內容進行標籤標色
|
149 |
+
# print(color_result)
|
150 |
+
# score = Jaccard(actual_response, tag) # 算分數
|
151 |
+
# jaccard_score.append(score)
|
152 |
+
print(f"--- 執行耗時:{(time.time() - loop_time)}秒 ---\n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
return color_result
|
154 |
|
155 |
examples = ["錢旺來雖明知不法犯罪集團經常使用人頭帳戶,向被害人施用詐術,藉此逃避檢警人員之追緝,並預見向其取得帳戶之人,會以該帳戶作為詐欺取財之不法所用,竟仍基於幫助詐欺之犯意,於民國106年1月11日某時,將其所申辦之上海商業銀行(下稱上海商銀)帳號00000000000000號帳戶之提款卡、密碼,以宅急便之方式,寄送予某真實姓名年籍不詳之詐欺集團成員,供該詐欺集團成員用於詐欺取財之犯行。嗣該詐欺集團成員即意圖為自己不法之所有,於106年1月13日18時許,撥打電話予洪菁霞,向洪菁霞佯稱係其友人,急需資金周轉,致洪菁霞陷於錯誤,於同日14時35分許,至台中市○區○○路000號之郵局,臨櫃匯款新臺幣(下同)10萬元至錢旺來前揭上海商銀帳戶內,隨即遭提領一空。",
|