jslin09 commited on
Commit
bc93013
·
verified ·
1 Parent(s): 1153244

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -47
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
- # api_base_url = "http://localhost:11434/api" # 本機端的 ollama
134
- api_base_url = os.environ.get("REMOTE_LLM_SERVER")
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
- jaccard_score = [] # 紀錄單篇的分數
158
- score = ()
159
- response = requests.post(url, headers=headers, data=json.dumps(data))
160
- if response.status_code == 200:
161
- print(f'構成要件要素標籤: {tag}\n構成要件要素:')
162
- response_text = response.text
163
- data = json.loads(response_text)
164
- # print(tokenizer.decode(data["context"])) # 全部內容,需要解碼,
165
- actual_response = data["response"] # 只有回應的內容,而且是文字形態,不必解碼。
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萬元至錢旺來前揭上海商銀帳戶內,隨即遭提領一空。",