server using prepared models

This commit is contained in:
wojtek 2024-02-19 20:16:33 +01:00
parent 686c75dbb6
commit 9ed51ed28b
10 changed files with 104651 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
name: findproj
channels:
- defaults
dependencies:
- jupyterlab
- pandas
- scikit-learn
- matplotlib
- flask
prefix: /home/wojtek/miniconda3/envs/findproj

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
euproj_server/model_nn.sav Normal file

Binary file not shown.

176
euproj_server/server.ipynb Normal file
View File

@ -0,0 +1,176 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "2f54e447-af06-4046-85b9-b340b8c855b3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" * Serving Flask app '__main__'\n",
" * Debug mode: off\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[31m\u001b[1mWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.\u001b[0m\n",
" * Running on http://127.0.0.1:5001\n",
"\u001b[33mPress CTRL+C to quit\u001b[0m\n",
"127.0.0.1 - - [19/Feb/2024 19:27:12] \"POST /pytanie HTTP/1.1\" 200 -\n",
"127.0.0.1 - - [19/Feb/2024 19:27:13] \"POST /pytanie HTTP/1.1\" 200 -\n",
"127.0.0.1 - - [19/Feb/2024 19:27:13] \"POST /pytanie HTTP/1.1\" 200 -\n"
]
}
],
"source": [
"from flask import Flask, request, jsonify\n",
"import pandas as pd\n",
"import numpy as np\n",
"import joblib\n",
"\n",
"df = pd.read_csv('Lista_projektow_FE_2014_2020_020124.csv')\n",
"tfidf_vectorizer=joblib.load(\"vectoriser.sav\")\n",
"model_fin_warto=joblib.load(\"model_fin_warto.sav\")\n",
"model_fin_kwali=joblib.load(\"model_fin_kwali.sav\")\n",
"model_fin_dofin=joblib.load(\"model_fin_dofin.sav\")\n",
"model_fundusz=joblib.load(\"model_fundusz.sav\")\n",
"model_dziedz=joblib.load(\"model_dziedz.sav\")\n",
"nn_model =joblib.load(\"model_nn.sav\")\n",
"\n",
"app = Flask(__name__)\n",
"\n",
"@app.route('/pytanie', methods=['POST'])\n",
"def obsluga_pytania():\n",
" data = request.get_json()\n",
" pytanie = data.get('pytanie', '')\n",
"\n",
" if pytanie:\n",
" pytanie_tfidf = tfidf_vectorizer.transform([pytanie])\n",
" projects = nn_model.kneighbors(pytanie_tfidf)[1].flatten()\n",
" return jsonify(\n",
" Predicted_fin_warto = str(np.round(np.exp(model_fin_warto.predict(pytanie_tfidf)),2)),\n",
" Predicted_fin_kwali = str(np.round(np.exp(model_fin_kwali.predict(pytanie_tfidf)),2)),\n",
" Predicted_fin_dofin = str(np.round(np.exp(model_fin_dofin.predict(pytanie_tfidf)),2)),\n",
" Predicted_fundusz = str(model_fundusz.predict(pytanie_tfidf)),\n",
" Predicted_dziedzina = str(model_dziedz.predict(pytanie_tfidf)),\n",
" P1_Project_name = str(df.iloc[projects[0]].iloc[0]),\n",
" P1_Project_summary = str(df.iloc[projects[0]].iloc[1]),\n",
" P1_Contract_number = str(df.iloc[projects[0]].iloc[2]),\n",
" P1_Beneficiary_name = str(df.iloc[projects[0]].iloc[3]),\n",
" P1_Fund = str(df.iloc[projects[0]].iloc[4]),\n",
" P1_Programme = str(df.iloc[projects[0]].iloc[5]),\n",
" P1_Priority_axis = str(df.iloc[projects[0]].iloc[6]),\n",
" P1_Measure = str(df.iloc[projects[0]].iloc[7]),\n",
" P1_Submeasure = str(df.iloc[projects[0]].iloc[8]),\n",
" P1_Total_project_value = str(df.iloc[projects[0]].iloc[9]),\n",
" P1_Total_eligible_expenditure = str(df.iloc[projects[0]].iloc[10]),\n",
" P1_Amount_of_EU_co_financing = str(df.iloc[projects[0]].iloc[11]),\n",
" P1_Union_co_financing_rate = str(df.iloc[projects[0]].iloc[12]),\n",
" P1_Form_of_finance = str(df.iloc[projects[0]].iloc[13]),\n",
" P1_Project_location = str(df.iloc[projects[0]].iloc[14]),\n",
" P1_Territory_type = str(df.iloc[projects[0]].iloc[15]),\n",
" P1_Project_start_date = str(df.iloc[projects[0]].iloc[16]),\n",
" P1_Project_end_date = str(df.iloc[projects[0]].iloc[17]),\n",
" P1_Project_implemented_under_competitive_or_non_competitive_procedure = str(df.iloc[projects[0]].iloc[18]),\n",
" P1_Area_of_economic_activity = str(df.iloc[projects[0]].iloc[19]),\n",
" P1_Area_of_project_intervention = str(df.iloc[projects[0]].iloc[20]),\n",
" P1_Project_thematic_objective = str(df.iloc[projects[0]].iloc[21]),\n",
" P1_ESF_secondary_theme = str(df.iloc[projects[0]].iloc[22]),\n",
" P1_Project_implemented_under_territorial_delivery_mechanisms = str(df.iloc[projects[0]].iloc[23]),\n",
" P1_Funding_completed = str(df.iloc[projects[0]].iloc[24]),\n",
" P2_Project_name = str(df.iloc[projects[1]].iloc[0]),\n",
" P2_Project_summary = str(df.iloc[projects[1]].iloc[1]),\n",
" P2_Contract_number = str(df.iloc[projects[1]].iloc[2]),\n",
" P2_Beneficiary_name = str(df.iloc[projects[1]].iloc[3]),\n",
" P2_Fund = str(df.iloc[projects[1]].iloc[4]),\n",
" P2_Programme = str(df.iloc[projects[1]].iloc[5]),\n",
" P2_Priority_axis = str(df.iloc[projects[1]].iloc[6]),\n",
" P2_Measure = str(df.iloc[projects[1]].iloc[7]),\n",
" P2_Submeasure = str(df.iloc[projects[1]].iloc[8]),\n",
" P2_Total_project_value = str(df.iloc[projects[1]].iloc[9]),\n",
" P2_Total_eligible_expenditure = str(df.iloc[projects[1]].iloc[10]),\n",
" P2_Amount_of_EU_co_financing = str(df.iloc[projects[1]].iloc[11]),\n",
" P2_Union_co_financing_rate = str(df.iloc[projects[1]].iloc[12]),\n",
" P2_Form_of_finance = str(df.iloc[projects[1]].iloc[13]),\n",
" P2_Project_location = str(df.iloc[projects[1]].iloc[14]),\n",
" P2_Territory_type = str(df.iloc[projects[1]].iloc[15]),\n",
" P2_Project_start_date = str(df.iloc[projects[1]].iloc[16]),\n",
" P2_Project_end_date = str(df.iloc[projects[1]].iloc[17]),\n",
" P2_Project_implemented_under_competitive_or_non_competitive_procedure = str(df.iloc[projects[1]].iloc[18]),\n",
" P2_Area_of_economic_activity = str(df.iloc[projects[1]].iloc[19]),\n",
" P2_Area_of_project_intervention = str(df.iloc[projects[1]].iloc[20]),\n",
" P2_Project_thematic_objective = str(df.iloc[projects[1]].iloc[21]),\n",
" P2_ESF_secondary_theme = str(df.iloc[projects[1]].iloc[22]),\n",
" P2_Project_implemented_under_territorial_delivery_mechanisms = str(df.iloc[projects[1]].iloc[23]),\n",
" P2_Funding_completed = str(df.iloc[projects[1]].iloc[24]),\n",
" P3_Project_name = str(df.iloc[projects[2]].iloc[0]),\n",
" P3_Project_summary = str(df.iloc[projects[2]].iloc[1]),\n",
" P3_Contract_number = str(df.iloc[projects[2]].iloc[2]),\n",
" P3_Beneficiary_name = str(df.iloc[projects[2]].iloc[3]),\n",
" P3_Fund = str(df.iloc[projects[2]].iloc[4]),\n",
" P3_Programme = str(df.iloc[projects[2]].iloc[5]),\n",
" P3_Priority_axis = str(df.iloc[projects[2]].iloc[6]),\n",
" P3_Measure = str(df.iloc[projects[2]].iloc[7]),\n",
" P3_Submeasure = str(df.iloc[projects[2]].iloc[8]),\n",
" P3_Total_project_value = str(df.iloc[projects[2]].iloc[9]),\n",
" P3_Total_eligible_expenditure = str(df.iloc[projects[2]].iloc[10]),\n",
" P3_Amount_of_EU_co_financing = str(df.iloc[projects[2]].iloc[11]),\n",
" P3_Union_co_financing_rate = str(df.iloc[projects[2]].iloc[12]),\n",
" P3_Form_of_finance = str(df.iloc[projects[2]].iloc[13]),\n",
" P3_Project_location = str(df.iloc[projects[2]].iloc[14]),\n",
" P3_Territory_type = str(df.iloc[projects[2]].iloc[15]),\n",
" P3_Project_start_date = str(df.iloc[projects[2]].iloc[16]),\n",
" P3_Project_end_date = str(df.iloc[projects[2]].iloc[17]),\n",
" P3_Project_implemented_under_competitive_or_non_competitive_procedure = str(df.iloc[projects[2]].iloc[18]),\n",
" P3_Area_of_economic_activity = str(df.iloc[projects[2]].iloc[19]),\n",
" P3_Area_of_project_intervention = str(df.iloc[projects[2]].iloc[20]),\n",
" P3_Project_thematic_objective = str(df.iloc[projects[2]].iloc[21]),\n",
" P3_ESF_secondary_theme = str(df.iloc[projects[2]].iloc[22]),\n",
" P3_Project_implemented_under_territorial_delivery_mechanisms = str(df.iloc[projects[2]].iloc[23]),\n",
" P3_Funding_completed = str(df.iloc[projects[2]].iloc[24])\n",
" )\n",
" else:\n",
" return jsonify({'error': 'Brak pytania'}), 400\n",
"\n",
"if __name__ == '__main__':\n",
" app.run(debug=False, port=5001)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1e33ccee-21cd-4e47-bf26-d324d777fc81",
"metadata": {},
"outputs": [],
"source": [
"df.info()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

Binary file not shown.