-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanonymizer_api_app.py
44 lines (32 loc) · 1.64 KB
/
anonymizer_api_app.py
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
from typing import List
import uvicorn
from fastapi import FastAPI
from text_anonymizer import TextAnonymizer
from text_anonymizer.models.api_models import AnonymizerApiRequest, AnonymizerApiResponse
anonymizer_api = FastAPI()
languages = ['fi']
debug = False
text_anonymizer = TextAnonymizer(languages=languages, debug_mode=debug)
@anonymizer_api.post("/anonymize")
def anonymize(request_data: AnonymizerApiRequest) -> AnonymizerApiResponse:
anonymizer_result = text_anonymizer.anonymize(request_data.text,
user_languages=request_data.languages,
user_recognizers=request_data.recognizers)
response: AnonymizerApiResponse = AnonymizerApiResponse()
response.anonymized_txt = anonymizer_result.anonymized_text
response.statistics = anonymizer_result.statistics
return response
@anonymizer_api.post("/anonymize_batch")
def anonymize_batch(request_data: List[AnonymizerApiRequest]) -> List[AnonymizerApiResponse]:
responses = []
for request in request_data:
anonymizer_result = text_anonymizer.anonymize(request.text,
user_languages=request.languages,
user_recognizers=request.recognizers)
response: AnonymizerApiResponse = AnonymizerApiResponse()
response.anonymized_txt = anonymizer_result.anonymized_text
response.statistics = anonymizer_result.statistics
responses.append(response)
return responses
if __name__ == "__main__":
uvicorn.run(anonymizer_api, host="0.0.0.0", port=8000)