import streamlit as st
import pandas as pd
st.set_page_config(page_title="Custom Button Example", layout="wide")
st.title('Рекомендация книг на основе пользовательского промта')
st.subheader('Основная информация')
def load_data(file_path):
return pd.read_csv(file_path)
df = load_data('data/books_data_cleaned.csv')
data = {
'Источник': ['chitai-gorod.ru'],
'Кол-во книг': ['5000'],
'Уникальных авторов': ['2112'],
'Жанр': ['Художественная лит-ра'],
'Время парсинга': ['77 минут'],
}
df1 = pd.DataFrame(data)
st.dataframe(df1)
st.subheader('Используемые модели:')
data1 = {
'sentence-transformers': ['all-mpnet-base-v2'],
'Pre-Trained MS MARCO Models': ['msmarco-roberta-base-v3'],
}
df2 = pd.DataFrame(data1)
st.markdown(df2.to_html(escape=False), unsafe_allow_html=True)
def show_random_books():
sample_df = df.sample(n=10)
num_books = len(sample_df)
num_rows = (num_books + 1) // 2
for i in range(num_rows):
cols = st.columns(4) # Создаем 4 колонки
for j in range(2):
index = i * 2 + j
if index < num_books:
row = sample_df.iloc[index]
if j == 0:
with cols[0]: # Первая колонка (обложка первой книги)
st.image(row['image_url'], width=200)
with cols[1]: # Вторая колонка (информация первой книги)
st.subheader(row['title'])
st.write(f"Автор: {row['author']}")
st.write(f"**Ссылка:** [книга]({row['page_url']})")
st.write("---")
elif j == 1:
with cols[2]: # Третья колонка (обложка второй книги)
st.image(row['image_url'], width=200)
with cols[3]: # Четвертая колонка (информация второй книги)
st.subheader(row['title'])
st.write(f"Автор: {row['author']}")
st.write(f"**Ссылка:** [книга]({row['page_url']})")
if st.button('Показать 10 случайных книг'):
show_random_books()