This could be a version issue? I see in your requirements.txt file you’re running sklearn 1.2.2, maybe versioning up to 1.3.0 could be a solution according to a related StackOverflow: https://stackoverflow.com/questions/76631305/attributeerror-cant-get-attribute-euclideandistance-on-module-sklearn-metr
Edit: on my local machine I’m running sklearn 1.2.2 and your code functioned, so maybe it’s a different issue. But also by the way, your app gives a Positive or Negative Confidence of 100% for every single prediction regardless of settings. Is that intended?
Second edit: looks like this exact question may have been answered on this Streamlit community discussion 2 years ago: ModuleNotFoundError: No module named 'sklearn.neighbors._dist_metrics'