datien228 commited on
Commit
593b824
1 Parent(s): ea3cdf2

Change from ajax to javascript fetch

Browse files
Files changed (3) hide show
  1. app.py +5 -27
  2. requirements.txt +1 -1
  3. templates/index.html +42 -5
app.py CHANGED
@@ -1,13 +1,8 @@
1
- from flask import Flask, render_template, request, jsonify, make_response
2
  from modules.model import summarize
3
- from flask_cors import CORS, cross_origin
4
-
5
  import __main__
6
 
7
  app = Flask(__name__)
8
- CORS(app, supports_credentials=True)
9
- app.config['CORS_ALLOW_HEADERS'] = 'Content-Type'
10
- app.config['CORS_SUPPORTS_CREDENTIALS'] = 'True'
11
  # shortTokenizer = BartTokenizer.from_pretrained('sshleifer/distilbart-xsum-12-6')
12
  # shortModel = BartForConditionalGeneration.from_pretrained('sshleifer/distilbart-xsum-12-6')
13
 
@@ -19,43 +14,26 @@ def home():
19
  return render_template('index.html')
20
 
21
 
22
- @app.route('https://huggingface.co/spaces/datien228/text-summarizer/summarize', methods=['POST', 'OPTIONS'])
23
- @cross_origin()
24
  def recommend():
25
  if request.method == "POST":
26
  # Get form data
27
- request_data = request.get_json()
28
- input_text = request_data['input_text']
 
29
 
30
  # Call the function summarize to run the text summarization
31
  try:
32
  short_output_summary, long_output_summary = summarize(input_text)
33
  response = jsonify({'short': short_output_summary.strip(), 'long': long_output_summary.strip()})
34
  # Pass output summary to the output template
35
- response.headers.add('Access-Control-Allow-Origin', 'http://0.0.0.0:7860')
36
- response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization')
37
- response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
38
- response.headers.add('Access-Control-Allow-Credentials', 'true')
39
  return response
40
 
41
  except Exception as e:
42
  return render_template('index.html', query=e)
43
 
44
- elif request.method == "OPTIONS":
45
- response = make_response("OK")
46
- response.status_code = 201
47
- response.headers.add('Access-Control-Allow-Origin', 'http://0.0.0.0:7860')
48
- response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization')
49
- response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
50
- response.headers.add('Access-Control-Allow-Credentials', 'true')
51
- # Debug
52
- print("Right")
53
- return response
54
-
55
  pass
56
 
57
-
58
-
59
  def main():
60
  # app.config['TEMPLATES_AUTO_RELOAD'] = True
61
  # app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
 
1
+ from flask import Flask, render_template, request, jsonify
2
  from modules.model import summarize
 
 
3
  import __main__
4
 
5
  app = Flask(__name__)
 
 
 
6
  # shortTokenizer = BartTokenizer.from_pretrained('sshleifer/distilbart-xsum-12-6')
7
  # shortModel = BartForConditionalGeneration.from_pretrained('sshleifer/distilbart-xsum-12-6')
8
 
 
14
  return render_template('index.html')
15
 
16
 
17
+ @app.route('/summarize', methods=['GET', 'POST'])
 
18
  def recommend():
19
  if request.method == "POST":
20
  # Get form data
21
+ # request_data = request.args.get("input").get_json()
22
+ # input_text = request_data['input_text']
23
+ input_text = request.args.get("input")
24
 
25
  # Call the function summarize to run the text summarization
26
  try:
27
  short_output_summary, long_output_summary = summarize(input_text)
28
  response = jsonify({'short': short_output_summary.strip(), 'long': long_output_summary.strip()})
29
  # Pass output summary to the output template
 
 
 
 
30
  return response
31
 
32
  except Exception as e:
33
  return render_template('index.html', query=e)
34
 
 
 
 
 
 
 
 
 
 
 
 
35
  pass
36
 
 
 
37
  def main():
38
  # app.config['TEMPLATES_AUTO_RELOAD'] = True
39
  # app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
  torch==1.11.0
2
  Flask==2.1.0
3
  transformers==4.20.0
4
- flask_cors==3.0.10
 
1
  torch==1.11.0
2
  Flask==2.1.0
3
  transformers==4.20.0
4
+ # flask_cors==3.0.10
templates/index.html CHANGED
@@ -186,20 +186,56 @@
186
  }, 100);
187
 
188
  // ======= COMMUNICATE WITH FLSAK BACK END TO RUN ML TASK =======
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  $(document).on('submit', '#input_form', function (e) {
190
  var outputField = document.getElementById("output_text");
191
  var data = { "input_text": $("#input_text").val() };
192
  e.preventDefault();
193
  $.ajax({
194
  type: 'POST',
195
- url: 'https://huggingface.co/spaces/datien228/text-summarizer/summarize',
196
  data: JSON.stringify(data),
197
  contentType: "application/json",
198
  dataType: 'json',
199
- xhrFields: {
200
- withCredentials: true
201
- },
202
- crossDomain: true,
203
  beforeSend: function () {
204
  $("#check").attr('checked', false);
205
  $("#input_text").attr("readonly", true);
@@ -220,6 +256,7 @@
220
  },
221
  })
222
  });
 
223
 
224
  </script>
225
  </body>
 
186
  }, 100);
187
 
188
  // ======= COMMUNICATE WITH FLSAK BACK END TO RUN ML TASK =======
189
+
190
+ const translateText = async (jsonfile) => {
191
+ const inferResponse = await fetch(`/summarize?input=${jsonfile}`, {method: 'POST'});
192
+ const inferJson = await inferResponse.json();
193
+
194
+ return inferJson;
195
+ };
196
+
197
+ const textGenForm = document.querySelector('#input_form');
198
+
199
+ textGenForm.addEventListener('submit', async (event) => {
200
+ event.preventDefault();
201
+
202
+ const textGenParagraph = document.querySelector('#output_text');
203
+ const textGenInput = document.querySelector('#input_text');
204
+ $("#check").attr('checked', false);
205
+ $("#input_text").attr("readonly", true);
206
+ $(".summarize-button").hide();
207
+ $(".progress-icon").fadeIn();
208
+ $("#load-noti").fadeIn();
209
+
210
+ // var data = {"input_text": textGenInput.value};
211
+
212
+ try {
213
+ data_out = await translateText(textGenInput.value);
214
+ $("#check").attr('checked', true);
215
+ $("#input_text").attr("readonly", false);
216
+ $("#load-noti").text("Completed")
217
+ runOnce = true;
218
+ short_summary = data_out.short;
219
+ long_summary = data_out.long;
220
+ textGenParagraph.innerHTML = short_summary;
221
+
222
+ } catch (err) {
223
+ console.error(err);
224
+ }
225
+ });
226
+
227
+ /*
228
  $(document).on('submit', '#input_form', function (e) {
229
  var outputField = document.getElementById("output_text");
230
  var data = { "input_text": $("#input_text").val() };
231
  e.preventDefault();
232
  $.ajax({
233
  type: 'POST',
234
+ url: '/summarize',
235
  data: JSON.stringify(data),
236
  contentType: "application/json",
237
  dataType: 'json',
238
+
 
 
 
239
  beforeSend: function () {
240
  $("#check").attr('checked', false);
241
  $("#input_text").attr("readonly", true);
 
256
  },
257
  })
258
  });
259
+ */
260
 
261
  </script>
262
  </body>