While deploying my app on heroku it’s giving me a R15 error. I am trying to deploy multiple recommendation system in one web app…
[from bokeh.models.widgets import Div
import streamlit as st
import pickle
import pandas as pd
import numpy as np
import requests
import json
import books_api
def app():
st.title('Book recommender')

df=pd.read_csv('apps/df.csv')

df1=pd.read_csv('apps/data.csv',error_bad_lines = False,warn_bad_lines=False)

title = df1['title'].drop_duplicates()

auth=df1['authors'].drop_duplicates()

with open('model.pkl','rb') as f:

    model=pickle.loads(f.read())



model.fit(df)

dist, idlist = model.kneighbors(df)

def book_covers(name):

    cover=[]

    try:

        book_id = df1[df1['title'] == name].index

        book_id = book_id[0]

    except IndexError:

        pass

    for newid in idlist[book_id]:

        cover.append(df1.loc[newid].isbn)

    return cover



def auth_covers(name):

    auth_list = []

    auth_id = df1[df1['authors'] == name].index

    auth_id = auth_id[0]

           

    for newauthid in idlist[auth_id]:

        auth_list.append(df1.loc[newauthid].isbn)

    return auth_list



def Recommender(name):

        book_list = []

        try:

            book_id = df1[df1['title'] == name].index

            book_id = book_id[0]

        except IndexError:

            pass

        for newid in idlist[book_id]:

            book_list.append(df1.loc[newid].title)

        return book_list



def author(auth_name):

        auth_list = []

        auth_id = df1[df1['authors'] == auth_name].index

        auth_id = auth_id[0]

           

        for newauthid in idlist[auth_id]:

            auth_list.append(df1.loc[newauthid].authors)

        return auth_list

def author_book(auth_name):

    books=[]

    auth_id = df1[df1['authors'] == auth_name].index

    auth_id = auth_id[0]

    for newauthid in idlist[auth_id]:

        books.append(df1.loc[newauthid].title)

    return books

def details(isbn):

    try:

        api = books_api.Api()

        json_data = api.list(f'isbn:{isbn}')

        data =json_data['items'][0]

        return (data['volumeInfo']['previewLink'])

    except KeyError:

        pass

side=st.radio("systems",["Book Recommendation","Author recommendation"])

if side=="Book Recommendation":

    book_input=st.selectbox('Enter the book name:',title)

    output1=Recommender(book_input)

    if st.button('Show Recommendation'):

        st.write(f"The Recommended Books for **{book_input}**: ")

        for i in range(1,len(output1)):

            st.write(f'{i}) {output1[i]}')

            isbn=book_covers(book_input)

            url="http://covers.openlibrary.org/b/isbn/{}-L.jpg".format(isbn[i])

            st.image(url)

            link = f'[More Info]({details(isbn[i])})'

            st.markdown(link, unsafe_allow_html=True)

                               

if side=="Author recommendation":

    author_input=st.selectbox("Enter the author's name:",auth)

    output2=author(author_input)

    output3=author_book(author_input)

    if st.button('Show Recommendation'):

        st.write(f"The Recommended authors for **{author_input}**:")

        for j in range(1,len(output2)):

            st.write(f'''{j})Author: {output2[j]}      

                 Book recommended for the author: {output3[j]}''')

            isbn1=auth_covers(author_input)

            url="http://covers.openlibrary.org/b/isbn/{}-L.jpg".format(isbn1[j])

            st.image(url)

            link = f'[More Info]({details(isbn1[j])})'

            st.markdown(link, unsafe_allow_html=True)](https://code) 

I am guessing there is some memory leak issue here