cetinca commited on
Commit
9b8bd50
·
verified ·
1 Parent(s): 7873db9

Created test API

Browse files
Files changed (3) hide show
  1. app.py +3 -0
  2. requirements.txt +1 -0
  3. test_api.py +46 -0
app.py CHANGED
@@ -6,6 +6,9 @@ import gradio as gr
6
  from gradio import routes
7
  import spacy # noqa
8
  from typing import List, Type
 
 
 
9
 
10
  TOKENS2INT_ERROR_INT = 32202
11
 
 
6
  from gradio import routes
7
  import spacy # noqa
8
  from typing import List, Type
9
+ from dotenv import load_dotenv
10
+
11
+ load_dotenv()
12
 
13
  TOKENS2INT_ERROR_INT = 32202
14
 
requirements.txt CHANGED
@@ -2,3 +2,4 @@ spacy
2
  pandas
3
  pandas-gbq
4
  gradio>=3.0.2,<3.1.0
 
 
2
  pandas
3
  pandas-gbq
4
  gradio>=3.0.2,<3.1.0
5
+ python-dotenv
test_api.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """https://zetcode.com/python/concurrent-http-requests/"""
2
+
3
+
4
+ import asyncio
5
+ import random
6
+ import time
7
+
8
+ import httpx
9
+
10
+ local_url = "http://127.0.0.1:5000"
11
+ remote_url = "https://cetinca-mathtext-nlu.hf.space/run/text2int_preprocessed"
12
+ remote_url = "https://tangibleai-mathtext.hf.space/run/"
13
+ headers = {"Content-Type": "application/json; charset=utf-8"}
14
+ data_list = [
15
+ ["one hundred forty five"],
16
+ ["ninety nine"],
17
+ ["seventy three"],
18
+ ["one thousand seven hundred sixty nine"],
19
+ ]
20
+
21
+
22
+ # async call to endpoint
23
+ async def call_api(url, _data_list, number):
24
+ data = random.choice(_data_list)
25
+ json = {"data": data, "fn_index": 1}
26
+ async with httpx.AsyncClient() as client:
27
+ begin1 = time.time()
28
+ begin2 = time.perf_counter() # Used perf_counter for more precise result.
29
+ # print(f"Call {number} started on: {start} text: {data}")
30
+ response = await client.post(url=url, headers=headers, json=json, timeout=30)
31
+ print(response.status_code)
32
+ end1 = time.time()
33
+ end2 = time.perf_counter()
34
+ return f"Call_{number}: start: {begin1} end: {end1} delay: {end1 - begin1} with_time: {end2 - begin2}\n"\
35
+ f"input_text: {data} result: {response.json().get('data')}"
36
+
37
+
38
+ async def main(n):
39
+ calls = []
40
+ for num in range(n):
41
+ calls.append(call_api(remote_url, data_list, num))
42
+ r = await asyncio.gather(*calls)
43
+ print(*r, sep="\n")
44
+
45
+
46
+ asyncio.run(main(1))