diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..89c1a29 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,18 @@ +Contributing to AITD +========================== + +AITD is an opensource project from Commonwealth Bank of Australia(CBA) and H2O.ai under the Apache Software License V2. We welcome and encourage contributions of any kind. This is an early version of the project, focussing on the scoring pipeline. We'll be reguarly adding more features. You can contribute by improving the documentation, testing or adding new features to this project. Look for Issues and Roadmap to pick tasks of your choice to being contributing. + +## Bug Reports and Feature Requests + +Improvement of this project will be largely driven by finding, fixing bugs and implementing new features. If you are a user of AbuseTrack and need to reproduce bugs or issues, please open an issue on [GitHub issues](https://github.com/h2oai/AITD/issues). If you need more assistance, please email support@h2o.ai. + +## Code Contributions + +To contribute code, fork the AITD GitHub repo, create a branch for your work and when you're done, create a pull request. The code maintainers and owners will review tbe PR and approve. + + + + + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bb010b2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM python:3.8.16-slim-bullseye + +ENV USER=user \ + UID=1000 \ + HOME=/home/user +RUN adduser \ + --disabled-password \ + --gecos "Default user" \ + --uid ${UID} \ + --home ${HOME} \ + --force-badname \ + ${USER} + +COPY requirements.txt ./ + +RUN apt-get update -y && apt-get install -y \ + && pip3 install --no-cache-dir --no-deps -r requirements.txt \ + && rm -rf /usr/local/src/* + +ENV PYTHONPATH=${HOME} + +WORKDIR ${HOME} +USER ${NB_USER} + +# see src/backend/setup.txt to download the models +COPY models ./models +COPY data ./data +COPY src ./src diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..25ae411 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2418c68 --- /dev/null +++ b/README.md @@ -0,0 +1,173 @@ + +# Abuse in Transaction Description Detection (AITD) + + +Family and domestic violence is a critical global issue that affects millions, with the WHO reporting 1 in 3 women and 1 in 13 men worldwide have experiences physical violence in their lifetime. In Australia alone around 3.6 million people have experienced emotional abuse from a partner [[1]](#references). + +Technology-assisted abuse has been identified within financial institutions, where real-time transactions, typically of low value, were used as a form of communication. In some instances the communication was a targeted form of domestic and family violence. To tackle this problem, [Commonwealth Bank of Australia](https://www.commbank.com.au) (CommBank) experts have created novel AI methods to detect abuse in transactions and embedded it in their internal processes [[5]](https://www.commbank.com.au/articles/newsroom/2021/10/artificial-intelligence-detects-abusive-behaviour.html). The model is fully operational, detecting more than 1,500 cases per year [[2]](https://www.commbank.com.au/articles/newsroom/2023/08/next-chapter-nsw-police-pilot.html). + +Other financial institutions can benefit by reusing this approach and therefore CommBank collaborated with [H2O.ai](https://h2o.ai/) to create a version of the end-to-end pipeline and the model publicly. This is an open-source repository to ease adoption of abusive case detection for other organisations. The approach uses a combination of Machine Learning (ML), Natural Language Processing (NLP), pre-trained Large Language Models (LLM) on public data, text analysis, and elements of graph concepts to identify abusive relationships. The model was trained using labelled data of verified cases of high-risk abuse from CommBank. For a quick overview checkout the [H2O world presentation](https://www.youtube.com/watch?v=ScrsdEBW1gk) [[3]](#references) and more thorough overview of methodology please refer to CommBank's paper [Detection of Abuse in Financial Transaction Descriptions Using Machine Learning](https://doi.org/10.48550/arXiv.2303.08016). [[4]](#references) + + +### Getting Started + +The AITD pipeline has been tested on Linux and Mac based systems using CPU only and a combination of CPU and GPU. We do recommend running the feature transformation pipeline with GPUs to speed up the pipeline. More details on runtime is found below. + +#### Recommended Setup + +The recommended way to install AITD is using conda environment with Python 3.10 and download the required models. For ease of setup you can run: + +``` +# supports python 3.8/3.9/3.10 +bash ./setup.sh +``` + +This bash script will create a virtual environment called **aitd** with all the dependencies installed. It will also download all of the models needed to run the functions. + +Note: In order to run the H2O model, you will also need to satisfies the [Java requirements](https://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html#java-requirements) + + #### Docker Setup + +Alternatively, we have also created a Dockerfile. To build the docker container you could use the provided Dockerfile and run: + +``` +docker build -t aitd . && docker run -it aitd bash +``` + +#### Running the pipeline + +To run the AITD pipeline and score the model with your own data, you need to ensure your dataset contains the following columns named as listed. +- tx_description: transaction description +- sender_id: the identification of the sender who initiated the transaction, e.g. customer id +- receiver_id: The identification of the source who received the transaction, e.g. customer id +- tx_date: the date of the transaction +- amount: transaction amount + +If you want to score one month of data (the trasactions between the first and the last day of the corresponding month), you need to use model ```CBA_AITD_Short```. If your data span on three consecutive months, you need to use the model ```CBA_AITD_Long```. See [Model card](#model-card) for more detail. + +Please note: The current pipeline is built to score a month worth of data at a time. By default it will take the latest month as the score month. To ensure the feature set is properly created, please specify the score month in the transform function (see [end_to_end.ipynb](end_to_end.ipynb)). + +##### 1. Jupyter Notebook + +We have provided an example notebook [end_to_end.ipynb](end_to_end.ipynb) and an [example dataset](data/example_input.csv). You can also use this notebook to run the pipeline with your own data, all you need is to replace the example.csv file with your own data and ensure that the column names are consistent with the above. + +##### 2. Running end_to_end.py + +You can also run the whole pipeline by running the ```end_to_end.py``` function. To run you need to pass the input dataset (saved as a csv) and the output location as shown below. + +``` +conda activate aitd +python src/end_to_end.py -i -o -l -sm +``` + +Using the example dataset, run: + +```CBA_AITD_Long```: Default Model +``` +conda activate aitd +python end_to_end.py -i data/example_input.csv -o data/example_input_output.csv -m models/CBA_AITD_Long.zip +``` + +```CBA_AITD_Short```: You need to pass -m models/CBA_AITD_Short.zip and -l 0 +``` +conda activate aitd +python end_to_end.py -i data/example_input.csv -o data/example_input_output.csv -m models/CBA_AITD_Short.zip -l 0 +``` + +### Model card +There are two types of pre-trained models provided with this package located in [/models](/models): + + - ```CBA_AITD_Long```: The model is trained on 3 months of transactions and aims to detect prolonged high-risk abuse. + - ```CBA_AITD_Short``` : The model is trained on 1 month of transactions and aims to detect short-term abuse. + +For full details of these models please see [[4]](#references). + +### Custom Datasets Scoring + +#### Data preparation +To complete this process, get your transaction data cleaned and organise the dataset in the following format: + +Schema: | sender_id | receiver_id | transaction date | amount | transaction description | + +#### Feature Extraction + +The feature extraction follows these steps: + + 1. Generate NLP Features at the transaction level. It is executed by ```transform``` function in [transfer_predict.py](src/transform_predict.py). These features include: + + - Simple Text Features: length of the transaction description, number of words, case-based features, punctuation based features, the proportion of words to length of the description, whether numbers are present. + - Toxicity Features: Using the detoxify BERT-based model to get model scores for each transaction for toxicity, severe toxicity, obscene language, identity attack, insult, threat, sexually explicit. + - Emotion Features: Using the emotion detection BERT-based model to determine the emotion of the transaction description which can be either anger, fear, love, neutral, sadness, surprise, joy. + - Vadar Sentiment: Using NLTK Sentiment model VADAR (Valence Aware Dictionary for Sentiment Reasoning) to determine the sentiment (polarity and intensity of the emotion) of the transaction description, which can be either positive, negative, compound, and neutral. + + 2. Aggregate the NLP features to a relationship level (between a sender and a receiver) on a monthly basis. A range of different aggregations (mean, min, max, median etc) are used. Transaction and value based features also will be aggregated at this level. + + 3. Include the aggregated features that are calculated on the reciprocal response (replies of a relationship). + + 4. Add the Aggregated features for the previous two months, if you are using ```CBA_AITD_Long```. + + +### Model Training + +This library does not yet provide means for model training and uses the pre-trained model to calculate the probabilities on the customer dataset on how much abusive they are. + + +### Pipeline for Scoring Abusive Cases + +The following image shows the end-to-end pipeline for scoring cases of abuse in transaction description. + + + + + +#### Pipeline and Model Performance + +The performance of the models on the out-of-sample test set of the transaction descriptions collected within one month, which no overlap of this month of data with our training dataset, are as shown in the following tables. + +For the ```CBA_AITD_Long``` model, tested on features with 3-months of data. + +|Prec |Rec |F1 |AUC-PR|ROC AUC| +|- |- |- |- |- | +|0.678|0.738|0.703|0.570 |0.800 | + +For the ```CBA_AITD_Short``` model, tested on features with one month of data. + +|Prec |Rec |F1 |AUC-PR|ROC AUC| +|- |- |- |- |- | +|0.680|0.713|0.689|0.552 |0.790 | + +Runtime using CPU and GPU. + +|Hardware|No of transactions|Processing time| +|- |- | - | +|CPU | 100,000 |12 hours | +|GPU | 100,000 |20 minutes | +|GPU | 1,000,000 |3 hours 40 min | + +### Known Issues & Release Notes +- Currently this tool works within the boundaries of a calendar month. The future releases will incorporate different start and end dates. + +### References + + [1] Australian Institute of Health and Welfare. Family, domestic and sexual violence. Canberra: Australian Institute of Health and Welfare, 2023. Available from: [https://www.aihw.gov.au/reports/domestic-violence/family-domestic-and-sexual-violence](https://www.aihw.gov.au/reports/domestic-violence/family-domestic-and-sexual-violence) + + [2] Commonwealthbank of Autralia. CBA to launch police referral pilot in NSW to address technology-facilitated abuse, August 2023. Available from: [https://www.commbank.com.au/articles/newsroom/2023/08/next-chapter-nsw-police-pilot.html](https://www.commbank.com.au/articles/newsroom/2023/08/next-chapter-nsw-police-pilot.html) + + [3] Pizzato, L., Bansal, S., and Richards, G. Fighting Transactions Abuse Using Artificial Intelligence at H2O World Sydney 2022 - 14 Nov 2022. [https://youtu.be/ScrsdEBW1gk](https://youtu.be/ScrsdEBW1gk) + + [4] Leontjeva, A., Richards, G., Sriskandaraja, K., Perchman, J. and Pizzato, L. Detection of Abuse in Financial Transaction Descriptions Using Machine Learning. arXiv preprint arXiv:2303.08016. 10 Mar 2023. [https://doi.org/10.48550/arXiv.2303.08016](https://doi.org/10.48550/arXiv.2303.08016) + + [5] Commonwealthbank of Autralia. CBA introduces new artificial intelligence technology to detect abusive behaviour, October 2021. Available from: [https://www.commbank.com.au/articles/newsroom/2021/10/artificial-intelligence-detects-abusive-behaviour.html](https://www.commbank.com.au/articles/newsroom/2021/10/artificial-intelligence-detects-abusive-behaviour.html) + + +### Licence Information +Apache 2.0 + +### Version +0.1.0 + +### Contacts for support? Raise a github issue? +To raise any feedback or bugs, please raise a github issue for the repo or raise a ticket by sending an email to support@h2o.ai with the necessary details. + +### FAQ +To be filled based on feedback. diff --git a/data/example_input.csv b/data/example_input.csv new file mode 100644 index 0000000..9036277 --- /dev/null +++ b/data/example_input.csv @@ -0,0 +1,514 @@ +tx_description,sender_id,receiver_id,tx_date,amount +lunch,1,101,2023-02-13 02:03:15,1190.63 +dinner,1,101,2023-03-29 17:48:10,268.4 +gift,1,100,2023-01-20 17:41:33,1276.55 +rent,1,102,2023-01-17 08:13:35,1020.42 +rent,1,101,2023-01-17 15:45:40,983.1 +Payment for Lucy birthday,2,102,2023-01-02 23:51:39,834.3 +repaying loan,1,102,2023-03-10 22:39:23,808.32 +saving for house,2,101,2023-02-26 16:10:38,1242.26 +Birthday surprise,1,102,2023-01-21 11:42:53,1308.43 +rent,1,101,2023-03-08 20:24:27,1350.01 +rent Brisbane,2,102,2023-03-08 01:39:12,582.12 +I love you,2,100,2023-03-04 13:03:07,1196.95 +I love you,2,102,2023-03-26 02:50:19,1325.93 +rent,2,101,2023-01-03 03:52:01,1165.63 +Online Mobile Re-charge,2,100,2023-02-26 10:01:25,5.46 +school lunches,2,102,2023-03-27 03:53:25,565.63 +phone bill,1,101,2023-03-03 18:26:03,259.07 +joint account,1,100,2023-03-25 15:16:16,851.48 +recipt 768893333,1,100,2023-01-25 16:53:25,1463.63 +Mackay West State School School Uniforms Richards,1,102,2023-03-19 09:53:54,434.86 +Mackay West State School School Uniforms Ryan,1,101,2023-01-12 03:32:30,944.15 +Mackay West State School School Uniforms James,1,100,2023-01-02 15:26:45,944.61 +school uniforms ,1,101,2023-03-02 03:35:12,802.32 +Fucking good night,2,101,2023-02-11 02:29:42,1389.55 +ILY xxxoooo,2,101,2023-02-22 14:33:36,670.44 +lunch,1,100,2023-01-25 16:20:57,1334.14 +Happy Birthday B**ch,1,101,2023-02-28 13:56:54,1056.85 +BFF4LYF LYSFM <3<3<3Happy Birthday,1,100,2023-02-20 05:50:51,163.07 +lunch friday,2,100,2023-03-29 08:23:10,563.45 +coffee,2,100,2023-03-06 20:34:33,1430.05 +friday dinner,2,102,2023-01-09 17:16:20,926.51 +repayment groceries,2,100,2023-02-01 19:04:22,441.5 +savings holiday,1,100,2023-03-29 06:10:38,452.47 +Groceries,1,101,2023-02-15 03:08:09,1105.64 +Savings,1,102,2023-01-02 08:10:44,971.5 +Hey whats going on?,1,101,2023-02-19 09:25:09,1412.06 +LOVE you,1,101,2023-03-20 12:17:25,511.98 +lol,2,100,2023-02-24 10:38:03,1492.25 +thanks for lunch,2,102,2023-02-14 05:09:19,1049.24 +rent,2,100,2023-02-03 01:29:31,623.73 +savings,2,102,2023-03-12 11:13:35,464.78 +greece,1,100,2023-02-22 19:45:18,28.77 +BBQ money,1,101,2023-02-25 11:58:35,163.0 +Happy Birthday,2,101,2023-01-20 23:13:25,936.03 +loan for mum,1,101,2023-03-15 20:55:03,805.78 +loan 20000,1,100,2023-01-06 11:21:01,547.82 +repayments for loan,1,101,2023-03-23 17:25:29,888.05 +repayments 1/7,2,100,2023-03-21 10:07:36,104.77 +repayments 20,2,102,2023-02-28 01:22:25,1273.28 +Bali here I come 1/7,1,102,2023-03-19 19:40:17,464.42 +Coloradoro here I come 1/7,1,101,2023-03-11 03:21:17,441.94 +Bill pay for Water supply,1,100,2023-02-19 12:56:34,690.89 +Billsssssss,1,101,2023-03-08 22:00:02,1454.4 +uuuhhhhhh so broke,1,100,2023-03-27 04:50:01,840.58 +transfer for hockey,2,101,2023-02-18 17:19:11,1052.4 +kids sports uniforms,1,101,2023-03-30 16:18:45,563.16 +child support,2,101,2023-03-03 16:19:09,1428.93 +Thanks baby,1,102,2023-02-07 05:02:44,329.77 +Thanks baby,2,102,2023-02-18 11:24:23,800.75 +Child Support,2,100,2023-03-04 01:34:41,1405.8 +Support,2,102,2023-03-21 21:56:36,647.25 +Dont spend it all at one Jonny,2,100,2023-03-11 20:36:27,1442.13 +Dont spend it all at one Lucas,1,101,2023-02-27 18:41:43,1132.27 +Dont spend it all at one Lachlan,2,101,2023-01-24 08:15:43,608.27 +"Hey, :):):)):):):):):)",1,101,2023-02-25 07:10:01,1075.76 +"Hey, lets meet at the front of coles at 5:00pm?",1,101,2023-01-28 03:22:20,782.51 +Bobby,2,101,2023-02-08 15:00:37,794.34 +coffee runs x,2,100,2023-01-21 05:25:58,219.18 +Vacations,1,100,2023-02-18 14:26:28,492.01 +bpay,1,100,2023-01-27 08:08:27,842.09 +to buy stocks,1,102,2023-02-07 00:09:15,243.19 +coffee,2,102,2023-02-07 05:45:22,47.1 +fuel,2,100,2023-03-12 03:02:32,663.27 +:D love love love ,2,102,2023-02-13 14:20:52,1342.09 +so good to see you xoxox,1,101,2023-02-22 04:57:12,580.18 +Gen Rent,2,101,2023-03-02 21:33:52,1054.33 +Gift Jonny,1,102,2023-03-02 01:19:04,127.62 +Hey houw are you,2,101,2023-03-23 04:13:54,761.01 +You are the bestest person ever,2,100,2023-03-08 17:31:07,215.7 +rent portion,2,102,2023-02-08 03:31:23,359.64 +Payment for car,1,102,2023-02-07 00:54:17,897.26 +repayment,1,101,2023-03-14 21:25:04,1462.78 +Household bills,1,101,2023-02-27 06:32:58,407.2 +grocery share,2,102,2023-03-10 23:18:14,1431.11 +transfer joint,2,101,2023-03-04 20:01:03,1180.98 +lunch,2,101,2023-03-25 10:54:40,1262.86 +dinner,2,102,2023-02-08 01:22:47,912.91 +gift,1,100,2023-03-01 20:52:24,1053.44 +rent,2,101,2023-01-11 06:57:44,903.4 +rent,1,100,2023-03-21 03:42:02,68.45 +Payment for Lucy birthday,1,100,2023-01-10 13:42:19,1459.87 +repaying loan,2,102,2023-02-22 18:25:49,789.78 +saving for house,2,101,2023-02-19 17:57:44,305.98 +Birthday surprise,1,101,2023-02-03 19:58:43,759.19 +rent,2,100,2023-01-05 17:48:38,885.01 +rent Brisbane,1,102,2023-03-11 03:30:18,1089.73 +I love you,2,100,2023-03-06 14:17:25,1207.66 +I love you,1,102,2023-02-24 16:31:05,707.46 +rent,1,102,2023-01-13 17:54:00,468.21 +Online Mobile Re-charge,1,102,2023-03-09 15:05:43,821.66 +school lunches,2,100,2023-03-24 05:10:35,1492.48 +phone bill,1,102,2023-01-26 09:14:00,343.28 +joint account,1,100,2023-03-13 12:39:33,589.09 +recipt 768893333,1,100,2023-02-25 14:37:18,1398.16 +Mackay West State School School Uniforms Richards,1,102,2023-02-11 13:43:12,649.17 +Mackay West State School School Uniforms Ryan,1,102,2023-01-27 11:38:58,707.83 +Mackay West State School School Uniforms James,1,100,2023-03-16 06:48:13,1390.08 +school uniforms ,2,101,2023-03-24 02:39:48,827.77 +Fucking good night,2,101,2023-03-24 17:12:24,1409.54 +ILY xxxoooo,1,101,2023-03-26 08:01:16,279.15 +lunch,1,101,2023-01-22 14:37:57,846.14 +Happy Birthday B**ch,1,100,2023-02-24 06:57:53,79.78 +BFF4LYF LYSFM <3<3<3Happy Birthday,1,101,2023-03-07 22:41:40,9.85 +lunch friday,1,100,2023-03-24 11:44:45,1022.17 +coffee,2,101,2023-02-24 23:30:37,895.27 +friday dinner,1,100,2023-01-22 08:48:13,1190.06 +repayment groceries,1,102,2023-01-13 10:48:16,174.38 +savings holiday,2,101,2023-02-02 18:12:24,139.61 +Groceries,2,102,2023-02-18 23:48:23,884.14 +Savings,2,102,2023-03-13 08:42:10,310.53 +Hey whats going on?,2,100,2023-01-09 10:03:01,540.7 +LOVE you,1,101,2023-03-05 06:39:23,823.41 +lol,1,102,2023-02-16 04:12:03,1320.33 +thanks for lunch,2,101,2023-02-17 16:53:52,1368.41 +rent,2,100,2023-01-08 06:20:51,1382.25 +savings,2,100,2023-02-19 14:45:19,18.17 +greece,1,102,2023-02-20 08:58:17,1446.74 +BBQ money,1,101,2023-03-07 08:48:09,290.02 +Happy Birthday,1,100,2023-02-15 14:59:35,1035.33 +loan for mum,1,101,2023-01-19 00:28:27,796.52 +loan 20000,2,100,2023-02-11 15:03:00,4.84 +repayments for loan,1,101,2023-02-01 09:49:02,538.31 +repayments 1/7,1,100,2023-03-23 03:11:14,1227.1 +repayments 20,2,101,2023-03-07 14:39:17,85.84 +Bali here I come 1/7,2,102,2023-02-16 15:39:32,165.63 +Coloradoro here I come 1/7,1,101,2023-03-28 22:04:29,983.09 +Bill pay for Water supply,1,102,2023-03-13 08:18:55,271.12 +Billsssssss,2,101,2023-01-26 04:59:03,548.9 +uuuhhhhhh so broke,1,101,2023-03-29 03:18:19,161.44 +transfer for hockey,2,101,2023-01-04 23:06:31,316.16 +kids sports uniforms,1,100,2023-03-30 02:48:17,1003.59 +child support,1,101,2023-02-02 07:45:14,1137.8 +Thanks baby,1,101,2023-02-22 22:40:56,734.66 +Thanks baby,2,102,2023-02-26 23:29:41,755.55 +Child Support,1,101,2023-02-04 06:02:23,346.77 +Support,2,102,2023-01-21 10:52:13,868.04 +Dont spend it all at one Jonny,1,100,2023-02-05 23:59:53,890.03 +Dont spend it all at one Lucas,1,100,2023-01-11 02:29:19,197.23 +Dont spend it all at one Lachlan,1,100,2023-03-06 22:01:29,1387.67 +"Hey, :):):)):):):):):)",2,101,2023-01-18 20:28:38,962.42 +"Hey, lets meet at the front of coles at 5:00pm?",2,102,2023-03-07 11:02:35,1122.6 +Bobby,2,100,2023-03-01 13:12:54,1406.44 +coffee runs x,1,102,2023-01-27 22:47:13,814.6 +Vacations,1,100,2023-01-24 15:40:25,237.32 +bpay,2,102,2023-02-11 15:08:47,45.81 +to buy stocks,2,102,2023-02-03 14:39:12,958.27 +coffee,2,100,2023-01-31 06:18:36,265.09 +fuel,2,101,2023-02-09 14:25:29,1144.27 +:D love love love ,1,101,2023-03-02 18:44:51,875.39 +so good to see you xoxox,1,100,2023-02-09 15:48:10,1010.64 +Gen Rent,1,102,2023-03-23 10:43:51,898.06 +Gift Jonny,2,100,2023-01-12 22:30:05,260.25 +Hey houw are you,2,101,2023-02-08 00:36:50,1180.13 +You are the bestest person ever,1,102,2023-03-05 13:20:03,1102.32 +rent portion,1,102,2023-01-25 01:13:20,1232.63 +Payment for car,1,102,2023-03-15 01:41:43,424.07 +repayment,1,100,2023-02-11 18:30:04,646.21 +Household bills,1,101,2023-01-14 14:11:26,948.72 +grocery share,2,101,2023-02-23 17:19:12,581.73 +transfer joint,2,101,2023-02-25 08:05:17,1452.41 +lunch,2,101,2023-03-08 10:10:04,288.79 +dinner,1,102,2023-01-29 23:42:08,307.3 +gift,1,101,2023-02-06 17:01:26,920.83 +rent,2,100,2023-01-12 16:49:22,152.6 +rent,2,102,2023-01-21 02:04:33,310.45 +Payment for Lucy birthday,1,101,2023-02-12 18:07:48,1264.28 +repaying loan,2,101,2023-01-19 18:00:55,1495.97 +saving for house,1,102,2023-03-16 15:13:22,446.07 +Birthday surprise,1,101,2023-03-11 06:23:56,1420.17 +rent,2,100,2023-01-09 22:14:54,771.67 +rent Brisbane,2,102,2023-01-11 02:17:21,535.9 +I love you,1,102,2023-02-15 23:40:51,111.86 +I love you,1,100,2023-03-29 12:54:28,425.17 +rent,2,101,2023-01-16 05:30:48,67.42 +Online Mobile Re-charge,1,100,2023-02-18 01:18:56,854.64 +school lunches,1,101,2023-02-01 22:51:48,933.09 +phone bill,1,100,2023-01-03 09:51:24,793.7 +joint account,1,100,2023-02-18 23:11:43,680.6 +recipt 768893333,1,102,2023-02-04 04:50:38,1068.18 +Mackay West State School School Uniforms Richards,2,102,2023-01-03 09:31:51,1284.79 +Mackay West State School School Uniforms Ryan,1,101,2023-03-09 04:02:24,770.08 +Mackay West State School School Uniforms James,1,101,2023-03-09 07:59:59,300.54 +school uniforms ,1,102,2023-01-22 01:08:51,858.26 +Fucking good night,1,102,2023-02-02 19:44:25,283.51 +ILY xxxoooo,2,101,2023-02-12 10:20:40,294.44 +lunch,1,102,2023-01-11 07:10:58,1264.94 +Happy Birthday B**ch,1,102,2023-01-22 01:18:20,718.16 +BFF4LYF LYSFM <3<3<3Happy Birthday,1,101,2023-01-28 04:05:14,1021.29 +lunch friday,2,100,2023-01-08 23:15:22,453.57 +coffee,2,101,2023-01-31 21:07:39,1356.01 +friday dinner,2,102,2023-02-07 05:31:23,29.3 +repayment groceries,1,102,2023-02-07 00:36:04,247.55 +savings holiday,2,102,2023-01-27 10:43:58,894.3 +Groceries,1,101,2023-02-01 14:24:34,893.51 +Savings,1,100,2023-01-12 08:33:05,365.69 +Hey whats going on?,1,102,2023-01-25 18:52:24,1203.33 +LOVE you,1,101,2023-01-09 01:37:24,295.66 +lol,2,102,2023-02-08 14:44:14,832.64 +thanks for lunch,2,102,2023-03-25 18:25:04,613.4 +rent,2,100,2023-03-04 00:38:14,300.28 +savings,2,100,2023-01-06 00:13:25,851.64 +greece,1,100,2023-02-14 21:04:07,430.83 +BBQ money,1,102,2023-03-28 02:25:49,488.4 +Happy Birthday,1,102,2023-02-28 06:18:11,850.34 +loan for mum,2,100,2023-02-04 12:07:13,439.99 +loan 20000,1,100,2023-03-27 17:47:20,588.22 +repayments for loan,1,102,2023-03-18 00:13:31,959.23 +repayments 1/7,1,100,2023-02-24 15:34:30,322.46 +repayments 20,2,100,2023-01-05 21:40:14,447.2 +Bali here I come 1/7,1,102,2023-03-01 03:12:05,297.63 +Coloradoro here I come 1/7,2,102,2023-03-01 07:33:00,213.96 +Bill pay for Water supply,2,102,2023-02-10 03:51:15,1085.41 +Billsssssss,2,102,2023-03-23 17:12:33,890.49 +uuuhhhhhh so broke,2,102,2023-01-12 00:03:18,1360.57 +transfer for hockey,2,102,2023-02-17 21:13:59,407.37 +kids sports uniforms,1,100,2023-02-14 08:23:12,832.95 +child support,2,100,2023-02-24 13:07:23,59.71 +Thanks baby,2,102,2023-02-20 17:40:51,882.01 +Thanks baby,1,100,2023-02-02 05:27:45,434.08 +Child Support,2,101,2023-01-04 02:04:22,1329.91 +Support,2,102,2023-01-10 20:54:05,1430.68 +Dont spend it all at one Jonny,1,100,2023-03-18 05:53:27,698.56 +Dont spend it all at one Lucas,2,101,2023-01-03 00:49:20,870.8 +Dont spend it all at one Lachlan,1,102,2023-02-19 13:50:28,732.32 +"Hey, :):):)):):):):):)",2,101,2023-03-19 14:42:43,997.27 +"Hey, lets meet at the front of coles at 5:00pm?",2,101,2023-02-02 10:10:10,1125.93 +Bobby,1,102,2023-01-30 17:29:53,568.3 +coffee runs x,1,102,2023-01-26 16:30:10,1200.08 +Vacations,1,100,2023-01-31 17:23:45,143.62 +bpay,1,100,2023-01-12 14:52:34,717.55 +to buy stocks,2,100,2023-02-28 10:06:37,1324.65 +coffee,1,101,2023-02-25 01:46:16,1017.12 +fuel,2,100,2023-03-22 16:54:15,1407.27 +:D love love love ,2,101,2023-03-25 06:02:58,517.94 +so good to see you xoxox,1,101,2023-01-02 07:22:35,1247.2 +Gen Rent,2,101,2023-01-19 00:08:20,859.1 +Gift Jonny,2,100,2023-02-06 14:32:38,774.35 +Hey houw are you,1,101,2023-03-06 20:02:53,1088.83 +You are the bestest person ever,1,100,2023-02-28 01:29:14,1417.96 +rent portion,2,100,2023-03-26 08:14:14,572.35 +Payment for car,2,100,2023-02-25 07:41:42,943.8 +repayment,1,101,2023-02-05 05:37:13,1070.16 +Household bills,2,101,2023-03-29 13:33:15,352.45 +grocery share,1,101,2023-02-24 16:16:45,759.88 +transfer joint,2,101,2023-01-13 19:55:47,731.98 +lunch,2,100,2023-01-28 02:33:49,178.91 +dinner,2,101,2023-03-13 10:12:03,814.64 +gift,1,102,2023-01-20 22:04:43,383.41 +rent,2,102,2023-01-07 19:56:24,343.48 +rent,1,102,2023-03-14 07:24:00,472.52 +Payment for Lucy birthday,1,102,2023-02-16 11:27:16,694.05 +repaying loan,2,100,2023-02-18 12:49:30,619.61 +saving for house,2,102,2023-01-23 09:16:38,1078.6 +Birthday surprise,1,101,2023-01-06 05:47:21,119.04 +rent,2,102,2023-02-17 06:13:14,214.45 +rent Brisbane,1,100,2023-03-30 14:11:46,1461.99 +I love you,2,101,2023-01-08 19:26:29,392.49 +I love you,2,101,2023-03-25 13:54:17,634.98 +rent,1,100,2023-02-23 05:12:54,153.92 +Online Mobile Re-charge,1,101,2023-02-23 09:31:08,1123.23 +school lunches,2,101,2023-03-16 15:06:00,938.87 +phone bill,2,102,2023-03-13 03:16:02,112.57 +joint account,1,101,2023-03-24 06:08:33,465.41 +recipt 768893333,2,100,2023-03-18 15:33:51,770.0 +Mackay West State School School Uniforms Richards,1,101,2023-01-03 04:17:03,470.03 +Mackay West State School School Uniforms Ryan,2,100,2023-02-14 03:04:04,1102.97 +Mackay West State School School Uniforms James,1,101,2023-02-23 16:24:13,1209.86 +school uniforms ,1,100,2023-03-16 16:52:35,1318.5 +Fucking good night,1,102,2023-01-31 01:41:30,1320.75 +ILY xxxoooo,2,102,2023-01-06 16:16:14,816.19 +lunch,2,100,2023-02-17 06:16:47,1460.33 +Happy Birthday B**ch,1,100,2023-02-13 23:47:37,785.65 +BFF4LYF LYSFM <3<3<3Happy Birthday,2,101,2023-01-31 12:25:06,321.6 +lunch friday,2,101,2023-03-08 21:24:50,1386.73 +coffee,1,101,2023-03-20 19:03:23,1379.02 +friday dinner,2,100,2023-02-27 11:21:10,108.31 +repayment groceries,1,101,2023-02-12 23:27:27,260.65 +savings holiday,1,101,2023-01-21 00:35:22,474.64 +Groceries,1,100,2023-01-11 00:10:26,1022.39 +Savings,2,101,2023-01-13 23:25:58,3.75 +Hey whats going on?,2,101,2023-03-06 14:18:28,333.28 +LOVE you,2,100,2023-01-07 19:06:15,803.83 +lol,2,101,2023-03-09 16:12:16,102.55 +thanks for lunch,1,100,2023-03-30 01:18:12,959.91 +rent,1,102,2023-02-21 17:38:12,1421.16 +savings,2,102,2023-01-18 10:08:28,112.37 +greece,2,102,2023-03-14 02:28:58,308.27 +BBQ money,1,102,2023-03-23 07:06:11,1012.83 +Happy Birthday,1,100,2023-01-06 04:09:43,484.22 +loan for mum,1,102,2023-01-01 18:52:45,858.32 +loan 20000,1,102,2023-01-16 19:15:12,1155.22 +repayments for loan,1,100,2023-03-04 04:23:03,760.31 +repayments 1/7,1,100,2023-02-04 02:55:34,373.18 +repayments 20,2,100,2023-02-15 13:47:26,1.14 +Bali here I come 1/7,2,100,2023-03-27 08:24:40,1043.93 +Coloradoro here I come 1/7,1,101,2023-03-22 20:28:12,765.56 +Bill pay for Water supply,2,101,2023-03-24 12:31:38,137.15 +Billsssssss,1,100,2023-02-05 22:14:17,420.11 +uuuhhhhhh so broke,1,100,2023-03-23 19:05:48,293.62 +transfer for hockey,2,100,2023-02-13 08:35:47,969.3 +kids sports uniforms,1,102,2023-02-20 22:57:56,595.88 +child support,1,102,2023-01-12 02:29:30,763.78 +Thanks baby,1,102,2023-02-05 23:44:10,753.65 +Thanks baby,1,102,2023-02-19 00:45:02,909.32 +Child Support,1,101,2023-03-12 16:09:37,998.27 +Support,1,102,2023-01-05 02:34:32,1299.06 +Dont spend it all at one Jonny,2,100,2023-01-24 06:29:17,1109.86 +Dont spend it all at one Lucas,2,100,2023-01-29 11:29:16,1234.17 +Dont spend it all at one Lachlan,1,102,2023-03-30 16:14:22,741.14 +"Hey, :):):)):):):):):)",2,102,2023-03-03 11:16:08,992.46 +"Hey, lets meet at the front of coles at 5:00pm?",2,100,2023-03-19 14:45:48,344.49 +Bobby,1,101,2023-01-13 01:29:16,1474.1 +coffee runs x,2,102,2023-02-07 19:31:03,440.46 +Vacations,1,101,2023-03-21 13:48:04,962.37 +bpay,1,101,2023-03-14 04:41:20,574.15 +to buy stocks,2,102,2023-03-22 12:21:31,1236.29 +coffee,2,101,2023-01-29 06:03:18,352.55 +fuel,2,100,2023-01-15 19:44:23,1170.08 +:D love love love ,1,102,2023-03-26 10:59:53,726.79 +so good to see you xoxox,2,100,2023-03-25 15:13:21,286.01 +Gen Rent,2,100,2023-03-20 08:12:57,210.69 +Gift Jonny,2,100,2023-01-07 19:57:23,943.42 +Hey houw are you,1,100,2023-03-19 07:16:10,1083.63 +You are the bestest person ever,1,100,2023-03-21 05:53:44,1236.09 +rent portion,1,101,2023-02-12 16:51:05,203.82 +Payment for car,1,102,2023-02-08 09:11:07,1104.69 +repayment,2,101,2023-03-01 07:14:22,1339.94 +Household bills,1,100,2023-03-25 04:30:51,132.34 +grocery share,1,102,2023-03-17 09:25:48,1298.57 +transfer joint,1,101,2023-02-08 14:34:48,191.18 +lunch,2,102,2023-03-06 17:55:44,197.98 +dinner,1,101,2023-02-13 01:08:15,170.21 +gift,2,102,2023-02-23 20:23:50,799.71 +rent,2,100,2023-01-29 08:05:39,1040.65 +rent,1,100,2023-01-16 13:02:00,1412.7 +Payment for Lucy birthday,1,101,2023-03-03 20:35:19,699.8 +repaying loan,1,100,2023-02-10 14:34:39,919.05 +saving for house,1,101,2023-01-01 20:18:36,584.96 +Birthday surprise,1,101,2023-01-29 07:24:16,556.52 +rent,1,102,2023-02-20 12:00:41,535.47 +rent Brisbane,2,102,2023-03-04 22:37:49,11.7 +I love you,1,101,2023-03-17 06:37:54,939.51 +I love you,2,100,2023-02-08 18:23:18,944.73 +rent,1,100,2023-01-14 11:36:35,179.6 +Online Mobile Re-charge,1,100,2023-01-22 17:18:57,1372.34 +school lunches,2,102,2023-01-05 10:04:22,868.78 +phone bill,1,101,2023-01-22 20:15:23,1278.75 +joint account,1,102,2023-01-03 12:56:59,134.12 +recipt 768893333,1,102,2023-02-26 15:52:37,1403.96 +Mackay West State School School Uniforms Richards,1,100,2023-01-03 20:40:39,1129.82 +Mackay West State School School Uniforms Ryan,2,101,2023-03-04 17:45:15,41.43 +Mackay West State School School Uniforms James,1,101,2023-01-22 04:55:09,1299.34 +school uniforms ,2,102,2023-01-06 03:23:05,493.43 +Fucking good night,1,102,2023-02-17 08:37:10,833.39 +ILY xxxoooo,1,102,2023-02-23 07:14:32,622.71 +lunch,2,100,2023-02-05 18:34:19,1076.99 +Happy Birthday B**ch,2,101,2023-03-30 14:24:31,883.5 +BFF4LYF LYSFM <3<3<3Happy Birthday,1,102,2023-02-23 07:13:29,1452.58 +lunch friday,2,101,2023-02-09 11:51:00,22.37 +coffee,2,102,2023-03-13 23:53:37,1439.83 +friday dinner,1,101,2023-02-13 03:16:53,31.63 +repayment groceries,1,101,2023-01-08 02:44:17,1421.01 +savings holiday,2,101,2023-03-21 07:17:25,198.01 +Groceries,2,102,2023-02-04 19:22:42,846.2 +Savings,2,101,2023-01-31 06:09:37,1281.17 +Hey whats going on?,1,102,2023-02-18 17:55:23,1263.39 +LOVE you,2,101,2023-02-28 17:04:13,1222.96 +lol,1,100,2023-02-18 22:58:36,448.14 +thanks for lunch,1,100,2023-01-21 12:51:34,672.34 +rent,1,102,2023-02-22 14:26:29,754.44 +savings,2,102,2023-03-26 10:41:43,937.1 +greece,2,102,2023-02-09 00:31:06,532.19 +BBQ money,1,102,2023-01-18 00:29:46,1259.78 +Happy Birthday,1,101,2023-03-22 08:13:59,112.83 +loan for mum,1,102,2023-02-15 14:51:10,703.9 +loan 20000,2,101,2023-01-09 01:58:32,588.95 +repayments for loan,1,100,2023-01-28 20:04:08,90.27 +repayments 1/7,1,100,2023-03-19 02:55:55,472.24 +repayments 20,2,100,2023-01-01 02:14:41,641.48 +Bali here I come 1/7,2,101,2023-03-10 12:57:37,491.68 +Coloradoro here I come 1/7,2,102,2023-01-01 23:52:44,378.31 +Bill pay for Water supply,2,100,2023-01-09 11:54:37,1466.43 +Billsssssss,1,102,2023-02-23 12:39:27,880.85 +uuuhhhhhh so broke,2,100,2023-01-16 12:15:22,1191.99 +transfer for hockey,1,101,2023-02-16 13:23:29,356.92 +kids sports uniforms,2,100,2023-02-27 04:29:57,104.45 +child support,2,100,2023-01-12 07:28:15,717.52 +Thanks baby,1,102,2023-03-15 17:31:36,365.52 +Thanks baby,2,101,2023-01-30 05:59:23,145.7 +Child Support,1,102,2023-03-23 18:25:18,1199.88 +Support,1,102,2023-01-10 03:58:53,183.61 +Dont spend it all at one Jonny,2,101,2023-03-28 22:50:47,239.02 +Dont spend it all at one Lucas,2,100,2023-01-06 07:55:53,863.38 +Dont spend it all at one Lachlan,2,102,2023-03-17 06:13:26,541.13 +"Hey, :):):)):):):):):)",2,101,2023-02-24 05:13:40,508.31 +"Hey, lets meet at the front of coles at 5:00pm?",2,101,2023-01-07 01:28:43,131.12 +Bobby,2,102,2023-03-07 04:33:18,206.11 +coffee runs x,2,101,2023-03-14 08:45:51,488.26 +Vacations,1,100,2023-03-30 00:56:07,701.27 +bpay,2,102,2023-03-16 17:08:59,369.1 +to buy stocks,2,101,2023-03-26 01:22:15,33.52 +coffee,2,101,2023-02-05 10:00:49,572.44 +fuel,2,101,2023-03-15 05:52:49,1430.56 +:D love love love ,2,100,2023-01-25 06:15:21,483.85 +so good to see you xoxox,2,100,2023-02-04 23:05:29,605.21 +Gen Rent,2,101,2023-02-14 16:28:27,76.09 +Gift Jonny,1,101,2023-03-28 05:16:21,1453.56 +Hey houw are you,2,101,2023-02-25 18:29:46,70.65 +You are the bestest person ever,2,101,2023-01-07 12:15:30,1394.09 +rent portion,2,101,2023-03-24 10:30:50,871.92 +Payment for car,2,101,2023-02-20 14:04:27,937.8 +repayment,2,100,2023-03-18 14:03:11,581.75 +Household bills,2,100,2023-01-26 23:05:08,594.0 +grocery share,1,101,2023-02-22 07:04:26,1046.72 +transfer joint,1,102,2023-02-01 04:47:58,280.66 +lunch,2,100,2023-02-08 19:25:24,707.66 +dinner,1,102,2023-03-16 02:53:50,191.4 +gift,1,101,2023-03-27 01:54:56,584.24 +rent,1,102,2023-01-09 01:05:26,1434.84 +rent,1,102,2023-03-28 15:19:28,450.32 +Payment for Lucy birthday,2,101,2023-02-18 15:35:35,1223.69 +repaying loan,1,101,2023-01-28 00:22:44,510.66 +saving for house,1,100,2023-01-01 13:18:57,1380.9 +Birthday surprise,2,102,2023-03-11 07:50:02,997.31 +rent,1,100,2023-03-27 23:36:27,1199.51 +rent Brisbane,1,100,2023-02-19 00:55:11,21.26 +I love you,1,102,2023-02-03 12:17:24,999.56 +I love you,2,101,2023-02-08 00:13:32,576.62 +rent,1,100,2023-01-13 16:41:30,343.26 +Online Mobile Re-charge,1,101,2023-03-19 11:11:17,584.31 +school lunches,2,102,2023-03-18 03:00:06,1161.27 +phone bill,1,102,2023-01-23 19:11:47,831.47 +joint account,2,102,2023-02-15 10:19:07,772.02 +recipt 768893333,1,102,2023-03-28 12:51:25,1455.63 +Mackay West State School School Uniforms Richards,2,102,2023-02-10 05:02:24,1445.33 +Mackay West State School School Uniforms Ryan,1,100,2023-03-21 10:14:34,1258.44 +Mackay West State School School Uniforms James,1,102,2023-03-01 02:07:20,494.3 +school uniforms ,1,102,2023-01-06 09:31:16,443.14 +Fucking good night,1,101,2023-01-12 13:44:27,84.9 +ILY xxxoooo,1,100,2023-01-03 11:59:38,23.28 +lunch,1,100,2023-01-11 01:15:01,1376.5 +Happy Birthday B**ch,1,102,2023-03-01 10:09:21,177.68 +BFF4LYF LYSFM <3<3<3Happy Birthday,2,102,2023-03-10 09:06:16,550.23 +lunch friday,1,102,2023-01-31 04:51:08,1408.22 +coffee,2,101,2023-01-16 18:04:55,532.19 +friday dinner,2,102,2023-01-16 02:21:01,1439.19 +repayment groceries,1,102,2023-03-30 08:58:24,634.83 +savings holiday,2,101,2023-02-25 23:56:48,219.46 +Groceries,2,100,2023-02-08 13:36:25,402.37 +Savings,1,102,2023-02-08 01:18:05,1280.01 +Hey whats going on?,1,102,2023-01-26 01:31:46,318.65 +LOVE you,1,100,2023-03-18 14:42:29,1217.61 +lol,1,101,2023-02-24 19:26:18,970.72 +thanks for lunch,1,101,2023-03-01 16:37:08,435.84 +rent,2,102,2023-02-27 16:28:33,1266.2 +savings,1,102,2023-02-20 08:12:24,259.84 +greece,1,100,2023-02-10 13:33:26,458.3 +BBQ money,2,101,2023-01-01 09:55:34,932.83 +Happy Birthday,1,101,2023-02-15 08:46:46,584.6 +loan for mum,2,101,2023-01-30 15:56:10,859.15 +loan 20000,2,102,2023-01-10 15:26:15,20.71 +repayments for loan,1,102,2023-03-09 11:03:27,72.75 +repayments 1/7,2,100,2023-01-25 12:38:11,1236.79 +repayments 20,1,101,2023-01-27 18:01:07,365.42 +Bali here I come 1/7,1,101,2023-02-22 13:05:37,393.85 +Coloradoro here I come 1/7,2,100,2023-02-02 15:44:34,462.69 +Bill pay for Water supply,2,102,2023-01-28 19:52:07,544.38 +Billsssssss,2,101,2023-03-04 22:47:31,1180.66 +uuuhhhhhh so broke,2,102,2023-02-17 18:37:46,332.76 +transfer for hockey,1,101,2023-02-15 18:40:09,1226.13 +kids sports uniforms,1,100,2023-02-13 14:28:21,1378.02 +child support,1,100,2023-03-21 05:40:36,806.35 +Thanks baby,1,101,2023-01-19 21:04:05,1317.67 +Thanks baby,1,100,2023-03-06 17:15:10,232.61 +Child Support,1,102,2023-02-16 22:23:33,1342.9 +Support,2,100,2023-03-04 02:15:41,1157.02 +Dont spend it all at one Jonny,1,101,2023-01-09 02:44:06,1389.51 +Dont spend it all at one Lucas,1,102,2023-03-11 22:53:14,973.04 +Dont spend it all at one Lachlan,1,101,2023-02-02 22:40:35,234.23 +"Hey, :):):)):):):):):)",2,102,2023-01-08 03:32:29,987.84 +"Hey, lets meet at the front of coles at 5:00pm?",2,100,2023-01-24 19:04:09,55.47 +Bobby,2,101,2023-01-16 03:10:58,1108.77 +coffee runs x,2,102,2023-03-10 09:32:45,692.54 +Vacations,2,102,2023-02-08 13:18:34,329.61 +bpay,1,102,2023-01-25 08:37:55,223.99 +to buy stocks,1,102,2023-02-12 04:53:43,235.18 +coffee,2,101,2023-01-29 10:10:29,1148.83 +fuel,2,102,2023-01-31 15:16:56,1097.25 +:D love love love ,1,102,2023-01-08 06:57:16,316.42 +so good to see you xoxox,1,101,2023-03-05 16:49:23,1309.5 +Gen Rent,2,102,2023-03-04 13:52:11,1292.48 +Gift Jonny,1,100,2023-03-25 22:48:41,1370.81 +Hey houw are you,1,100,2023-01-07 02:45:24,1262.93 +You are the bestest person ever,1,100,2023-02-02 12:57:55,1006.41 +rent portion,2,101,2023-02-28 04:32:17,940.31 +Payment for car,2,100,2023-03-29 03:07:49,182.88 +repayment,1,100,2023-02-28 22:20:15,1057.36 +Household bills,1,102,2023-03-27 00:36:10,1431.08 +grocery share,1,101,2023-01-14 02:39:30,1146.08 +transfer joint,2,101,2023-03-17 20:52:57,845.73 +"This makes me so damn angry.  All of this over some worthless thug who got himself shot?  The protests, those animals looting and tearing shit up in their own neighborhoods over this?  This is why everyone thinks the black community is fucked up, because it is fucked up.",2,100,2023-01-08 22:46:26,202.58 +"Let's hit it, Jake",1,100,2023-02-25 10:06:10,237.16 +"Shoots Brah, I gettin mean hives already.",2,100,2023-03-20 11:51:38,960.14 diff --git a/data/example_input_output.csv b/data/example_input_output.csv new file mode 100644 index 0000000..8f18324 --- /dev/null +++ b/data/example_input_output.csv @@ -0,0 +1,7 @@ +sender_id,receiver_id,probability_non_abuse,probability_abuse +1,100,0.6302520543634892,0.3697479456365108 +2,102,0.6359035224840045,0.3640964775159955 +2,101,0.642963627807796,0.3570363721922039 +1,101,0.6662429767996073,0.3337570232003927 +1,102,0.6794239772260189,0.3205760227739811 +2,100,0.7196713920384645,0.2803286079615354 diff --git a/end_to_end.ipynb b/end_to_end.ipynb new file mode 100644 index 0000000..263736f --- /dev/null +++ b/end_to_end.ipynb @@ -0,0 +1,1389 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## AITD End to End Example Notebook" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from src.transform_predict import transform, score\n", + "import pandas as pd\n", + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tx_descriptionsender_idreceiver_idtx_dateamount
0lunch11012023-02-13 02:03:151190.63
1dinner11012023-03-29 17:48:10268.40
2gift11002023-01-20 17:41:331276.55
3rent11022023-01-17 08:13:351020.42
4rent11012023-01-17 15:45:40983.10
\n", + "
" + ], + "text/plain": [ + " tx_description sender_id receiver_id tx_date amount\n", + "0 lunch 1 101 2023-02-13 02:03:15 1190.63\n", + "1 dinner 1 101 2023-03-29 17:48:10 268.40\n", + "2 gift 1 100 2023-01-20 17:41:33 1276.55\n", + "3 rent 1 102 2023-01-17 08:13:35 1020.42\n", + "4 rent 1 101 2023-01-17 15:45:40 983.10" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "## Read Dataset - Required Columns are: ['tx_description', 'sender_id', 'receiver_id', 'tx_date', 'amount']\n", + "data = pd.read_csv(\"data/example_input.csv\")\n", + "data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Long Term Transaction Abuse Detection" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/transformers/pipelines/text_classification.py:89: UserWarning: `return_all_scores` is now deprecated, use `top_k=1` if you want similar functionnality\n", + " warnings.warn(\n", + "Asking to truncate to max_length but no maximum length is provided and the model has no predefined maximum length. Default to no truncation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "2023\n", + "3\n", + "[202302, 202301]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sender_idreceiver_idyear_monthtoxicity_percentilesevere_toxicity_percentileobscene_percentileidentity_attack_percentileinsult_percentilethreat_percentilesexual_explicit_percentile...month_min2_num_trans_summonth_min2_identity_attack_percentilemonth_min2_sadness_summonth_min2_length_transaction_medianmonth_min2_surprise_summonth_min2_joy_maxmonth_min2_day_between_max_minmonth_min2_longest_word_medianmonth_min2_anger_summonth_min2_love_sum
011002023030.0856900.3701300.1598170.1060890.0506680.4612810.486310...0.4000000.1359170.0000000.0000000.00.0370370.00.3333330.5980460.000000
111012023030.1049950.0558060.2270490.1554660.0543050.1648280.146895...0.2000000.3535460.0000000.9166670.00.0416670.00.6666670.6441720.375000
211022023030.0197110.0198630.0533310.0000000.0188160.0000000.021091...0.7333330.2586480.0000000.3333330.00.0312500.00.3333330.8776840.281250
321002023030.0846380.3270400.1910180.3580600.0489030.5218090.444424...0.4666670.1359170.5357140.5000000.00.0357140.00.0000001.0000000.642857
421012023030.4116830.7405130.6812100.3926870.2564720.9513930.978037...0.4666670.1791980.0000000.0833330.00.0357140.00.3333330.7331290.321429
\n", + "

5 rows × 102 columns

\n", + "
" + ], + "text/plain": [ + " sender_id receiver_id year_month toxicity_percentile \\\n", + "0 1 100 202303 0.085690 \n", + "1 1 101 202303 0.104995 \n", + "2 1 102 202303 0.019711 \n", + "3 2 100 202303 0.084638 \n", + "4 2 101 202303 0.411683 \n", + "\n", + " severe_toxicity_percentile obscene_percentile identity_attack_percentile \\\n", + "0 0.370130 0.159817 0.106089 \n", + "1 0.055806 0.227049 0.155466 \n", + "2 0.019863 0.053331 0.000000 \n", + "3 0.327040 0.191018 0.358060 \n", + "4 0.740513 0.681210 0.392687 \n", + "\n", + " insult_percentile threat_percentile sexual_explicit_percentile ... \\\n", + "0 0.050668 0.461281 0.486310 ... \n", + "1 0.054305 0.164828 0.146895 ... \n", + "2 0.018816 0.000000 0.021091 ... \n", + "3 0.048903 0.521809 0.444424 ... \n", + "4 0.256472 0.951393 0.978037 ... \n", + "\n", + " month_min2_num_trans_sum month_min2_identity_attack_percentile \\\n", + "0 0.400000 0.135917 \n", + "1 0.200000 0.353546 \n", + "2 0.733333 0.258648 \n", + "3 0.466667 0.135917 \n", + "4 0.466667 0.179198 \n", + "\n", + " month_min2_sadness_sum month_min2_length_transaction_median \\\n", + "0 0.000000 0.000000 \n", + "1 0.000000 0.916667 \n", + "2 0.000000 0.333333 \n", + "3 0.535714 0.500000 \n", + "4 0.000000 0.083333 \n", + "\n", + " month_min2_surprise_sum month_min2_joy_max \\\n", + "0 0.0 0.037037 \n", + "1 0.0 0.041667 \n", + "2 0.0 0.031250 \n", + "3 0.0 0.035714 \n", + "4 0.0 0.035714 \n", + "\n", + " month_min2_day_between_max_min month_min2_longest_word_median \\\n", + "0 0.0 0.333333 \n", + "1 0.0 0.666667 \n", + "2 0.0 0.333333 \n", + "3 0.0 0.000000 \n", + "4 0.0 0.333333 \n", + "\n", + " month_min2_anger_sum month_min2_love_sum \n", + "0 0.598046 0.000000 \n", + "1 0.644172 0.375000 \n", + "2 0.877684 0.281250 \n", + "3 1.000000 0.642857 \n", + "4 0.733129 0.321429 \n", + "\n", + "[5 rows x 102 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "feature_generation_3months = transform(data, lag=2, score_month=3, score_year=2023)\n", + "feature_generation_3months.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Checking whether there is an H2O instance running at http://localhost:54321..... not found.\n", + "Attempting to start a local H2O server...\n", + " Java Version: java version \"1.8.0_361\"; Java(TM) SE Runtime Environment (build 1.8.0_361-b09); Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)\n", + " Starting server from /Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/h2o/backend/bin/h2o.jar\n", + " Ice root: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmpf8g4elha\n", + " JVM stdout: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmpf8g4elha/h2o_genevieverichards_started_from_python.out\n", + " JVM stderr: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmpf8g4elha/h2o_genevieverichards_started_from_python.err\n", + " Server is running at http://127.0.0.1:54321\n", + "Connecting to H2O server at http://127.0.0.1:54321 ... successful.\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
H2O_cluster_uptime:12 secs
H2O_cluster_timezone:Asia/Seoul
H2O_data_parsing_timezone:UTC
H2O_cluster_version:3.42.0.3
H2O_cluster_version_age:2 months and 16 days
H2O_cluster_name:H2O_from_python_genevieverichards_xyvzqe
H2O_cluster_total_nodes:1
H2O_cluster_free_memory:7.096 Gb
H2O_cluster_total_cores:0
H2O_cluster_allowed_cores:0
H2O_cluster_status:locked, healthy
H2O_connection_url:http://127.0.0.1:54321
H2O_connection_proxy:{\"http\": null, \"https\": null}
H2O_internal_security:False
Python_version:3.10.13 final
\n", + "
\n" + ], + "text/plain": [ + "-------------------------- ----------------------------------------\n", + "H2O_cluster_uptime: 12 secs\n", + "H2O_cluster_timezone: Asia/Seoul\n", + "H2O_data_parsing_timezone: UTC\n", + "H2O_cluster_version: 3.42.0.3\n", + "H2O_cluster_version_age: 2 months and 16 days\n", + "H2O_cluster_name: H2O_from_python_genevieverichards_xyvzqe\n", + "H2O_cluster_total_nodes: 1\n", + "H2O_cluster_free_memory: 7.096 Gb\n", + "H2O_cluster_total_cores: 0\n", + "H2O_cluster_allowed_cores: 0\n", + "H2O_cluster_status: locked, healthy\n", + "H2O_connection_url: http://127.0.0.1:54321\n", + "H2O_connection_proxy: {\"http\": null, \"https\": null}\n", + "H2O_internal_security: False\n", + "Python_version: 3.10.13 final\n", + "-------------------------- ----------------------------------------" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "generic Model Build progress: |██████████████████████████████████████████████████| (done) 100%\n", + "Parse progress: |████████████████████████████████████████████████████████████████| (done) 100%\n", + "generic prediction progress: |███████████████████████████████████████████████████| (done) 100%\n", + "H2O session _sid_b838 closed.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sender_idreceiver_idprobability_non_abuseprobability_abuse
011000.6302520.369748
521020.6359040.364096
421010.6429640.357036
111010.6662430.333757
211020.6794240.320576
\n", + "
" + ], + "text/plain": [ + " sender_id receiver_id probability_non_abuse probability_abuse\n", + "0 1 100 0.630252 0.369748\n", + "5 2 102 0.635904 0.364096\n", + "4 2 101 0.642964 0.357036\n", + "1 1 101 0.666243 0.333757\n", + "2 1 102 0.679424 0.320576" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predictions_3month = score(feature_generation_3months, model_loc='models/CBA_AITD_Long.zip')\n", + "predictions_3month.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Short Term Transaction Abuse Detection" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/transformers/pipelines/text_classification.py:89: UserWarning: `return_all_scores` is now deprecated, use `top_k=1` if you want similar functionnality\n", + " warnings.warn(\n", + "Asking to truncate to max_length but no maximum length is provided and the model has no predefined maximum length. Default to no truncation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "2023\n", + "3\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sender_idreceiver_idyear_monthtoxicity_percentilesevere_toxicity_percentileobscene_percentileidentity_attack_percentileinsult_percentilethreat_percentilesexual_explicit_percentile...recip_num_trans_sumrecip_identity_attack_percentilerecip_sadness_sumrecip_length_transaction_medianrecip_surprise_sumrecip_joy_maxrecip_day_between_max_minrecip_longest_word_medianrecip_anger_sumrecip_love_sum
011002023030.0856900.3701300.1598170.1060890.0506680.4612810.486310...0.6000000.1060891.0000000.666667NaN0.033333NaN0.6666670.2290390.600000
111012023030.1049950.0558060.2270490.1554660.0543050.1648280.146895...1.0000000.1554660.4166670.583333NaN0.027778NaN0.6666670.1598501.000000
211022023030.0197110.0198630.0533310.0000000.0188160.0000000.021091...0.6000000.0000000.0000001.000000NaN0.033333NaN0.6666670.6441720.300000
321002023030.0846380.3270400.1910180.3580600.0489030.5218090.444424...0.1333330.3580600.0000000.333333NaN0.043478NaN0.3333330.8066150.782609
421012023030.4116830.7405130.6812100.3926870.2564720.9513930.978037...0.6666670.3926870.0000000.666667NaN0.032258NaN0.3333330.8450430.580645
\n", + "

5 rows × 62 columns

\n", + "
" + ], + "text/plain": [ + " sender_id receiver_id year_month toxicity_percentile \\\n", + "0 1 100 202303 0.085690 \n", + "1 1 101 202303 0.104995 \n", + "2 1 102 202303 0.019711 \n", + "3 2 100 202303 0.084638 \n", + "4 2 101 202303 0.411683 \n", + "\n", + " severe_toxicity_percentile obscene_percentile identity_attack_percentile \\\n", + "0 0.370130 0.159817 0.106089 \n", + "1 0.055806 0.227049 0.155466 \n", + "2 0.019863 0.053331 0.000000 \n", + "3 0.327040 0.191018 0.358060 \n", + "4 0.740513 0.681210 0.392687 \n", + "\n", + " insult_percentile threat_percentile sexual_explicit_percentile ... \\\n", + "0 0.050668 0.461281 0.486310 ... \n", + "1 0.054305 0.164828 0.146895 ... \n", + "2 0.018816 0.000000 0.021091 ... \n", + "3 0.048903 0.521809 0.444424 ... \n", + "4 0.256472 0.951393 0.978037 ... \n", + "\n", + " recip_num_trans_sum recip_identity_attack_percentile recip_sadness_sum \\\n", + "0 0.600000 0.106089 1.000000 \n", + "1 1.000000 0.155466 0.416667 \n", + "2 0.600000 0.000000 0.000000 \n", + "3 0.133333 0.358060 0.000000 \n", + "4 0.666667 0.392687 0.000000 \n", + "\n", + " recip_length_transaction_median recip_surprise_sum recip_joy_max \\\n", + "0 0.666667 NaN 0.033333 \n", + "1 0.583333 NaN 0.027778 \n", + "2 1.000000 NaN 0.033333 \n", + "3 0.333333 NaN 0.043478 \n", + "4 0.666667 NaN 0.032258 \n", + "\n", + " recip_day_between_max_min recip_longest_word_median recip_anger_sum \\\n", + "0 NaN 0.666667 0.229039 \n", + "1 NaN 0.666667 0.159850 \n", + "2 NaN 0.666667 0.644172 \n", + "3 NaN 0.333333 0.806615 \n", + "4 NaN 0.333333 0.845043 \n", + "\n", + " recip_love_sum \n", + "0 0.600000 \n", + "1 1.000000 \n", + "2 0.300000 \n", + "3 0.782609 \n", + "4 0.580645 \n", + "\n", + "[5 rows x 62 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note: For Short Term Abuse detection model, set lag to 0.\n", + "# Note: By default, the features will be generated for the latest month in the dataset, for the example data, this is March.\n", + "feature_generation_month = transform(data, lag=0)\n", + "feature_generation_month.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Checking whether there is an H2O instance running at http://localhost:54321..... not found.\n", + "Attempting to start a local H2O server...\n", + " Java Version: java version \"1.8.0_361\"; Java(TM) SE Runtime Environment (build 1.8.0_361-b09); Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)\n", + " Starting server from /Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/h2o/backend/bin/h2o.jar\n", + " Ice root: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmp_p64132q\n", + " JVM stdout: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmp_p64132q/h2o_genevieverichards_started_from_python.out\n", + " JVM stderr: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmp_p64132q/h2o_genevieverichards_started_from_python.err\n", + " Server is running at http://127.0.0.1:54321\n", + "Connecting to H2O server at http://127.0.0.1:54321 ... successful.\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
H2O_cluster_uptime:12 secs
H2O_cluster_timezone:Asia/Seoul
H2O_data_parsing_timezone:UTC
H2O_cluster_version:3.42.0.3
H2O_cluster_version_age:2 months and 16 days
H2O_cluster_name:H2O_from_python_genevieverichards_2xfj41
H2O_cluster_total_nodes:1
H2O_cluster_free_memory:7.096 Gb
H2O_cluster_total_cores:0
H2O_cluster_allowed_cores:0
H2O_cluster_status:locked, healthy
H2O_connection_url:http://127.0.0.1:54321
H2O_connection_proxy:{\"http\": null, \"https\": null}
H2O_internal_security:False
Python_version:3.10.13 final
\n", + "
\n" + ], + "text/plain": [ + "-------------------------- ----------------------------------------\n", + "H2O_cluster_uptime: 12 secs\n", + "H2O_cluster_timezone: Asia/Seoul\n", + "H2O_data_parsing_timezone: UTC\n", + "H2O_cluster_version: 3.42.0.3\n", + "H2O_cluster_version_age: 2 months and 16 days\n", + "H2O_cluster_name: H2O_from_python_genevieverichards_2xfj41\n", + "H2O_cluster_total_nodes: 1\n", + "H2O_cluster_free_memory: 7.096 Gb\n", + "H2O_cluster_total_cores: 0\n", + "H2O_cluster_allowed_cores: 0\n", + "H2O_cluster_status: locked, healthy\n", + "H2O_connection_url: http://127.0.0.1:54321\n", + "H2O_connection_proxy: {\"http\": null, \"https\": null}\n", + "H2O_internal_security: False\n", + "Python_version: 3.10.13 final\n", + "-------------------------- ----------------------------------------" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "generic Model Build progress: |██████████████████████████████████████████████████| (done) 100%\n", + "Parse progress: |████████████████████████████████████████████████████████████████| (done) 100%\n", + "generic prediction progress: |███████████████████████████████████████████████████| (done) 100%\n", + "H2O session _sid_94a3 closed.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sender_idreceiver_idprobability_non_abuseprobability_abuse
011000.6286460.371354
421010.6611490.338851
111010.6793880.320612
521020.6955960.304404
211020.7206430.279357
\n", + "
" + ], + "text/plain": [ + " sender_id receiver_id probability_non_abuse probability_abuse\n", + "0 1 100 0.628646 0.371354\n", + "4 2 101 0.661149 0.338851\n", + "1 1 101 0.679388 0.320612\n", + "5 2 102 0.695596 0.304404\n", + "2 1 102 0.720643 0.279357" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predictions_month_march = score(feature_generation_month, model_loc='models/CBA_AITD_Short.zip')\n", + "predictions_month_march.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Specifying the Score Month" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Found latest transaction date: 2023-02-28, dicard 341 data points with date before 2023-02-01. If a sender-receiver relation only exist in data prior to 2023-02-01 or after 2023-02-28, they won't appear in the final output\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/transformers/pipelines/text_classification.py:89: UserWarning: `return_all_scores` is now deprecated, use `top_k=1` if you want similar functionnality\n", + " warnings.warn(\n", + "Asking to truncate to max_length but no maximum length is provided and the model has no predefined maximum length. Default to no truncation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "2023\n", + "2\n", + "Checking whether there is an H2O instance running at http://localhost:54321..... not found.\n", + "Attempting to start a local H2O server...\n", + " Java Version: java version \"1.8.0_361\"; Java(TM) SE Runtime Environment (build 1.8.0_361-b09); Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)\n", + " Starting server from /Users/genevieverichards/opt/anaconda3/envs/aitd/lib/python3.10/site-packages/h2o/backend/bin/h2o.jar\n", + " Ice root: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmppfw9onhz\n", + " JVM stdout: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmppfw9onhz/h2o_genevieverichards_started_from_python.out\n", + " JVM stderr: /var/folders/ng/wrfk6d3n4p9gy7vj76hlf4z80000gn/T/tmppfw9onhz/h2o_genevieverichards_started_from_python.err\n", + " Server is running at http://127.0.0.1:54321\n", + "Connecting to H2O server at http://127.0.0.1:54321 ... successful.\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
H2O_cluster_uptime:12 secs
H2O_cluster_timezone:Asia/Seoul
H2O_data_parsing_timezone:UTC
H2O_cluster_version:3.42.0.3
H2O_cluster_version_age:2 months and 16 days
H2O_cluster_name:H2O_from_python_genevieverichards_rfr0qj
H2O_cluster_total_nodes:1
H2O_cluster_free_memory:7.096 Gb
H2O_cluster_total_cores:0
H2O_cluster_allowed_cores:0
H2O_cluster_status:locked, healthy
H2O_connection_url:http://127.0.0.1:54321
H2O_connection_proxy:{\"http\": null, \"https\": null}
H2O_internal_security:False
Python_version:3.10.13 final
\n", + "
\n" + ], + "text/plain": [ + "-------------------------- ----------------------------------------\n", + "H2O_cluster_uptime: 12 secs\n", + "H2O_cluster_timezone: Asia/Seoul\n", + "H2O_data_parsing_timezone: UTC\n", + "H2O_cluster_version: 3.42.0.3\n", + "H2O_cluster_version_age: 2 months and 16 days\n", + "H2O_cluster_name: H2O_from_python_genevieverichards_rfr0qj\n", + "H2O_cluster_total_nodes: 1\n", + "H2O_cluster_free_memory: 7.096 Gb\n", + "H2O_cluster_total_cores: 0\n", + "H2O_cluster_allowed_cores: 0\n", + "H2O_cluster_status: locked, healthy\n", + "H2O_connection_url: http://127.0.0.1:54321\n", + "H2O_connection_proxy: {\"http\": null, \"https\": null}\n", + "H2O_internal_security: False\n", + "Python_version: 3.10.13 final\n", + "-------------------------- ----------------------------------------" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "generic Model Build progress: |██████████████████████████████████████████████████| (done) 100%\n", + "Parse progress: |████████████████████████████████████████████████████████████████| (done) 100%\n", + "generic prediction progress: |███████████████████████████████████████████████████| (done) 100%\n", + "H2O session _sid_8aad closed.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sender_idreceiver_idprobability_non_abuseprobability_abuse
521020.6445170.355483
211020.7213810.278619
011000.7311570.268843
111010.7355900.264410
321000.7424490.257551
\n", + "
" + ], + "text/plain": [ + " sender_id receiver_id probability_non_abuse probability_abuse\n", + "5 2 102 0.644517 0.355483\n", + "2 1 102 0.721381 0.278619\n", + "0 1 100 0.731157 0.268843\n", + "1 1 101 0.735590 0.264410\n", + "3 2 100 0.742449 0.257551" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note: For Short Term Abuse detection model, set lag to 0.\n", + "# Note: To Score for another month, you need to specify the month in score month, in the following example it will generate features for Feburary. \n", + "# Note: You can also pass score_year if your data contains multiple years\n", + "feature_generation_month_feb = transform(data, lag=0, score_month=2, score_year=2023)\n", + "predictions_month_feb = score(feature_generation_month_feb, model_loc='models/CBA_AITD_Short.zip')\n", + "predictions_month_feb.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "aitd", + "language": "python", + "name": "aitd" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/end_to_end.py b/end_to_end.py new file mode 100644 index 0000000..baafad8 --- /dev/null +++ b/end_to_end.py @@ -0,0 +1,60 @@ +import pandas as pd +import warnings +import argparse +from src.transform_predict import transform, score + +if __name__ == "__main__": + warnings.filterwarnings('ignore') + parser = argparse.ArgumentParser() + parser.add_argument( + "-i", + "--input", + help="input csv file path, e.g. data/example_input.csv", + required=True, + ) + parser.add_argument( + "-o", + "--output", + help="output csv file path, e.g. ./example_output.csv", + required=True, + ) + parser.add_argument( + "-sm", + "--score_month", + default=None, + help="Specify the Month to be scored, by default it will be the latest month in the dataset.", + required=False, + ) + parser.add_argument( + "-sy", + "--score_year", + default=None, + help="Specify the year of the month to be scored, by default it will be the latest year in the dataset.", + required=False, + ) + parser.add_argument( + "-l", + "--lag", + default=2, + help="Specify the number of lag months to be calculated for the feature pipeline, by default this will be 2 which is required for CBA_Long model. For CBA_Short model, this needs to be set to 0", + required=False, + ) + parser.add_argument( + "-m", + "--model_path", + default='models/CBA_AITD_Long.zip', + help="Specify the number of lag months to be calculated for the feature pipeline, by default this will be 2 which is required for CBA_Long model. For CBA_Short model, this needs to be set to 0", + required=False, + ) + args = parser.parse_args() + + if args.score_month: + score_month = int(args.score_month) + else: + score_month = args.score_month + + df = pd.read_csv(args.input) + transformed_df = transform(df, score_month = args.score_month, lag=int(args.lag)) + prediction_df = score(transformed_df, model_loc=args.model_path) + prediction_df.to_csv(args.output, index=False) + print(f"----Finish, file save to {args.output}") \ No newline at end of file diff --git a/img/workflow.png b/img/workflow.png new file mode 100644 index 0000000..0ac5bfd Binary files /dev/null and b/img/workflow.png differ diff --git a/logs/aitd.log b/logs/aitd.log new file mode 100644 index 0000000..0b5ebae --- /dev/null +++ b/logs/aitd.log @@ -0,0 +1,1084 @@ +{"@timestamp":"2023-11-07T08:57:36.475Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:36.475Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:36.481Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:36.481Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:36.482Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:36.484Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":13772,"thread":{"id":4679034368,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.015Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":14046,"thread":{"id":4768757248,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.015Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":14047,"thread":{"id":4696503808,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.015Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":14048,"thread":{"id":4735419904,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.015Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":14045,"thread":{"id":4492850688,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.016Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":14047,"thread":{"id":4696503808,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.041Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":14046,"thread":{"id":4768757248,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.042Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":14045,"thread":{"id":4492850688,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.042Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":14045,"thread":{"id":4492850688,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.043Z","log.level":"error","message":"Error in Emotions Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":207,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Error in Emotions Model"},"process":{"name":"Process-1","pid":14045,"thread":{"id":4492850688,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:57:40.043Z","log.level":"error","message":"Can't load the configuration of 'models/transformers/distilbert-base-uncased-emotion/'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'models/transformers/distilbert-base-uncased-emotion/' is the correct path to a directory containing a config.json file","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":208,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Can't load the configuration of 'models/transformers/distilbert-base-uncased-emotion/'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'models/transformers/distilbert-base-uncased-emotion/' is the correct path to a directory containing a config.json file"},"process":{"name":"Process-1","pid":14045,"thread":{"id":4492850688,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.557Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.558Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.563Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.564Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.564Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:45.566Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":14159,"thread":{"id":4667995648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.613Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":14173,"thread":{"id":4540622336,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.613Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":14171,"thread":{"id":4641863168,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.613Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":14172,"thread":{"id":4444812800,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.613Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":14170,"thread":{"id":4553893376,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.614Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":14172,"thread":{"id":4444812800,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.638Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":14170,"thread":{"id":4553893376,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.638Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":14171,"thread":{"id":4641863168,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.638Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":14170,"thread":{"id":4553893376,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.638Z","log.level":"error","message":"Error in Emotions Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":207,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Error in Emotions Model"},"process":{"name":"Process-1","pid":14170,"thread":{"id":4553893376,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T08:59:48.639Z","log.level":"error","message":"Can't load the configuration of 'models/transformers/distilbert-base-uncased-emotion/'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'models/transformers/distilbert-base-uncased-emotion/' is the correct path to a directory containing a config.json file","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":208,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Can't load the configuration of 'models/transformers/distilbert-base-uncased-emotion/'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'models/transformers/distilbert-base-uncased-emotion/' is the correct path to a directory containing a config.json file"},"process":{"name":"Process-1","pid":14170,"thread":{"id":4553893376,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.941Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.942Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.948Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.949Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.950Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:21.951Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.043Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":17812,"thread":{"id":4552152576,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.043Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":17815,"thread":{"id":4674192896,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.043Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":17814,"thread":{"id":4627367424,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.043Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":17813,"thread":{"id":4749575680,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.044Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":17814,"thread":{"id":4627367424,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.069Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":17813,"thread":{"id":4749575680,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.070Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":17812,"thread":{"id":4552152576,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:26.070Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":17812,"thread":{"id":4552152576,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:44.573Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":17812,"thread":{"id":4552152576,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:44.631Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":17812,"thread":{"id":4552152576,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.114Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.173Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.174Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.203Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.204Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.223Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.429Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.637Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:57.841Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:32:58.048Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.313Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.595Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.600Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.608Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.611Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.621Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.625Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.668Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2006","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2006"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.671Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.688Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.693Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.831Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.841Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T09:33:24.850Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8f37 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8f37 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":17726,"thread":{"id":4550411776,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.769Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.770Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.776Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.776Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.777Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:27.778Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.871Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":26463,"thread":{"id":4607620608,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.871Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":26461,"thread":{"id":4641494528,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.871Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":26464,"thread":{"id":4412352000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.871Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":26462,"thread":{"id":4660614656,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.872Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":26463,"thread":{"id":4607620608,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.897Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":26461,"thread":{"id":4641494528,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.897Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":26462,"thread":{"id":4660614656,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:30.897Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":26461,"thread":{"id":4641494528,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:47.173Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":26461,"thread":{"id":4641494528,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:47.219Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":26461,"thread":{"id":4641494528,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:58.911Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:58.970Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:58.970Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:58.999Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.000Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.020Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.228Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.434Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.641Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:25:59.848Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.216Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.458Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.462Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.470Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.473Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.482Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.484Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.526Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.529Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.546Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.549Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.674Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.681Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.795Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.822Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:25.830Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.035Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.039Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.243Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.247Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a84f5d4abfdcc81794c7dd1d57d14d14 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.249Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.351Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356366248_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356366248_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.377Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.387Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.389Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.629Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.632Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.650Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5224","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5224"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.670Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.673Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_95590785fa9a89093a3cd64372f548ff HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_95590785fa9a89093a3cd64372f548ff HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.882Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.885Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_95590785fa9a89093a3cd64372f548ff HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_95590785fa9a89093a3cd64372f548ff HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.887Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.911Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_95f9485f5349ec7a24b099346ca04053.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_95f9485f5349ec7a24b099346ca04053.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.929Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.941Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.944Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.948Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356366248_1/frames/py_1_sid_8e73 HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356366248_1/frames/py_1_sid_8e73 HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.969Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:26.973Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_afbde30a9dfadec0c173b661c9c943d8 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_afbde30a9dfadec0c173b661c9c943d8 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.180Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.184Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_afbde30a9dfadec0c173b661c9c943d8 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_afbde30a9dfadec0c173b661c9c943d8 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.186Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.191Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a95c_Generic_model_python_1699356366248_1_on_py_1_sid_8e73?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a95c_Generic_model_python_1699356366248_1_on_py_1_sid_8e73?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.244Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.250Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.252Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.270Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_8e73&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_8e73&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.276Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.279Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.282Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.284Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.288Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.290Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.294Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8e73 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8e73 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:26:27.295Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":26454,"thread":{"id":4537042432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.777Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.778Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.783Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.784Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.784Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:39.786Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.291Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":27530,"thread":{"id":4527355392,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.291Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":27527,"thread":{"id":4512847360,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.291Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":27528,"thread":{"id":4607636992,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.291Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":27529,"thread":{"id":4399789568,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.292Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":27529,"thread":{"id":4399789568,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.323Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":27528,"thread":{"id":4607636992,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.324Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":27527,"thread":{"id":4512847360,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:43.324Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":27527,"thread":{"id":4512847360,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:59.259Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":27527,"thread":{"id":4512847360,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:31:59.306Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":27527,"thread":{"id":4512847360,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.791Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.861Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.869Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.887Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.888Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:11.913Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:12.122Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:12.327Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:12.531Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:12.739Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:37.804Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.059Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.064Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.071Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.074Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.084Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.086Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.126Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.129Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.145Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.149Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.281Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.286Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.421Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.445Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.455Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.660Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.664Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.872Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:38.877Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.083Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.087Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b9eb1995ab2f4deb76787fce8cf24ce7 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.090Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.196Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356738563_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356738563_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.224Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.233Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.236Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.482Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.485Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.504Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3651","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3651"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.526Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.531Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_98b3209bafe89070a35c9bb8a3b84d1c HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_98b3209bafe89070a35c9bb8a3b84d1c HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.738Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.751Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_98b3209bafe89070a35c9bb8a3b84d1c HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_98b3209bafe89070a35c9bb8a3b84d1c HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.773Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.797Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_ade1ab5cbdb5a1ec23d867c6c53c4ed3.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_ade1ab5cbdb5a1ec23d867c6c53c4ed3.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.820Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.832Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.835Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.841Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356738563_1/frames/py_1_sid_ace7 HTTP/1.1\" 200 829","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356738563_1/frames/py_1_sid_ace7 HTTP/1.1\" 200 829"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.878Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:39.888Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9e47ff572f51d514158251ef71e4318 HTTP/1.1\" 200 1188","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9e47ff572f51d514158251ef71e4318 HTTP/1.1\" 200 1188"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.093Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.096Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9e47ff572f51d514158251ef71e4318 HTTP/1.1\" 200 1188","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9e47ff572f51d514158251ef71e4318 HTTP/1.1\" 200 1188"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.100Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.108Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b0ae_Generic_model_python_1699356738563_1_on_py_1_sid_ace7?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b0ae_Generic_model_python_1699356738563_1_on_py_1_sid_ace7?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.165Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.170Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.172Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.191Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_ace7&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_ace7&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.198Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.201Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.206Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.209Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.213Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.215Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.219Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_ace7 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_ace7 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:32:40.220Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":27449,"thread":{"id":4571739648,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.149Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.149Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.155Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.155Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.156Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:44.158Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.471Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":27941,"thread":{"id":4560483840,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.471Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":27942,"thread":{"id":4521674240,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.471Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":27939,"thread":{"id":4763964928,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.471Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":27940,"thread":{"id":4492523008,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.472Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":27941,"thread":{"id":4560483840,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.501Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":27939,"thread":{"id":4763964928,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.501Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":27940,"thread":{"id":4492523008,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:33:47.502Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":27939,"thread":{"id":4763964928,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:04.652Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":27939,"thread":{"id":4763964928,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:04.700Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":27939,"thread":{"id":4763964928,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.230Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.291Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.291Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.323Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.325Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.342Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.550Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.758Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:17.965Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:18.171Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:42.966Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.218Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.224Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.231Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.233Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.244Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.247Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.288Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.291Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.309Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.312Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.438Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.445Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.569Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.595Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.605Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.809Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:43.814Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.020Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.024Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.230Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.233Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9eb3383d4d866920b7e07e47950044d3 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.235Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.325Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356863936_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699356863936_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.351Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.360Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.363Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.609Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.612Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.631Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5222","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5222"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.655Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.659Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b68f2bdd89b315a3fc3f345149b494d HTTP/1.1\" 200 1155","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b68f2bdd89b315a3fc3f345149b494d HTTP/1.1\" 200 1155"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.863Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.866Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b68f2bdd89b315a3fc3f345149b494d HTTP/1.1\" 200 1142","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b68f2bdd89b315a3fc3f345149b494d HTTP/1.1\" 200 1142"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.868Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.891Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_9b1ac58f3f1ec01555f5306aeab3431f.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_9b1ac58f3f1ec01555f5306aeab3431f.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.915Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.927Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.929Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.933Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356863936_1/frames/py_1_sid_9cea HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699356863936_1/frames/py_1_sid_9cea HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.958Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:44.963Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bc67dd4d7e3da82e3b1891c231a94239 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bc67dd4d7e3da82e3b1891c231a94239 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.170Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.173Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bc67dd4d7e3da82e3b1891c231a94239 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bc67dd4d7e3da82e3b1891c231a94239 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.176Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.180Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b579_Generic_model_python_1699356863936_1_on_py_1_sid_9cea?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b579_Generic_model_python_1699356863936_1_on_py_1_sid_9cea?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.237Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.243Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.246Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.267Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_9cea&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_9cea&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.273Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.275Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.279Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.281Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.285Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.287Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.291Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_9cea HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_9cea HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:34:45.292Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":27926,"thread":{"id":4758349312,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:30.386Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:30.386Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:30.396Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:30.396Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:30.402Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.568Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":29378,"thread":{"id":4663744000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.568Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":29380,"thread":{"id":4669920768,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.568Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":29381,"thread":{"id":4579444224,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.568Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":29379,"thread":{"id":4709205504,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.569Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":29380,"thread":{"id":4669920768,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.595Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":29379,"thread":{"id":4709205504,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.595Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":29378,"thread":{"id":4663744000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:33.595Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":29378,"thread":{"id":4663744000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:50.028Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":29378,"thread":{"id":4663744000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:41:50.077Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":29378,"thread":{"id":4663744000,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:42:01.839Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:42:01.902Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:42:01.903Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:42:01.930Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.708Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.709Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.715Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.716Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.717Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:17.718Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.258Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-7","pid":29548,"thread":{"id":4556310016,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.258Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-8","pid":29549,"thread":{"id":4447991296,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.258Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-5","pid":29546,"thread":{"id":4626384384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.258Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-6","pid":29547,"thread":{"id":4456076800,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.259Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-7","pid":29548,"thread":{"id":4556310016,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.288Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-5","pid":29546,"thread":{"id":4626384384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.288Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-6","pid":29547,"thread":{"id":4456076800,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:21.289Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-5","pid":29546,"thread":{"id":4626384384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:37.877Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-5","pid":29546,"thread":{"id":4626384384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:37.929Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-5","pid":29546,"thread":{"id":4626384384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.206Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.264Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.265Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.284Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.317Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.340Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.547Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.755Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:49.964Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:44:50.173Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.410Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.643Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.647Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.655Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.657Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.668Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.671Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.707Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.711Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.726Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.730Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.841Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.850Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.965Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.968Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:14.991Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.199Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.202Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.407Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.411Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aaa05f08422813bc6ab54a700b464f7c HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.415Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.510Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699357495907_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699357495907_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.540Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.551Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.554Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.798Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.801Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.817Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.820Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:15.822Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9f21589de467c2fc728df59f0e3c40e7 HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9f21589de467c2fc728df59f0e3c40e7 HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.030Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.034Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9f21589de467c2fc728df59f0e3c40e7 HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9f21589de467c2fc728df59f0e3c40e7 HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.036Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.056Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_9bd2eaa80b0741277e3d5ef3302f4d20.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_9bd2eaa80b0741277e3d5ef3302f4d20.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.078Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.087Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.090Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.094Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699357495907_1/frames/py_1_sid_91c6 HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699357495907_1/frames/py_1_sid_91c6 HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.096Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.099Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_92e43da1d7b348218c236c9190f74591 HTTP/1.1\" 200 1191","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_92e43da1d7b348218c236c9190f74591 HTTP/1.1\" 200 1191"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.305Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.308Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_92e43da1d7b348218c236c9190f74591 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_92e43da1d7b348218c236c9190f74591 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.311Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.316Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_817d_Generic_model_python_1699357495907_1_on_py_1_sid_91c6?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_817d_Generic_model_python_1699357495907_1_on_py_1_sid_91c6?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.385Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.390Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.392Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.412Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_91c6&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_91c6&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.418Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.420Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.423Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.426Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.430Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.432Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.437Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_91c6 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_91c6 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.438Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.455Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.456Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.462Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.462Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:16.467Z","log.level":"warning","message":"Found latest transaction date: 2023-02-28, dicard 341 data points with date before 2023-02-01. If a sender-receiver relation only exist in data prior to 2023-02-01 or after 2023-02-28, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-02-28, dicard 341 data points with date before 2023-02-01. If a sender-receiver relation only exist in data prior to 2023-02-01 or after 2023-02-28, they won't appear in the final output"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.610Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-9","pid":29583,"thread":{"id":4610418176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.610Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-11","pid":29585,"thread":{"id":4545390080,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.610Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-12","pid":29586,"thread":{"id":4458448384,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.610Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-10","pid":29584,"thread":{"id":4758828544,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.610Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-11","pid":29585,"thread":{"id":4545390080,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.636Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-9","pid":29583,"thread":{"id":4610418176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.636Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-10","pid":29584,"thread":{"id":4758828544,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:19.636Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-9","pid":29583,"thread":{"id":4610418176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:35.604Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-9","pid":29583,"thread":{"id":4610418176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:35.654Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-9","pid":29583,"thread":{"id":4610418176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.203Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.260Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.261Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.278Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.280Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.284Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.491Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.700Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:47.909Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:45:48.117Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.653Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.888Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.891Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.899Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.902Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.912Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.916Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.959Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:11.975Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.029Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.038Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.174Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.182Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.304Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.306Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.315Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.524Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.528Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.735Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.739Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_88e63be86a3cb89ebdba4cc02599453b HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.742Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.834Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699357553649_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699357553649_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.859Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.869Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:12.872Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.111Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7613","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7613"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.114Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.130Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3635","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3635"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.133Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.136Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_954687b24ef7ba6695218ccf56e478f HTTP/1.1\" 200 1155","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_954687b24ef7ba6695218ccf56e478f HTTP/1.1\" 200 1155"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.345Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.348Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_954687b24ef7ba6695218ccf56e478f HTTP/1.1\" 200 1142","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_954687b24ef7ba6695218ccf56e478f HTTP/1.1\" 200 1142"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.351Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.370Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_97ebe76230d0019cc10d61ed2f914897.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_97ebe76230d0019cc10d61ed2f914897.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.387Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.397Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.399Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.404Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699357553649_1/frames/py_3_sid_afd2 HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699357553649_1/frames/py_3_sid_afd2 HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.407Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.409Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aeee20fb82a829f82da33b7b47514512 HTTP/1.1\" 200 1191","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aeee20fb82a829f82da33b7b47514512 HTTP/1.1\" 200 1191"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.616Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.619Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aeee20fb82a829f82da33b7b47514512 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_aeee20fb82a829f82da33b7b47514512 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.622Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.626Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_8900_Generic_model_python_1699357553649_1_on_py_3_sid_afd2?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5556","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_8900_Generic_model_python_1699357553649_1_on_py_3_sid_afd2?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5556"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.696Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.702Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.704Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.723Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_4_sid_afd2&hex_string=False&escape_quotes=True HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_4_sid_afd2&hex_string=False&escape_quotes=True HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.728Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.730Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.734Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.736Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.740Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.742Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.747Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_afd2 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_afd2 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T11:46:13.748Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":29365,"thread":{"id":4648404480,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.778Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.779Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.785Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.786Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.787Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:55.788Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.171Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":31717,"thread":{"id":4455388672,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.171Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":31719,"thread":{"id":4662347264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.171Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":31718,"thread":{"id":4574881280,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.171Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":31716,"thread":{"id":4535682560,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.172Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":31718,"thread":{"id":4574881280,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.198Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":31717,"thread":{"id":4455388672,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.199Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":31716,"thread":{"id":4535682560,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:01:59.199Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":31716,"thread":{"id":4535682560,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:15.456Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":31716,"thread":{"id":4535682560,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:15.502Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":31716,"thread":{"id":4535682560,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.421Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.479Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.480Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.506Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.507Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.526Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.733Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:27.939Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:28.143Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:28.346Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.216Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.455Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.459Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.466Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.468Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.477Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.480Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.515Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.518Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.533Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.536Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.656Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.661Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.776Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.800Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:53.809Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.013Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.017Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.222Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.226Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_91ef7b077ce0b75ced27e3db406f4665 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.229Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.333Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699358554110_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699358554110_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.362Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.373Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.376Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.618Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.621Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.640Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5210","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5210"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.659Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.663Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b58c5c7fb9df34fb5c6bfe06805145af HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b58c5c7fb9df34fb5c6bfe06805145af HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.871Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.874Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b58c5c7fb9df34fb5c6bfe06805145af HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b58c5c7fb9df34fb5c6bfe06805145af HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.877Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.901Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_98fccce6e95d66e3f42b07d1f1b04c84.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_98fccce6e95d66e3f42b07d1f1b04c84.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.922Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.934Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.938Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.942Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699358554110_1/frames/py_1_sid_aaaf HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699358554110_1/frames/py_1_sid_aaaf HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.963Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:54.967Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bfe1c08a8c2503822eefec2cf45b4c62 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bfe1c08a8c2503822eefec2cf45b4c62 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.171Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.175Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bfe1c08a8c2503822eefec2cf45b4c62 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_bfe1c08a8c2503822eefec2cf45b4c62 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.177Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.182Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a8db_Generic_model_python_1699358554110_1_on_py_1_sid_aaaf?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a8db_Generic_model_python_1699358554110_1_on_py_1_sid_aaaf?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.236Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.241Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.244Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.262Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_aaaf&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_aaaf&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.268Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.270Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.273Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.276Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.280Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.281Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.286Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_aaaf HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_aaaf HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:02:55.287Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":31712,"thread":{"id":4427769344,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:24.876Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:24.877Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:24.883Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:24.884Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:24.889Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.220Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-4","pid":33513,"thread":{"id":4811621888,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.220Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-3","pid":33512,"thread":{"id":4426425856,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.220Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-1","pid":33510,"thread":{"id":4478776832,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.220Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-2","pid":33511,"thread":{"id":4584818176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.220Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-3","pid":33512,"thread":{"id":4426425856,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.246Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-1","pid":33510,"thread":{"id":4478776832,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.247Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-1","pid":33510,"thread":{"id":4478776832,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:28.247Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-2","pid":33511,"thread":{"id":4584818176,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:44.594Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-1","pid":33510,"thread":{"id":4478776832,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:44.644Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-1","pid":33510,"thread":{"id":4478776832,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.190Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.249Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.250Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.276Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.307Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.328Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.533Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.742Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:56.949Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:31:57.155Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.213Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.450Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.454Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.460Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.464Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.473Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.476Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.513Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.516Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.531Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.534Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.651Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.660Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.783Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2628"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.785Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.793Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:21.999Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.004Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.208Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.211Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9158467894b024d27b1f04911d084168 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.214Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.305Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360322869_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360322869_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.332Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.342Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 89"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.345Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.585Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 13194"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.588Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.607Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5210","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 5210"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.610Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.613Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b4c48f53300662c05af991d281294b90 HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b4c48f53300662c05af991d281294b90 HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.821Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.825Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b4c48f53300662c05af991d281294b90 HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b4c48f53300662c05af991d281294b90 HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.827Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.850Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_a72b2ae1e96d8da930407fdc91244e16.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_a72b2ae1e96d8da930407fdc91244e16.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.869Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.880Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.882Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.887Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360322869_1/frames/py_1_sid_b838 HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360322869_1/frames/py_1_sid_b838 HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.889Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:22.892Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_912ec3ae4348c56ee3e0567cb3fd4c93 HTTP/1.1\" 200 1191","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_912ec3ae4348c56ee3e0567cb3fd4c93 HTTP/1.1\" 200 1191"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.099Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.103Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_912ec3ae4348c56ee3e0567cb3fd4c93 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_912ec3ae4348c56ee3e0567cb3fd4c93 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.105Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.110Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a8c7_Generic_model_python_1699360322869_1_on_py_1_sid_b838?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_a8c7_Generic_model_python_1699360322869_1_on_py_1_sid_b838?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5551"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.177Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.183Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.186Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.204Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_b838&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_2_sid_b838&hex_string=False&escape_quotes=True HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.209Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.212Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.215Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.217Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.221Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.223Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.227Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_b838 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_b838 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:23.228Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.572Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.573Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.579Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.580Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.581Z","log.level":"info","message":"Score month not Specified, using month 3","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":41,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Score month not Specified, using month 3"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:49.583Z","log.level":"warning","message":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.843Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-5","pid":33561,"thread":{"id":4558411264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.843Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-7","pid":33563,"thread":{"id":4421252608,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.843Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-8","pid":33564,"thread":{"id":4559205888,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.843Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-6","pid":33562,"thread":{"id":4474856960,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.844Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-7","pid":33563,"thread":{"id":4421252608,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.873Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-5","pid":33561,"thread":{"id":4558411264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.873Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-6","pid":33562,"thread":{"id":4474856960,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:32:52.873Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-5","pid":33561,"thread":{"id":4558411264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:09.183Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-5","pid":33561,"thread":{"id":4558411264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:09.231Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-5","pid":33561,"thread":{"id":4558411264,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.626Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.685Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.686Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.704Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.734Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.739Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:20.947Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:21.153Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:21.362Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:21.568Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:44.896Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.134Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.139Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.147Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.149Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.159Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.162Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.199Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2007"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.203Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.218Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.221Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.344Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.351Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.479Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.483Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.491Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.699Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.703Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.912Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.916Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_a736b4b943b548c9d2462551706249be HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:45.919Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.019Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360407106_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360407106_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.048Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.060Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.062Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.321Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7980"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.324Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.342Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.345Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.348Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9aec26c686d72bd3a74d72c4abd24258 HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9aec26c686d72bd3a74d72c4abd24258 HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.556Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.559Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9aec26c686d72bd3a74d72c4abd24258 HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_9aec26c686d72bd3a74d72c4abd24258 HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.562Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.581Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_a9d7a414f109d69e2d76ba6e7bff46f4.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_a9d7a414f109d69e2d76ba6e7bff46f4.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.600Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.609Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.611Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.616Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360407106_1/frames/py_3_sid_94a3 HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360407106_1/frames/py_3_sid_94a3 HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.618Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.621Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b8a673d38997fb32abe1c3a146c44734 HTTP/1.1\" 200 1191","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b8a673d38997fb32abe1c3a146c44734 HTTP/1.1\" 200 1191"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.828Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.831Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b8a673d38997fb32abe1c3a146c44734 HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_b8a673d38997fb32abe1c3a146c44734 HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.834Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.838Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b08a_Generic_model_python_1699360407106_1_on_py_3_sid_94a3?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_b08a_Generic_model_python_1699360407106_1_on_py_3_sid_94a3?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5538"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.907Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.913Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.916Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.936Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_4_sid_94a3&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_4_sid_94a3&hex_string=False&escape_quotes=True HTTP/1.1\" 200 331"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.941Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.944Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.947Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.949Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.953Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.955Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.960Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_94a3 HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_94a3 HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.961Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.976Z","log.level":"info","message":"transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":92,"name":"transform_predict.py"},"function":"transform"},"original":"transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.978Z","log.level":"info","message":"Preprocessing data...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":18,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Preprocessing data..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.984Z","log.level":"info","message":"Converting amount to float; df is now has shape (513, 6)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":26,"name":"process_transactions.py"},"function":"pre_process_txn"},"original":"Converting amount to float; df is now has shape (513, 6)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.984Z","log.level":"info","message":"Data sanity check...","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":38,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Data sanity check..."},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:46.989Z","log.level":"warning","message":"Found latest transaction date: 2023-02-28, dicard 341 data points with date before 2023-02-01. If a sender-receiver relation only exist in data prior to 2023-02-01 or after 2023-02-28, they won't appear in the final output","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":54,"name":"process_transactions.py"},"function":"sanity_check"},"original":"Found latest transaction date: 2023-02-28, dicard 341 data points with date before 2023-02-01. If a sender-receiver relation only exist in data prior to 2023-02-01 or after 2023-02-28, they won't appear in the final output"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.194Z","log.level":"info","message":"getting sentiment features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":43,"name":"transform_predict.py"},"function":"get_sentiment_feature"},"original":"getting sentiment features"},"process":{"name":"Process-11","pid":33602,"thread":{"id":4464330240,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.194Z","log.level":"info","message":"getting text features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":58,"name":"transform_predict.py"},"function":"get_text_features"},"original":"getting text features"},"process":{"name":"Process-12","pid":33603,"thread":{"id":4607415808,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.194Z","log.level":"info","message":"getting tox features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":28,"name":"transform_predict.py"},"function":"get_tox_feature"},"original":"getting tox features"},"process":{"name":"Process-10","pid":33601,"thread":{"id":4514477568,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.194Z","log.level":"info","message":"getting emotion features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":14,"name":"transform_predict.py"},"function":"get_emotion_feature"},"original":"getting emotion features"},"process":{"name":"Process-9","pid":33600,"thread":{"id":4826879488,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.195Z","log.level":"info","message":"Initiating Sentiment Analysis Model","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":21,"name":"sentiment.py"},"function":"get_sentiment_scores"},"original":"Initiating Sentiment Analysis Model"},"process":{"name":"Process-11","pid":33602,"thread":{"id":4464330240,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.221Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-9","pid":33600,"thread":{"id":4826879488,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.222Z","log.level":"info","message":"Initiating Emotions Model for Feature Engineering","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":200,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Initiating Emotions Model for Feature Engineering"},"process":{"name":"Process-9","pid":33600,"thread":{"id":4826879488,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:33:50.222Z","log.level":"info","message":"Public Models Constructor initialised successfully","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":62,"name":"publicmodels.py"},"function":"__init__"},"original":"Public Models Constructor initialised successfully"},"process":{"name":"Process-10","pid":33601,"thread":{"id":4514477568,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:06.349Z","log.level":"info","message":"Calculated Emotions Model Predictions","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":147,"name":"publicmodels.py"},"function":"emotion_model"},"original":"Calculated Emotions Model Predictions"},"process":{"name":"Process-9","pid":33600,"thread":{"id":4826879488,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:06.397Z","log.level":"info","message":"Emotions df shape: (513, 8)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":205,"name":"publicmodels.py"},"function":"get_emotion_model_results"},"original":"Emotions df shape: (513, 8)"},"process":{"name":"Process-9","pid":33600,"thread":{"id":4826879488,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.846Z","log.level":"info","message":"Edge feature df shape: (18, 39)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":149,"name":"sentiment.py"},"function":"get_edge_features"},"original":"Edge feature df shape: (18, 39)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.907Z","log.level":"info","message":"final edge features before filtering: (18, 42)","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":195,"name":"sentiment.py"},"function":"normalize_features"},"original":"final edge features before filtering: (18, 42)"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.907Z","log.level":"info","message":"Generating Final Feature Set","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":196,"name":"sentiment.py"},"function":"normalize_features"},"original":"Generating Final Feature Set"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.927Z","log.level":"info","message":"finished transforming features","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":133,"name":"transform_predict.py"},"function":"transform"},"original":"finished transforming features"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.928Z","log.level":"info","message":"scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":150,"name":"transform_predict.py"},"function":"score"},"original":"scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:17.932Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:18.141Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:18.346Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:18.554Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:18.764Z","log.level":"debug","message":"Starting new HTTP connection (1): localhost:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): localhost:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.084Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.325Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/CloudV3 HTTP/1.1\" 200 14473"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.328Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.335Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1\" 200 6745"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.338Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.349Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1\" 200 8568"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.351Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.390Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2006","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Cloud HTTP/1.1\" 200 2006"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.394Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.411Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/sessions HTTP/1.1\" 200 63"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.413Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.530Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.538Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.659Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ModelBuilders/generic HTTP/1.1\" 200 2629"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.662Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.669Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1111","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1111"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.876Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:42.880Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.087Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.092Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1112","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_8c3d502eb2de887f48dad395235b4159 HTTP/1.1\" 200 1112"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.096Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.192Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360464296_1 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Models/Generic_model_python_1699360464296_1 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.222Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.235Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/PostFile HTTP/1.1\" 200 88"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.238Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.501Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7613","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/ParseSetup HTTP/1.1\" 200 7613"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.504Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.523Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Parse HTTP/1.1\" 200 3637"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.526Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.529Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_baf29334fa9694fef6c5912d20554544 HTTP/1.1\" 200 1159","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_baf29334fa9694fef6c5912d20554544 HTTP/1.1\" 200 1159"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.738Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.742Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_baf29334fa9694fef6c5912d20554544 HTTP/1.1\" 200 1146","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_baf29334fa9694fef6c5912d20554544 HTTP/1.1\" 200 1146"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.745Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.764Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_92bf70e05409379778dd66a4d6964a40.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/Key_Frame__upload_92bf70e05409379778dd66a4d6964a40.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 None"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.782Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.792Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.794Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.799Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360464296_1/frames/py_5_sid_8aad HTTP/1.1\" 200 831","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /4/Predictions/models/Generic_model_python_1699360464296_1/frames/py_5_sid_8aad HTTP/1.1\" 200 831"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.801Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:43.804Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_908dd696cef0ff6e3319aa67d37741cc HTTP/1.1\" 200 1191","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_908dd696cef0ff6e3319aa67d37741cc HTTP/1.1\" 200 1191"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.009Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.012Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_908dd696cef0ff6e3319aa67d37741cc HTTP/1.1\" 200 1192","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Jobs/$03017f00000132d4ffffffff$_908dd696cef0ff6e3319aa67d37741cc HTTP/1.1\" 200 1192"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.015Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.020Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_94c8_Generic_model_python_1699360464296_1_on_py_5_sid_8aad?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5556","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/Frames/transformation_94c8_Generic_model_python_1699360464296_1_on_py_5_sid_8aad?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1\" 200 5556"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.090Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.095Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /99/Rapids HTTP/1.1\" 200 335"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.097Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.115Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_6_sid_8aad&hex_string=False&escape_quotes=True HTTP/1.1\" 200 336","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /3/DownloadDataset?frame_id=py_6_sid_8aad&hex_string=False&escape_quotes=True HTTP/1.1\" 200 336"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.120Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.123Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET / HTTP/1.1\" 301 0"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.126Z","log.level":"debug","message":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"GET /flow/index.html HTTP/1.1\" 200 140544"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.129Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.133Z","log.level":"debug","message":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"POST /3/Shutdown HTTP/1.1\" 200 104"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.135Z","log.level":"debug","message":"Starting new HTTP connection (1): 127.0.0.1:54321","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":228,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): 127.0.0.1:54321"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.139Z","log.level":"debug","message":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8aad HTTP/1.1\" 200 158","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":456,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://127.0.0.1:54321 \"DELETE /4/sessions/_sid_8aad HTTP/1.1\" 200 158"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +{"@timestamp":"2023-11-07T12:34:44.140Z","log.level":"info","message":"finished scoring transaction abuse","ecs":{"version":"1.6.0"},"log":{"logger":"root","origin":{"file":{"line":186,"name":"transform_predict.py"},"function":"score"},"original":"finished scoring transaction abuse"},"process":{"name":"MainProcess","pid":33499,"thread":{"id":4674770432,"name":"MainThread"}}} +[21:48:59 - root - INFO - transform_predict.py->transform:91] - transforming features +[21:48:59 - root - INFO - process_transactions.py->pre_process_txn:18] - Preprocessing data... +[21:48:59 - root - INFO - process_transactions.py->pre_process_txn:26] - Converting amount to float; df is now has shape (513, 6) +[21:48:59 - root - INFO - process_transactions.py->sanity_check:38] - Data sanity check... +[21:48:59 - root - INFO - process_transactions.py->sanity_check:41] - Score month not Specified, using month 3 +[21:48:59 - root - WARNING - process_transactions.py->sanity_check:54] - Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output +[21:49:02 - root - INFO - transform_predict.py->get_text_features:57] - getting text features +[21:49:02 - root - INFO - transform_predict.py->get_sentiment_feature:42] - getting sentiment features +[21:49:02 - root - INFO - transform_predict.py->get_emotion_feature:13] - getting emotion features +[21:49:02 - root - INFO - transform_predict.py->get_tox_feature:27] - getting tox features +[21:49:02 - root - INFO - sentiment.py->get_sentiment_scores:21] - Initiating Sentiment Analysis Model +[21:49:02 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[21:49:02 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[21:49:02 - root - INFO - publicmodels.py->get_emotion_model_results:200] - Initiating Emotions Model for Feature Engineering +[21:49:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:1003] - Starting new HTTPS connection (1): huggingface.co:443 +[21:49:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - https://huggingface.co:443 "HEAD /bhadresh-savani/distilbert-base-uncased-emotion/resolve/main/config.json HTTP/1.1" 200 0 +[21:49:19 - root - INFO - publicmodels.py->emotion_model:147] - Calculated Emotions Model Predictions +[21:49:19 - root - INFO - publicmodels.py->get_emotion_model_results:205] - Emotions df shape: (513, 8) +[21:49:30 - root - INFO - sentiment.py->get_edge_features:149] - Edge feature df shape: (18, 39) +[21:49:30 - root - INFO - sentiment.py->normalize_features:195] - final edge features before filtering: (18, 42) +[21:49:30 - root - INFO - sentiment.py->normalize_features:196] - Generating Final Feature Set +[21:49:30 - root - INFO - transform_predict.py->transform:133] - finished transforming features +[21:49:30 - root - INFO - transform_predict.py->score:150] - scoring transaction abuse +[21:49:30 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[21:49:30 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[21:49:31 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[21:49:31 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[21:49:31 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/CloudV3 HTTP/1.1" 200 14473 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1" 200 6745 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1" 200 8568 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Cloud HTTP/1.1" 200 2004 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/sessions HTTP/1.1" 200 63 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 158 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:56 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ModelBuilders/generic HTTP/1.1" 200 2629 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_9514d56bd2aa87f29ae9e28aa375407d HTTP/1.1" 200 1111 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_9514d56bd2aa87f29ae9e28aa375407d HTTP/1.1" 200 1112 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_9514d56bd2aa87f29ae9e28aa375407d HTTP/1.1" 200 1112 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Models/Generic_model_python_1699361377269_1 HTTP/1.1" 200 None +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/PostFile HTTP/1.1" 200 88 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ParseSetup HTTP/1.1" 200 7980 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Parse HTTP/1.1" 200 3637 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4aee845ab5667eef0c4ea962ed64d09 HTTP/1.1" 200 1159 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4aee845ab5667eef0c4ea962ed64d09 HTTP/1.1" 200 1146 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/Key_Frame__upload_812fed08fd02d7ff7ca06b38194e4c3c.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 None +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 336 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/Predictions/models/Generic_model_python_1699361377269_1/frames/py_1_sid_bd32 HTTP/1.1" 200 831 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_90d9261f96b1aeb667972368853745ec HTTP/1.1" 200 1192 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_90d9261f96b1aeb667972368853745ec HTTP/1.1" 200 1192 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/transformation_bf19_Generic_model_python_1699361377269_1_on_py_1_sid_bd32?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 5538 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 335 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/DownloadDataset?frame_id=py_2_sid_bd32&hex_string=False&escape_quotes=True HTTP/1.1" 200 331 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET / HTTP/1.1" 301 0 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /flow/index.html HTTP/1.1" 200 140544 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Shutdown HTTP/1.1" 200 104 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[21:49:58 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "DELETE /4/sessions/_sid_bd32 HTTP/1.1" 200 158 +[21:49:58 - root - INFO - transform_predict.py->score:186] - finished scoring transaction abuse +[21:59:54 - root - INFO - transform_predict.py->transform:91] - transforming features +[21:59:54 - root - INFO - process_transactions.py->pre_process_txn:18] - Preprocessing data... +[21:59:54 - root - INFO - process_transactions.py->pre_process_txn:26] - Converting amount to float; df is now has shape (513, 6) +[21:59:54 - root - INFO - process_transactions.py->sanity_check:38] - Data sanity check... +[21:59:54 - root - INFO - process_transactions.py->sanity_check:41] - Score month not Specified, using month 3 +[21:59:54 - root - WARNING - process_transactions.py->sanity_check:54] - Found latest transaction date: 2023-03-30, dicard 3 data points with date before 2023-01-01. If a sender-receiver relation only exist in data prior to 2023-01-01 or after 2023-03-30, they won't appear in the final output +[21:59:57 - root - INFO - transform_predict.py->get_emotion_feature:13] - getting emotion features +[21:59:57 - root - INFO - transform_predict.py->get_tox_feature:27] - getting tox features +[21:59:57 - root - INFO - transform_predict.py->get_sentiment_feature:42] - getting sentiment features +[21:59:57 - root - INFO - transform_predict.py->get_text_features:57] - getting text features +[21:59:57 - root - INFO - sentiment.py->get_sentiment_scores:21] - Initiating Sentiment Analysis Model +[21:59:57 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[21:59:57 - root - INFO - publicmodels.py->get_emotion_model_results:200] - Initiating Emotions Model for Feature Engineering +[21:59:57 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[21:59:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:1003] - Starting new HTTPS connection (1): huggingface.co:443 +[21:59:57 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - https://huggingface.co:443 "HEAD /bhadresh-savani/distilbert-base-uncased-emotion/resolve/main/config.json HTTP/1.1" 200 0 +[22:00:13 - root - INFO - publicmodels.py->emotion_model:147] - Calculated Emotions Model Predictions +[22:00:13 - root - INFO - publicmodels.py->get_emotion_model_results:205] - Emotions df shape: (513, 8) +[22:00:24 - root - INFO - sentiment.py->get_edge_features:149] - Edge feature df shape: (18, 39) +[22:00:24 - root - INFO - sentiment.py->normalize_features:195] - final edge features before filtering: (18, 42) +[22:00:24 - root - INFO - sentiment.py->normalize_features:196] - Generating Final Feature Set +[22:00:24 - root - INFO - transform_predict.py->transform:133] - finished transforming features +[22:00:24 - root - INFO - transform_predict.py->score:150] - scoring transaction abuse +[22:00:24 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:00:25 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:00:25 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:00:25 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:00:25 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/CloudV3 HTTP/1.1" 200 14473 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1" 200 6745 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1" 200 8568 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Cloud HTTP/1.1" 200 2007 +[22:00:50 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/sessions HTTP/1.1" 200 63 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 158 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ModelBuilders/generic HTTP/1.1" 200 2628 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_ab681c449feb878139bc4589577741f9 HTTP/1.1" 200 1111 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_ab681c449feb878139bc4589577741f9 HTTP/1.1" 200 1112 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_ab681c449feb878139bc4589577741f9 HTTP/1.1" 200 1112 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Models/Generic_model_python_1699362031513_1 HTTP/1.1" 200 None +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/PostFile HTTP/1.1" 200 89 +[22:00:51 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ParseSetup HTTP/1.1" 200 13194 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Parse HTTP/1.1" 200 5210 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_ab965129966346a382694f429c114373 HTTP/1.1" 200 1159 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_ab965129966346a382694f429c114373 HTTP/1.1" 200 1146 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/Key_Frame__upload_a343278fc09b90cbe7b1c2bce6e74be9.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 None +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 336 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/Predictions/models/Generic_model_python_1699362031513_1/frames/py_1_sid_8546 HTTP/1.1" 200 831 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_b8fef0ecb021c5dedb3815b094884b43 HTTP/1.1" 200 1192 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_b8fef0ecb021c5dedb3815b094884b43 HTTP/1.1" 200 1192 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/transformation_8433_Generic_model_python_1699362031513_1_on_py_1_sid_8546?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 5551 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 335 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/DownloadDataset?frame_id=py_2_sid_8546&hex_string=False&escape_quotes=True HTTP/1.1" 200 335 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET / HTTP/1.1" 301 0 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /flow/index.html HTTP/1.1" 200 140544 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Shutdown HTTP/1.1" 200 104 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:00:52 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "DELETE /4/sessions/_sid_8546 HTTP/1.1" 200 158 +[22:00:52 - root - INFO - transform_predict.py->score:186] - finished scoring transaction abuse +[22:01:05 - root - INFO - transform_predict.py->transform:91] - transforming features +[22:01:05 - root - INFO - process_transactions.py->pre_process_txn:18] - Preprocessing data... +[22:01:05 - root - INFO - process_transactions.py->pre_process_txn:26] - Converting amount to float; df is now has shape (513, 6) +[22:01:05 - root - INFO - process_transactions.py->sanity_check:38] - Data sanity check... +[22:01:05 - root - INFO - process_transactions.py->sanity_check:41] - Score month not Specified, using month 3 +[22:01:05 - root - WARNING - process_transactions.py->sanity_check:54] - Found latest transaction date: 2023-03-30, dicard 342 data points with date before 2023-03-01. If a sender-receiver relation only exist in data prior to 2023-03-01 or after 2023-03-30, they won't appear in the final output +[22:01:09 - root - INFO - transform_predict.py->get_emotion_feature:13] - getting emotion features +[22:01:09 - root - INFO - transform_predict.py->get_sentiment_feature:42] - getting sentiment features +[22:01:09 - root - INFO - transform_predict.py->get_text_features:57] - getting text features +[22:01:09 - root - INFO - transform_predict.py->get_tox_feature:27] - getting tox features +[22:01:09 - root - INFO - sentiment.py->get_sentiment_scores:21] - Initiating Sentiment Analysis Model +[22:01:09 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[22:01:09 - root - INFO - publicmodels.py->__init__:62] - Public Models Constructor initialised successfully +[22:01:09 - root - INFO - publicmodels.py->get_emotion_model_results:200] - Initiating Emotions Model for Feature Engineering +[22:01:09 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:1003] - Starting new HTTPS connection (1): huggingface.co:443 +[22:01:09 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - https://huggingface.co:443 "HEAD /bhadresh-savani/distilbert-base-uncased-emotion/resolve/main/config.json HTTP/1.1" 200 0 +[22:01:25 - root - INFO - publicmodels.py->emotion_model:147] - Calculated Emotions Model Predictions +[22:01:25 - root - INFO - publicmodels.py->get_emotion_model_results:205] - Emotions df shape: (513, 8) +[22:01:36 - root - INFO - sentiment.py->get_edge_features:149] - Edge feature df shape: (18, 39) +[22:01:36 - root - INFO - sentiment.py->normalize_features:195] - final edge features before filtering: (18, 42) +[22:01:36 - root - INFO - sentiment.py->normalize_features:196] - Generating Final Feature Set +[22:01:36 - root - INFO - transform_predict.py->transform:133] - finished transforming features +[22:01:36 - root - INFO - transform_predict.py->score:150] - scoring transaction abuse +[22:01:36 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:01:36 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:01:37 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:01:37 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:01:37 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): localhost:54321 +[22:02:01 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/CloudV3 HTTP/1.1" 200 14473 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OErrorV3 HTTP/1.1" 200 6745 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Metadata/schemas/H2OModelBuilderErrorV3 HTTP/1.1" 200 8568 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Cloud HTTP/1.1" 200 2007 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/sessions HTTP/1.1" 200 63 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 158 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ModelBuilders/generic HTTP/1.1" 200 2629 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4754ab9c20442ae5afd2e6f35e549ef HTTP/1.1" 200 1111 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4754ab9c20442ae5afd2e6f35e549ef HTTP/1.1" 200 1112 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:02 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4754ab9c20442ae5afd2e6f35e549ef HTTP/1.1" 200 1112 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a4754ab9c20442ae5afd2e6f35e549ef HTTP/1.1" 200 1112 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Models/Generic_model_python_1699362103205_1 HTTP/1.1" 200 None +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/PostFile HTTP/1.1" 200 88 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/ParseSetup HTTP/1.1" 200 7980 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Parse HTTP/1.1" 200 3651 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_8a259e3155bff4f789d69c715df0454f HTTP/1.1" 200 1159 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_8a259e3155bff4f789d69c715df0454f HTTP/1.1" 200 1146 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/Key_Frame__upload_af7bcd1a1cbf64d17fab10422cec4515.hex?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 None +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 336 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /4/Predictions/models/Generic_model_python_1699362103205_1/frames/py_1_sid_bc96 HTTP/1.1" 200 831 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:03 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a61233e59da8fb57fd0c0cca656043a4 HTTP/1.1" 200 1192 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Jobs/$03017f00000132d4ffffffff$_a61233e59da8fb57fd0c0cca656043a4 HTTP/1.1" 200 1192 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/Frames/transformation_ae1d_Generic_model_python_1699362103205_1_on_py_1_sid_bc96?row_count=10&row_offset=0&column_count=-1&full_column_count=-1&column_offset=0 HTTP/1.1" 200 5538 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /99/Rapids HTTP/1.1" 200 335 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /3/DownloadDataset?frame_id=py_2_sid_bc96&hex_string=False&escape_quotes=True HTTP/1.1" 200 331 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET / HTTP/1.1" 301 0 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "GET /flow/index.html HTTP/1.1" 200 140544 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "POST /3/Shutdown HTTP/1.1" 200 104 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_new_conn:228] - Starting new HTTP connection (1): 127.0.0.1:54321 +[22:02:04 - urllib3.connectionpool - DEBUG - connectionpool.py->_make_request:456] - http://127.0.0.1:54321 "DELETE /4/sessions/_sid_bc96 HTTP/1.1" 200 158 +[22:02:04 - root - INFO - transform_predict.py->score:186] - finished scoring transaction abuse diff --git a/models/CBA_AITD_Long.zip b/models/CBA_AITD_Long.zip new file mode 100644 index 0000000..1d1974a Binary files /dev/null and b/models/CBA_AITD_Long.zip differ diff --git a/models/CBA_AITD_Short.zip b/models/CBA_AITD_Short.zip new file mode 100644 index 0000000..6e5d18e Binary files /dev/null and b/models/CBA_AITD_Short.zip differ diff --git a/models/h2o-genmodel.jar b/models/h2o-genmodel.jar new file mode 100644 index 0000000..f7b2879 Binary files /dev/null and b/models/h2o-genmodel.jar differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b28093f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,42 @@ +ecs-logging==2.0.0 +GPUtil==1.4.0 +h2o==3.42.0.3 +huggingface-hub==0.12.1 +matplotlib==3.7.0 +multidict==6.0.4 +numpy==1.23.4 +pandarallel==1.6.3 +pandas==1.5.1 +Pillow==9.4.0 +plotly==5.11.0 +psutil==5.9.4 +py-singleton==1.0.0 +pyarrow==10.0.0 +pyparsing==3.0.9 +python-dateutil==2.8.2 +pytz==2022.7.1 +PyYAML==6.0 +regex==2022.10.31 +requests==2.28.2 +rfc3986==1.5.0 +s3fs==2023.3.0 +scikit-learn==1.2.1 +scipy==1.10.1 +six==1.16.0 +sniffio==1.3.0 +starlette==0.13.8 +tenacity==8.2.2 +threadpoolctl==3.1.0 +tokenizers==0.12.1 +torch==1.12.1 +tqdm==4.64.1 +transformers==4.22.1 +typing_extensions==4.5.0 +urllib3==1.26.14 +uvicorn==0.17.6 +vaderSentiment==3.3.2 +wordcloud==1.8.2.2 +wordninja==2.0.0 +wrapt==1.15.0 +yarl==1.8.2 +ipykernel \ No newline at end of file diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..1250477 --- /dev/null +++ b/setup.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -e + +# # Create Virtual Environmemt +eval "$(conda shell.bash hook)" +conda create -n aitd python=3.10 -y +conda activate aitd +pip install -r requirements.txt + +# download models +mkdir -p models/toxicity_model && cd models/toxicity_model && curl -L --output toxic_bias-4e693588.ckpt https://github.com/unitaryai/detoxify/releases/download/v0.1-alpha/toxic_bias-4e693588.ckpt && cd ../.. +mkdir -p models/toxicity_model/transformers && cd models/toxicity_model/transformers && git clone --depth 1 https://huggingface.co/roberta-base && cd ../../.. +mkdir -p models/transformers && cd models/transformers && git clone --depth 1 https://huggingface.co/bhadresh-savani/distilbert-base-uncased-emotion && cd ../..] diff --git a/src/__pycache__/config.cpython-310.pyc b/src/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000..20e9c77 Binary files /dev/null and b/src/__pycache__/config.cpython-310.pyc differ diff --git a/src/__pycache__/config.cpython-39.pyc b/src/__pycache__/config.cpython-39.pyc new file mode 100644 index 0000000..9a15d78 Binary files /dev/null and b/src/__pycache__/config.cpython-39.pyc differ diff --git a/src/__pycache__/detoxify.cpython-310.pyc b/src/__pycache__/detoxify.cpython-310.pyc new file mode 100644 index 0000000..8894918 Binary files /dev/null and b/src/__pycache__/detoxify.cpython-310.pyc differ diff --git a/src/__pycache__/process_transactions.cpython-310.pyc b/src/__pycache__/process_transactions.cpython-310.pyc new file mode 100644 index 0000000..c170cf2 Binary files /dev/null and b/src/__pycache__/process_transactions.cpython-310.pyc differ diff --git a/src/__pycache__/publicmodels.cpython-310.pyc b/src/__pycache__/publicmodels.cpython-310.pyc new file mode 100644 index 0000000..4931c6b Binary files /dev/null and b/src/__pycache__/publicmodels.cpython-310.pyc differ diff --git a/src/__pycache__/sentiment.cpython-310.pyc b/src/__pycache__/sentiment.cpython-310.pyc new file mode 100644 index 0000000..6740039 Binary files /dev/null and b/src/__pycache__/sentiment.cpython-310.pyc differ diff --git a/src/__pycache__/simpletext.cpython-310.pyc b/src/__pycache__/simpletext.cpython-310.pyc new file mode 100644 index 0000000..246f537 Binary files /dev/null and b/src/__pycache__/simpletext.cpython-310.pyc differ diff --git a/src/__pycache__/transform_predict.cpython-310.pyc b/src/__pycache__/transform_predict.cpython-310.pyc new file mode 100644 index 0000000..8f668e2 Binary files /dev/null and b/src/__pycache__/transform_predict.cpython-310.pyc differ diff --git a/src/__pycache__/transform_predict.cpython-39.pyc b/src/__pycache__/transform_predict.cpython-39.pyc new file mode 100644 index 0000000..4929948 Binary files /dev/null and b/src/__pycache__/transform_predict.cpython-39.pyc differ diff --git a/src/config.py b/src/config.py new file mode 100644 index 0000000..8783964 --- /dev/null +++ b/src/config.py @@ -0,0 +1,82 @@ +import logging +import logging.handlers +from pathlib import Path + +LOGDIR = "logs" +LOGFILE_NAME = "aitd.log" + +logging.basicConfig(filename=f"{LOGDIR}/{LOGFILE_NAME}", + filemode='a', + format="[%(asctime)s - %(name)s - %(levelname)s - %(filename)s->%(funcName)s:%(lineno)s] - %(message)s", + datefmt='%H:%M:%S', + level=logging.DEBUG) + +logger = logging.getLogger('root') + +SEQ_MODE = True + +# Data Configurations +edge_feat_source = "sender_id" +edge_feat_target = "receiver_id" +txn_data_ind_col = "Z_receipt_number" # Index Column +txn_data_amount_col = "amount" # Transaction Value Column Name +txn_description = "tx_description" # Transaction Description Column Name + + +# These are the features that are used for lag and reciprocal features +reference_features = [ + "sender_id", + "receiver_id", + "num_trans_sum", + "anger_sum", + "fear_sum", + "joy_max", + "love_sum", + "neutral_sum", + "sadness_sum", + "surprise_sum", + "toxicity_percentile", + "severe_toxicity_percentile", + "obscene_percentile", + "identity_attack_percentile", + "insult_percentile", + "threat_percentile", + "sexual_explicit_percentile", + "amount_mean", + "length_transaction_median", + "longest_word_median", + "date", + "day_between_max_min", +] + +# model configs +# emo_model_path = "models/transformers/distilbert-base-uncased-emotion/" +emo_model_path = "bhadresh-savani/distilbert-base-uncased-emotion" +emo_list = ["anger", "fear", "joy", "love", "neutral", "sadness", "surprise"] +tox_model_dir = "models/toxicity_model/transformers/" +tox_model_path = "models/toxicity_model/toxic_bias-4e693588.ckpt" + +# base model related data +model_base_path = "models" + +# save model results +save_model_results = 1 # 1 => Save and overwrite 2 => Save as a new file + +count_features = True +# flag to merge results of emotion and toxicity models +merge_tox_emo_models = True + +# dir where model binaries are stored +model_dir = "model_binaries" + +# num workers for parallel processing +num_workers = 30 + +# Cuda device for GPU +device = 1 + +# min batch size for parallel processing +min_batch_size = 10 + +# max batch size for parallel processing +max_batch_size = 100 diff --git a/src/detoxify.py b/src/detoxify.py new file mode 100644 index 0000000..294146a --- /dev/null +++ b/src/detoxify.py @@ -0,0 +1,118 @@ +# This code was taken from Detoxify library and tweaked to work with CBA infrastructure (https://github.com/unitaryai/detoxify) + +import torch +import transformers +from typing import Tuple, Any + +PRETRAINED_MODEL = None + + +def get_model_and_tokenizer( + burt_model_loc: str, + model_type: str, + model_name: str, + tokenizer_name: str, + num_classes: int, + state_dict: dict, +) -> Tuple[Any, Any]: + burt_model_location = burt_model_loc + model_type + model_class = getattr(transformers, model_name) + model = model_class.from_pretrained( + pretrained_model_name_or_path=burt_model_location, + num_labels=num_classes, + state_dict=state_dict, + ) + tokenizer = getattr(transformers, tokenizer_name).from_pretrained( + burt_model_loc + "roberta-base" + ) + return model, tokenizer + + +def load_checkpoint( + burt_model_loc: str, + model_type: str = "original", + checkpoint: str = None, + device: str = "cpu", +) -> Tuple[Any, Any, str]: + if checkpoint is None: + checkpoint_path = model_type + loaded = torch.hub.load_state_dict_from_url( + checkpoint_path, map_location=device + ) + else: + loaded = torch.load(checkpoint) + if "config" not in loaded or "state_dict" not in loaded: + raise ValueError( + "Checkpoint needs to contain the config it was trained \ + with as well as the state dict" + ) + class_names = loaded["config"]["dataset"]["args"]["classes"] + + model, tokenizer = get_model_and_tokenizer( + burt_model_loc, + **loaded["config"]["arch"]["args"], + state_dict=loaded["state_dict"] + ) + return model, tokenizer, class_names + + +def load_model(model_type: str, checkpoint: str = None) -> Any: + if checkpoint is None: + model, _, _ = load_checkpoint(model_type=model_type) + else: + model, _, _ = load_checkpoint(checkpoint=checkpoint) + return model + + +class Detoxify: + """Detoxify + Easily predict if a comment or list of comments is toxic. + Can initialize 3 different model types from model type or checkpoint path: + - unbiased: + model trained on data from the Jigsaw Unintended Bias in + Toxicity Classification Challenge + Args: + model_type(str): model type to be loaded, can be either original, + unbiased or multilingual + checkpoint(str): checkpoint path, defaults to None + device(str or torch.device): accepts any torch.device input or + torch.device object, defaults to cpu + Returns: + results(dict): dictionary of output scores for each class + """ + + def __init__( + self, + burt_model_loc: str, + model_type: str = "unbiased", + checkpoint: str = PRETRAINED_MODEL, + device: str = "cpu", + ) -> None: + super(Detoxify, self).__init__() + if burt_model_loc[-1] != "/": + burt_model_loc = burt_model_loc + "/" + self.model, self.tokenizer, self.class_names = load_checkpoint( + burt_model_loc, + model_type=model_type, + checkpoint=checkpoint, + device=device, + ) + self.device = device + self.model.to(self.device) + + @torch.no_grad() + def predict(self, text: str) -> dict: + self.model.eval() + inputs = self.tokenizer( + text, return_tensors="pt", truncation=True, padding=True + ).to(self.model.device) + out = self.model(**inputs)[0] + scores = torch.sigmoid(out).cpu().detach().numpy() + results = {} + for i, cla in enumerate(self.class_names): + results[cla] = ( + scores[0][i] + if isinstance(text, str) + else [scores[ex_i][i].tolist() for ex_i in range(len(scores))] + ) + return results diff --git a/src/process_transactions.py b/src/process_transactions.py new file mode 100644 index 0000000..5ce2739 --- /dev/null +++ b/src/process_transactions.py @@ -0,0 +1,183 @@ +import pandas as pd +import datetime +from dateutil.relativedelta import relativedelta + +# local imports +from src import config as dc +from src.sentiment import * +from src.process_transactions import * + + +def pre_process_txn(df: pd.DataFrame) -> pd.DataFrame: + """Reads transactions from a csv file into a pandas df + Parameters: + df (pd.DataFrame): input dataframe + Returns: + pd.DataFrame: Pandas DF containing all the transactions + """ + dc.logger.info("Preprocessing data...") + df[dc.txn_data_ind_col] = df.index + df[dc.txn_data_amount_col] = ( + df[dc.txn_data_amount_col] + .replace(",", "", regex=True) + .apply(pd.to_numeric, errors="coerce") + ) + df[["tx_date"]] = df[["tx_date"]].apply(pd.to_datetime) + dc.logger.info(f"Converting amount to float; df is now has shape {str(df.shape)}") + + return df + +def sanity_check(df: pd.DataFrame, score_month: int = None, score_year: int = None, lag: int = 2) -> None: + """Warns user if some data will be discard + Parameters: + df (pd.DataFrame): input dataframe + Returns: + pd.DataFrame: Pandas DF containing all the transactions + """ + + dc.logger.info("Data sanity check...") + if score_month is None: + date_r = df["tx_date"].max() + dc.logger.info("Score month not Specified, using month " + str(date_r.month)) + else: + if score_year is None: + date_r = max(df[df['tx_date'].dt.month == score_month]['tx_date']) + else: + date_r = max(df[(df['tx_date'].dt.month == score_month) & (df['tx_date'].dt.year == score_year)]['tx_date']) + + date_l = (date_r - relativedelta(months=(lag))).replace(day=1) + if_discard = len(df) - len(df[(df["tx_date"] > date_l) & (df["tx_date"] <= date_r)]) + + # Inform User about options selected + if if_discard: + msg = f"Found latest transaction date: {date_r:%Y-%m-%d}, dicard {if_discard} data points with date before {date_l:%Y-%m-%d}. If a sender-receiver relation only exist in data prior to {date_l:%Y-%m-%d} or after {date_r:%Y-%m-%d}, they won't appear in the final output" + dc.logger.warn(msg) + print(f"Warning: {msg}") + + + +def merge_tox_amo_scores( + tox_df: pd.DataFrame, + emo_df: pd.DataFrame, + text_feat_df: pd.DataFrame, + sent_df: pd.DataFrame, +) -> pd.DataFrame: + merged_tox_emo_df = pd.DataFrame() + # print(emo_df) + # merging emotions / toxicity / both results + merged_tox_emo_df = pd.merge(tox_df, emo_df, on=dc.txn_data_ind_col) + sent_df.drop( + columns=["sender_id", "receiver_id", "tx_description", "amount", "tx_date"], + inplace=True, + ) + merged_text_sent_df = pd.merge(text_feat_df, sent_df, on=dc.txn_data_ind_col) + prefinal_set = pd.merge( + merged_tox_emo_df, merged_text_sent_df, on=dc.txn_data_ind_col + ) + + prefinal_set.fillna(0, inplace=True) + prefinal_set.drop_duplicates(subset=dc.txn_data_ind_col, inplace=True) + return prefinal_set + + +def get_prev_year_months(year: int, month: int, n: int = 2) -> list: + res = [] + year = f"{year}" + month = f"{month}".rjust(2, "0") + prev_month = datetime.datetime.strptime(f"{year}-{month}-01", "%Y-%m-%d") + while n > 0: + prev_month = prev_month - datetime.timedelta(days=1) + prev_month = prev_month.replace(day=1) + res.append(prev_month.year * 100 + prev_month.month) + n -= 1 + return res + + +def construct_feature_df( + final_edges: pd.DataFrame, + year: int, + month: int, + lag: int = 2, + reciprical_features: bool = True, + lag_features=True, +) -> pd.DataFrame: + + month_ini = pd.DataFrame() + reference = dc.reference_features + cols_to_duplicate = set(reference).intersection(final_edges.columns) + year_month = int(year) * 100 + int(month) + month_ini = final_edges[final_edges["year_month"] == year_month].copy() + + assert ( + month_ini.shape[0] > 0 + ), f"no data available with year_month filter {year_month}" + + if reciprical_features: + month_inid = month_ini[cols_to_duplicate].copy() + month_inid.columns = [ + ("recip_" + str(i)) if i not in (["sender_id", "receiver_id"]) else i + for i in list(month_inid.columns) + ] + month_ini.drop_duplicates(inplace=True) + month_ini = pd.merge( + month_ini, + month_inid, + left_on=["sender_id", "receiver_id"], + right_on=["sender_id", "receiver_id"], + how="left", + ) + month_ini.drop_duplicates(inplace=True) + """ + month_ini.drop(['sender_id_y', 'usr_recip_y'], axis=1, inplace=True) + month_ini.rename(columns={ + 'sender_id_x': 'sender_id', + 'receiver_id_x': 'receiver_id' + }, inplace=True) + """ + if lag > 0 and lag_features: + year_months = get_prev_year_months(year, month, n=lag) + # print(year_months) + for month_offset, year_month in enumerate(year_months): + month_offset += 1 + month_n = final_edges[final_edges["year_month"] == year_month][ + cols_to_duplicate + ].copy() + assert ( + month_n.shape[0] > 0 + ), f"no data available with year_mont filter {year_month}" + month_n.columns = [ + f"month_min{month_offset}_{str(i)}" + if i not in (["sender_id", "receiver_id"]) + else i + for i in list(month_n.columns) + ] + month_ini = pd.merge( + month_ini, month_n, on=["sender_id", "receiver_id"], how="left" + ) + month_ini.fillna(0, inplace=True) + return month_ini + return month_ini + + +def gen_features(final_edges: pd.DataFrame, txn_df: pd.DataFrame, lag: int, score_month: int, score_year: int) -> pd.DataFrame: + final_normalised_edges = normalize_features(final_edges) + + feature_df = pd.DataFrame() + + if score_year is None: + year = max(txn_df["tx_date"]).year + else: + year = score_year + + # print(year) + if score_month is None: + month = max(txn_df["tx_date"]).month + else: + month = score_month + # print(month) + lag = lag + + feature_df = construct_feature_df( + final_normalised_edges, year, month, lag, True, True + ) + return feature_df diff --git a/src/publicmodels.py b/src/publicmodels.py new file mode 100644 index 0000000..65eb51f --- /dev/null +++ b/src/publicmodels.py @@ -0,0 +1,210 @@ +import pandas as pd +import numpy as np +import wordninja +import re +import GPUtil +import torch +from typing import Dict + +# from pandarallel import pandarallel +from transformers import pipeline + +# local imports +from src import detoxify +from src import config as dc + + +def unicode_escape(text: str) -> str: + try: + return text.encode("utf-8").decode("unicode_escape") + except Exception: + return text + + +def preprocessing(text: str) -> str: + if text == "": + return text + text = unicode_escape(text) + text = re.sub(r"\d+", "", text) # Remove numbers + + # Split long messages that have no spaces + tokens = [] + for word in text.split(" "): + if len(word) > 5: + tokens += wordninja.split(word) + else: + tokens.append(word) + + return " ".join(x for x in tokens) + + +class public_models: + # Parameter to add - batch size here. + def __init__( + self, transactions: pd.DataFrame, num_workers: int = dc.num_workers + ) -> None: + transactions_copy = transactions.copy() + transactions_copy["processed_description"] = transactions_copy[ + "tx_description" + ].apply(preprocessing) + transactions_copy = transactions_copy.reset_index(drop=True) + n_procs = max( + int(len(transactions_copy) / dc.max_batch_size), dc.min_batch_size + ) + + self.trans_df_batches = np.array_split(transactions_copy, n_procs) + + try: + self.if_cuda = True if torch.cuda.is_available() else False + except Exception as e: + dc.logger.error(e) + + dc.logger.info("Public Models Constructor initialised successfully") + + return + + def detoxify_model(self) -> pd.DataFrame: + """ + Parameters: + + Returns: + + """ + model_path = dc.tox_model_path + + detox = detoxify.Detoxify( + burt_model_loc=dc.tox_model_dir, checkpoint=model_path, device="cpu" + ) + toxicity = pd.DataFrame( + {dc.txn_data_ind_col: [], **{cl: [] for cl in detox.class_names}} + ) + counts = 0 + + # can be parallelised using mp + for batched_text in self.trans_df_batches: + try: + batched_result = detox.predict(list(batched_text.processed_description)) + except Exception as e: + dc.logger.error(e) + return toxicity + + dict_to_append = { + dc.txn_data_ind_col: batched_text[dc.txn_data_ind_col], + **batched_result, + } + # append result dict + toxicity = pd.concat([toxicity, pd.DataFrame(dict_to_append)]) + # if counts % 100 == 0: + # print(counts) + counts += 1 + + del detox + if self.if_cuda: + # Clearing Memory + torch.cuda.empty_cache() + torch.cuda.empty_cache() + GPUtil.showUtilization() + torch.cuda.empty_cache() + GPUtil.showUtilization() + + return toxicity + + def emotion_model(self) -> Dict: + model_path = dc.emo_model_path + + classifier = pipeline( + "text-classification", + model= model_path, + return_all_scores=False, + binary_output=True, + device=-1, + ) # -1 for cpu, 1 for gpu + emotions_results = pd.DataFrame( + {"label": [], "score": [], dc.txn_data_ind_col: []} + ) + + counts = 0 + for batched_text in self.trans_df_batches: + try: + emotions_result = classifier(list(batched_text.processed_description)) + temp = pd.DataFrame(emotions_result) + temp[dc.txn_data_ind_col] = list(batched_text[dc.txn_data_ind_col]) + emotions_results = pd.concat([emotions_results, temp]) + except Exception as e: + dc.logger.error(e) + return emotions_result + + if self.if_cuda: + torch.cuda.empty_cache() + # if counts % 100 == 0: + # # print(counts) + counts += 1 + + dummy = pd.get_dummies(emotions_results["label"]) + emotions = pd.concat([emotions_results, dummy], axis=1) + emotions.drop(["label", "score"], axis=1, inplace=True) + + dc.logger.info("Calculated Emotions Model Predictions") + + return emotions + + +def get_tox_model_results(txn_df: pd.DataFrame) -> Dict: + """ + Parameters: + txn_df (pd.DataFrame): input df containing transactions + Returns: + op (dict): Status output containing status code, status + and payload df containing tox values + """ + tox_op_df = pd.DataFrame() + tox_df = pd.DataFrame() + op = dc.return_op + + pm = public_models( + txn_df, model_dir=dc.tox_model_input_dir, num_workers=dc.num_workers + ) + try: + dc.logger.info("Initiating Toxicity Model for Feature Engineering") + tox_op_df = pm.detoxify_model() + dc.logger.info( + "Toxicity df shape: {op['payload'].shape} with ret_val {op['status_code']}" + ) + except Exception as e: + dc.logger.error(e) + op["status"] = str(e) + op["status_code"] = "E604" + op["payload"] = tox_df + return op + + if tox_op_df["status_code"] != 0: + return tox_op_df + + tox_df = tox_op_df["payload"] + + return op + + +def get_emotion_model_results(txn_df: pd.DataFrame) -> Dict: + """ + Parameters: + txn_df (pd.DataFrame): input df containing transactions + Returns: + op (dict): Status output containing status code, status + and payload df containing tox values + """ + emo_df = pd.DataFrame() + + pm = public_models(txn_df, num_workers=dc.num_workers) + try: + dc.logger.info("Initiating Emotions Model for Feature Engineering") + emo_df = pm.emotion_model() + for col in dc.emo_list: + if col not in emo_df.columns: + emo_df[col] = 0 + dc.logger.info(f"Emotions df shape: {emo_df.shape}") + except Exception as e: + dc.logger.error("Error in Emotions Model") + dc.logger.error(str(e)) + + return emo_df diff --git a/src/sentiment.py b/src/sentiment.py new file mode 100644 index 0000000..e48ee87 --- /dev/null +++ b/src/sentiment.py @@ -0,0 +1,198 @@ +import pandas as pd +import numpy as np +from typing import Tuple, Callable, Any +from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer + +# local imports +from src import config as dc + + +def load_sentiment_model() -> Any: + analyzer = SentimentIntensityAnalyzer() + return analyzer + + +def get_sentiment_scores(txn_df: pd.DataFrame) -> pd.DataFrame: + """Get sentiment scores""" + sent_obj = "Z_sentiment_object" + sent_neg_col = "neg" + sent_compound_col = "compound" + + dc.logger.info("Initiating Sentiment Analysis Model") + try: + sent_analyzer = load_sentiment_model() + except Exception as e: + dc.logger.error(e) + return None + txn_df[sent_obj] = txn_df[dc.txn_description].apply( + lambda x: sent_analyzer.polarity_scores(x) + ) + txn_df[sent_neg_col] = txn_df[sent_obj].apply(lambda x: x["neg"]) + txn_df[sent_compound_col] = txn_df[sent_obj].apply(lambda x: x["compound"]) + txn_df = txn_df.drop([sent_obj], axis=1) + + return txn_df + + +def percentile(n: int) -> Callable: + def percentile_(x): + return np.percentile(x, n) + + return percentile_ + + +def get_time_features( + final_edges: pd.DataFrame, final_set: pd.DataFrame +) -> Tuple[int, pd.DataFrame]: + try: + final_set["date"] = final_set["tx_date"].dt.date + final_set["max_trans_in_day"] = 1 + + final_set_date_l = ( + final_set[ + ["sender_id", "receiver_id", "date", "max_trans_in_day", "year_month"] + ] + .groupby(["sender_id", "receiver_id", "date", "year_month"]) + .agg("count") + ) + final_set_date_l.reset_index(inplace=True) + + final_set_date = ( + final_set_date_l.groupby(["sender_id", "receiver_id", "year_month"]) + .agg({"date": "nunique", "max_trans_in_day": max}) + .reset_index() + ) + + final_set_date["day_between_max_min"] = ( + final_set_date_l[["sender_id", "receiver_id", "date", "year_month"]] + .groupby(["sender_id", "receiver_id", "year_month"])["date"] + .transform(lambda x: (x.max() - x.min()).days) + ) + final_edges = pd.merge( + final_edges, final_set_date, on=["sender_id", "receiver_id", "year_month"] + ) + except Exception as E: + dc.logger.error("Error in Date-Time Feature Engineering") + dc.logger.error(str(E)) + + final_edges.drop_duplicates(inplace=True) + + return 0, final_edges + + +def get_edge_features( + txn_df: pd.DataFrame, final_set: pd.DataFrame +) -> Tuple[int, pd.DataFrame, pd.DataFrame]: + final_edges = pd.DataFrame() + final_set = pd.merge( + txn_df[[dc.edge_feat_source, dc.edge_feat_target, dc.txn_data_ind_col]], + final_set, + ) # HC + dict_fun = dict(zip(final_set.columns, [["mean"]] * len(final_set.columns))) + drop_features = set( + [ + "tx_date", + "sender_id", + "receiver_id", + "Z_receipt_number", + "tx_description", + "processed_description", + ] + ).intersection(final_set.columns) + + for _ in drop_features: + dict_fun.pop(_) + + for key, value in dict_fun.items(): + if len(key) == 3: + dict_fun[key] = "max" + elif key in [ + "length_transaction", + "longest_word", + "number_words", + "words_prop_length", + "neg", + "sent_neg", + ]: + dict_fun[key] = ["min", "max", "median"] + elif key in ["anger", "fear", "joy", "love", "neutral", "sadness", "surprise"]: + dict_fun[key] = "sum" + elif key in [ + "toxicity", + "severe_toxicity", + "obscene", + "identity_attack", + "insult", + "threat", + "sexual_explicit", + ]: + dict_fun[key] = [percentile(75)] + + if dc.count_features: + dict_fun["num_trans"] = "sum" + final_set["num_trans"] = 1 + + final_set["tx_date"] = pd.to_datetime(final_set["tx_date"]) + final_set["year_month"] = ( + final_set["tx_date"].dt.year * 100 + final_set["tx_date"].dt.month + ) + + final_edges_features = ( + final_set.groupby(["sender_id", "receiver_id", "year_month"]) + .agg(dict_fun) + .reset_index() + ) + final_edges_features.columns = final_edges_features.columns.map("_".join).str.strip( + "_" + ) + final_edges = final_edges_features + dc.logger.info(f"Edge feature df shape: {final_edges_features.shape}") + + return 0, final_edges, final_set + + +def normalize_features(final_edges: pd.DataFrame) -> pd.DataFrame: + def emo_norm(row, column): + return row[column] / row["num_trans_sum"] + + filter_col = [ + "sender_id", + "receiver_id", + "year_month", + "processed_description", + "joy_max", + ] + + final_edges["anger_sum"] = final_edges.apply( + lambda x: emo_norm(x, "anger_sum"), axis=1 + ) + final_edges["fear_sum"] = final_edges.apply( + lambda x: emo_norm(x, "fear_sum"), axis=1 + ) + final_edges["joy_max"] = final_edges.apply(lambda x: emo_norm(x, "joy_max"), axis=1) + final_edges["love_sum"] = final_edges.apply( + lambda x: emo_norm(x, "love_sum"), axis=1 + ) + final_edges["neutral_sum"] = final_edges.apply( + lambda x: emo_norm(x, "neutral_sum"), axis=1 + ) + final_edges["sadness_sum"] = final_edges.apply( + lambda x: emo_norm(x, "sadness_sum"), axis=1 + ) + final_edges["surprise_sum"] = final_edges.apply( + lambda x: emo_norm(x, "surprise_sum"), axis=1 + ) + # if not score: + try: + final_edges = final_edges.apply( + lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)) + if x.name not in filter_col + else x + ) + except Exception as e: + print(f"Failed to normalize : {str(e)}") + + dc.logger.info(f"final edge features before filtering: {final_edges.shape}") + dc.logger.info("Generating Final Feature Set") + + return final_edges diff --git a/src/simpletext.py b/src/simpletext.py new file mode 100644 index 0000000..0b5f642 --- /dev/null +++ b/src/simpletext.py @@ -0,0 +1,160 @@ +import string +import pandas as pd +from pandarallel import pandarallel +from string import punctuation +from typing import Tuple + +# local imports +from src.config import * + + +class simple_text_features: + def __init__( + self, transaction_descriptions: pd.DataFrame, workers: int = 1 + ) -> None: + """ + Initialise this class + transaction_descriptions: Data Frame with features + workers: number of cores to use for paralellisation (1 default) + """ + self.is_parallel = workers != 1 + if self.is_parallel: + pandarallel.initialize( + nb_workers=workers, progress_bar=False, use_memory_fs=False + ) + self.transaction_descriptions = transaction_descriptions + + """ + Simple Text Features calculation for all transaction descriptions in a Data Frame + """ + + # Length of Transaction Description + def length(self) -> pd.Series: + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(len) + return self.transaction_descriptions.apply(len) + + # Whether the transaction has upper case and lower case + def mixed_case(self) -> pd.Series: + def mixed_case_individual(row): + return int(not row[1:].islower() and not row.isupper()) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(mixed_case_individual) + return self.transaction_descriptions.apply(mixed_case_individual) + + # Whether the transaction is all lower case + def lower(self) -> pd.Series: + def lower_individual(row): + return int(row.islower()) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(lower_individual) + return self.transaction_descriptions.apply(lower_individual) + + # Whether the transaction is all upper case + def upper(self) -> pd.Series: + def upper_individual(row): + return int(row.isupper()) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(upper_individual) + return self.transaction_descriptions.apply(upper_individual) + + # Number of words in a transaction description + def numWords(self) -> pd.Series: + def num_words_individual(row): + return len(row.split()) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(num_words_individual) + return self.transaction_descriptions.apply(num_words_individual) + + # Whether the transaction contains punctuation + def punctuationsjd(self) -> pd.Series: + def punctuation_individual(row): + return int(bool(any(p in row for p in punctuation))) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(punctuation_individual) + return self.transaction_descriptions.apply(punctuation_individual) + + # Whether the transaction is only made up of punctuation or numbers + def all_punctuation_or_number(self) -> pd.Series: + def all_punc_num_individual(row): + return int( + bool( + all(j.isdigit() or j in string.punctuation for j in i) for i in row + ) + ) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply(all_punc_num_individual) + return self.transaction_descriptions.apply(all_punc_num_individual) + + # Whether the transaction contains + def number_contains(self) -> pd.Series: + def number_contains_individual(row): + return int(bool(any(j.isdigit() for j in i) for i in row)) + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply( + number_contains_individual + ) + return self.transaction_descriptions.apply(number_contains_individual) + + # The length of the longest word in the transaction + def find_longest_word(self) -> pd.Series: + def find_longest_word_individual(row): + word_list = row.split() + longest_size = 0 + for word in word_list: + if len(word) > longest_size: + longest_size = len(word) + return longest_size + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply( + find_longest_word_individual + ) + return self.transaction_descriptions.apply(find_longest_word_individual) + + # The proportion of words to the length of the transaction + def proportion_word_length(self) -> pd.Series: + def num_words_individual(row): + return len(row.split()) + + def proportion_word_length_individual(row): + if num_words_individual(row) != 0 and len(row) != 0: + return num_words_individual(row) / len(row) + else: + return 0 + + if self.is_parallel: + return self.transaction_descriptions.parallel_apply( + proportion_word_length_individual + ) + return self.transaction_descriptions.apply(proportion_word_length_individual) + + +def get_simple_text_features(transactions) -> Tuple[int, pd.DataFrame]: + ret_val = 0 + try: + st = simple_text_features(transactions.tx_description) + transactions["length_transaction"] = st.length() + transactions["mixedcase"] = st.mixed_case() + transactions["lowercase"] = st.lower() + transactions["upper_case"] = st.upper() + transactions["number_words"] = st.numWords() + transactions["punctuation_found"] = st.punctuationsjd() + transactions["all_punctuation_or_number"] = st.all_punctuation_or_number() + transactions["longest_word"] = st.find_longest_word() + transactions["number_contains"] = st.number_contains() + transactions["words_prop_length"] = st.proportion_word_length() + transactions["num_trans"] = 1 + except Exception as E: + logger.error("Error in Simple Text Features") + logger.error(str(E)) + return -1, transactions + + return ret_val, transactions diff --git a/src/transform_predict.py b/src/transform_predict.py new file mode 100644 index 0000000..d0a8c1b --- /dev/null +++ b/src/transform_predict.py @@ -0,0 +1,188 @@ +import pandas as pd +import h2o +import torch +import sys +from multiprocessing import Process, Queue +from typing import Any + +from src import config, simpletext, publicmodels, sentiment +from src import process_transactions as pt +from src.process_transactions import * + +def get_emotion_feature(txn_df: pd.DataFrame, q: Any = None) -> pd.DataFrame: + config.logger.info(f"getting emotion features") + exit_code = 0 + emo_df = pd.DataFrame() + try: + emo_df = publicmodels.get_emotion_model_results(txn_df) + except Exception as e: + config.logger.error(f"Failed to get emotion features {str(e)}") + exit_code = 1 + if q: + q.put([exit_code, emo_df]) + return exit_code, emo_df + + +def get_tox_feature(txn_df: pd.DataFrame, q: Any = None) -> pd.DataFrame: + config.logger.info(f"getting tox features") + exit_code = 0 + tox_df = pd.DataFrame() + try: + pm = publicmodels.public_models(txn_df) + tox_df = pm.detoxify_model() + except Exception as e: + config.logger.error(f"Failed to get tox feature {str(e)}") + exit_code = 1 + if q: + q.put([exit_code, tox_df]) + return exit_code, tox_df + + +def get_sentiment_feature(txn_df: pd.DataFrame, q: Any = None) -> pd.DataFrame: + config.logger.info(f"getting sentiment features") + exit_code = 0 + sentiment_df = pd.DataFrame() + try: + sentiment_df = sentiment.get_sentiment_scores(txn_df) + except Exception as e: + config.logger.error(f"Failed to get sentiment feature {str(e)}") + exit_code = 1 + if q: + q.put([exit_code, sentiment_df]) + + return exit_code, sentiment_df + + +def get_text_features(txn_df: pd.DataFrame, q: Any = None) -> pd.DataFrame: + config.logger.info(f"getting text features") + exit_code = 0 + text_feat_df = pd.DataFrame() + try: + status, text_feat_df = simpletext.get_simple_text_features(txn_df) + if status != 0: + raise SystemExit() + except Exception as e: + config.logger.error(f"Failed to get text feature {str(e)}") + exit_code = 1 + if q: + q.put([exit_code, text_feat_df]) + return exit_code, text_feat_df + + +def transform(data: pd.DataFrame, score_month = None, score_year = None, lag = 2) -> pd.DataFrame: + """ + Transforms the input data + added columns: + - emotion features + - toxicity features + - sentiment features + - text features + Convert the data from long to wide format + + Args: + data(pd.DataFrame): + input dataframe, consists of the columns: tx_description, sender_id, receiver_id, tx_date, amount + + Returns: + pd.DataFrame + """ + + # preprocess_txn_data + config.logger.info(f"transforming features") + txn_df = pt.pre_process_txn(data) + pt.sanity_check(txn_df, score_month = score_month, score_year = score_year, lag = lag) + # print(txn_df) + if torch.cuda.is_available(): + ec1, emo_df = get_emotion_feature(txn_df.copy()) + ec2, tox_df = get_tox_feature(txn_df.copy()) + ec3, sentiment_df = get_sentiment_feature(txn_df.copy()) + ec4, text_feat_df = get_text_features(txn_df.copy()) + #elif SEQ_MODE: + else: + q1, q2, q3, q4 = Queue(), Queue(), Queue(), Queue() + p1 = Process(target=get_emotion_feature, args=(txn_df.copy(), q1)) + p2 = Process(target=get_tox_feature, args=(txn_df.copy(), q2)) + p3 = Process(target=get_sentiment_feature, args=(txn_df.copy(), q3)) + p4 = Process(target=get_text_features, args=(txn_df.copy(), q4)) + [p.start() for p in [p1, p2, p3, p4]] + ec1, emo_df = q1.get() + ec2, tox_df = q2.get() + ec3, sentiment_df = q3.get() + ec4, text_feat_df = q4.get() + [sys.exit(1) for i in [ec1, ec2, ec3, ec4] if i == 1] + [p.join() for p in [p1, p2, p3, p4]] + + # merge_models_text_features + [ + sys.exit( + f"Error: error(s) in feature generation step(s), see {config.LOG_FILE_DIR} folder for more detail" + ) + for i in [ec1, ec2, ec3, ec4] + if i == 1 + ] + prefinal_set = merge_tox_amo_scores(tox_df, emo_df, text_feat_df, sentiment_df) + + # get_edgetime_features + edge_df = pd.DataFrame() + _, edge_df, final_set = get_edge_features(txn_df.copy(), prefinal_set) + final_edges = pd.DataFrame() + _, final_edges = get_time_features(edge_df, final_set) + + # generate_final_featureset + feature_df = gen_features(final_edges, txn_df.copy(), lag=lag, score_month=score_month, score_year=score_year) + config.logger.info(f"finished transforming features") + return feature_df + + +def score(data: pd.DataFrame, model_loc: str = "models/AITD_Model.zip") -> pd.DataFrame: + """ + scores the input data using h2o model + + Args: + data(pd.DataFrame): + input dataframe, consists of the columns: tx_description, sender_id, receiver_id, tx_date, amount + model_loc(str): + path of the h2o model + + Returns: + pd.DataFrame + """ + config.logger.info(f"scoring transaction abuse") + h2o.init() + + # Model Defs + data = data.fillna(0) + imported_model = h2o.import_mojo(model_loc) + list_of_features = list(imported_model._model_json["output"]["names"])[:-1] + + try: + # Set-up Score Data + X = h2o.H2OFrame(data) + x_score_h2o = X[list_of_features] + except: + missing = set(list_of_features) - set(list(data.columns)) + print("Failed - Missing columns: " + str(missing) + ". Please check you are scoring the correct model for your historical data length. " ) + return + + + predictions = imported_model.predict(x_score_h2o) + + # Format Outputs + predictions["sender_id"] = X["sender_id"] + predictions["receiver_id"] = X["receiver_id"] + predictions = predictions[["sender_id", "receiver_id", "p0", "p1"]] + predictions.columns = [ + "sender_id", + "receiver_id", + "probability_non_abuse", + "probability_abuse", + ] + + # Convert To DataFrame + predictions_out = predictions.as_data_frame() + predictions_out = predictions_out.sort_values("probability_abuse", ascending=False) + + h2o.cluster().shutdown() + config.logger.info(f"finished scoring transaction abuse") + + return predictions_out diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..6e8bf73 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +0.1.0