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()