|
import streamlit as st |
|
import base64 |
|
from fpdf import FPDF |
|
import pikepdf |
|
import fitz |
|
|
|
|
|
ml_outline = [ |
|
"π 1. Mixture of Experts (MoE)", |
|
"π₯ 2. Supervised Fine-Tuning (SFT) using PyTorch", |
|
"π€ 3. Large Language Models (LLM) using Transformers", |
|
"π 4. Self-Rewarding Learning using NPS 0-10 and Verbatims", |
|
"π 5. Reinforcement Learning from Human Feedback (RLHF)", |
|
"π 6. MergeKit: Merging Models to Same Embedding Space", |
|
"π 7. DistillKit: Model Size Reduction with Spectrum Analysis", |
|
"π§ 8. Agentic RAG Agents using Document Inputs", |
|
"β³ 9. Longitudinal Data Summarization from Multiple Docs", |
|
"π 10. Knowledge Extraction using Markdown Knowledge Graphs", |
|
"πΊοΈ 11. Knowledge Mapping with Mermaid Diagrams", |
|
"π» 12. ML Code Generation with Streamlit/Gradio/HTML5+JS" |
|
] |
|
|
|
def create_pdf_with_library(library_name, outline_items): |
|
if library_name == "fpdf": |
|
pdf = FPDF(orientation='L', unit='mm', format='A4') |
|
pdf.add_page() |
|
pdf.set_font("Arial", size=10) |
|
|
|
|
|
pdf.set_xy(10, 10) |
|
pdf.multi_cell(140, 5, "Cutting-Edge ML Areas (1-6)\n\n" + "\n".join(outline_items[:6])) |
|
|
|
|
|
pdf.set_xy(150, 10) |
|
pdf.multi_cell(140, 5, "Cutting-Edge ML Areas (7-12)\n\n" + "\n".join(outline_items[6:])) |
|
|
|
filename = "ml_outline_fpdf.pdf" |
|
pdf.output(filename) |
|
return filename |
|
|
|
elif library_name == "pikepdf": |
|
pdf = pikepdf.Pdf.new() |
|
page = pikepdf.Page(pdf.make_stream(b"")) |
|
|
|
pdf.pages.append(page) |
|
filename = "ml_outline_pikepdf.pdf" |
|
pdf.save(filename) |
|
return filename |
|
|
|
elif library_name == "pymupdf": |
|
doc = fitz.open() |
|
page = doc.new_page(width=842, height=595) |
|
|
|
page.insert_text((20, 20), "Cutting-Edge ML Areas (1-6)\n\n" + "\n".join(outline_items[:6]), |
|
fontsize=10) |
|
|
|
page.insert_text((422, 20), "Cutting-Edge ML Areas (7-12)\n\n" + "\n".join(outline_items[6:]), |
|
fontsize=10) |
|
filename = "ml_outline_pymupdf.pdf" |
|
doc.save(filename) |
|
return filename |
|
|
|
def get_binary_file_downloader_html(bin_file, file_label='File'): |
|
with open(bin_file, 'rb') as f: |
|
data = f.read() |
|
bin_str = base64.b64encode(data).decode() |
|
href = f'<a href="data:application/octet-stream;base64,{bin_str}" download="{file_label}">Download {file_label}</a>' |
|
return href |
|
|
|
|
|
st.title("π Cutting-Edge ML Outline Generator") |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
|
|
with col1: |
|
st.header("π Markdown Outline") |
|
outline_text = "\n".join(ml_outline) |
|
st.markdown(outline_text) |
|
|
|
|
|
md_file = "ml_outline.md" |
|
with open(md_file, "w") as f: |
|
f.write(outline_text) |
|
st.markdown(get_binary_file_downloader_html(md_file, "ml_outline.md"), unsafe_allow_html=True) |
|
|
|
with col2: |
|
st.header("π PDF Preview") |
|
pdf_library = st.selectbox("Choose PDF Library", ["fpdf", "pikepdf", "pymupdf"]) |
|
|
|
if st.button("Generate PDF"): |
|
with st.spinner("Generating PDF..."): |
|
pdf_file = create_pdf_with_library(pdf_library, ml_outline) |
|
|
|
|
|
with open(pdf_file, "rb") as f: |
|
pdf_bytes = f.read() |
|
|
|
st.download_button( |
|
label="Download PDF", |
|
data=pdf_bytes, |
|
file_name=pdf_file, |
|
mime="application/pdf" |
|
) |
|
|
|
|
|
base64_pdf = base64.b64encode(pdf_bytes).decode('utf-8') |
|
pdf_display = f'<iframe src="data:application/pdf;base64,{base64_pdf}" width="100%" height="400" type="application/pdf"></iframe>' |
|
st.markdown(pdf_display, unsafe_allow_html=True) |
|
|
|
|
|
st.markdown(""" |
|
<style> |
|
.stButton>button { |
|
background-color: #4CAF50; |
|
color: white; |
|
} |
|
.stSelectbox { |
|
max-width: 300px; |
|
} |
|
</style> |
|
""", unsafe_allow_html=True) |