Geliştirilmiş olan BERT Base, Türkçe doğal dil işleme ile hakaret tespiti modelinin çeşitli uygulamalardaki kullanımını kolaylaştırmak amacıyla geliştirilmiş bir mikroservistir. Deployment işlemleri AWS EC2 üzerinden sağlanmaktadır.
Swagger dökümanına erişmek için tıklayınız
import requests
import pandas as pd
import datetime
def fetch_predictions(df: pd.DataFrame) -> pd.DataFrame:
"""
Sends a request to the TDDI-Model-Service prediction endpoint with a given DataFrame and retrieves the predictions for each text in the DataFrame.
Parameters
----------
df : pd.DataFrame
A DataFrame containing a 'text' column that includes the texts to be predicted.
Returns
-------
pd.DataFrame
A DataFrame that includes the original 'text' column, a new 'clean_text' column that includes the cleaned version of the texts,
and two new columns that include the predicted target class and whether the text is offensive or not.
Examples
--------
>>> import pandas as pd
>>> pd.DataFrame({'text': ['Bu bir örnek metindir.','Bu da bir örnek metin!']})
>>> result = get_predictions(df)
>>> print(result.head())
text target is_offensive
0 bu bir örnek metindir OTHER 0
1 bu da bir örnek metin OTHER 0
"""
print('Bağlantı kuruluyor..')
start_date = datetime.datetime.now()
api_url = "http://44.210.240.127/docs"
response = requests.post(api_url, json={"texts": list(df.text)})
end_date = datetime.datetime.now()
print(f'sonuc döndü bu dönüş: {end_date-start_date} zaman sürdü.')
predictions = response.json()['result']['model']
for i, prediction in enumerate(predictions):
df.at[i, 'target'] = prediction['prediction']
df.at[i, 'is_offensive'] = int(prediction['is_offensive'])
df['is_offensive'] = df['is_offensive'].astype(int)
return df
Lütfen Python sürümünüzü '3.10' olarak ayarlayın.
Python versiyonunuzdan emin olmak için:
python3 --version
- Virtual environment oluşturunuz.
$ python -m venv <venv-name>
- Virtual environmentınızı aktive ediniz.
$ source <venv-name>/bin/activate
- Kütüphaneleri Yükleyiniz.
$ pip install -r requirements.txt
Uygulamanın çalışması için gerekli adımlar tamamlanmıştır.
$ python3 main.py
App 5000 portunda çalışmaktadır.