File size: 1,608 Bytes
8be459e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ec107c2
8be459e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
926527f
 
 
 
8be459e
926527f
 
8be459e
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import streamlit as st
import torch
from transformers import BioGptTokenizer, BioGptForCausalLM, set_seed

# Load model and tokenizer
@st.cache_resource
def load_model():
    tokenizer = BioGptTokenizer.from_pretrained("microsoft/biogpt")
    model = BioGptForCausalLM.from_pretrained("microsoft/biogpt")
    return model, tokenizer

# Initialize model and tokenizer
model, tokenizer = load_model()

# Streamlit Interface
st.title("BioGPT Text Generator")
st.markdown("Generate text completions using **BioGPT**. Enter an incomplete sentence below and let BioGPT complete it!")

# User Input
sentence = st.text_area("Enter an incomplete sentence:", 
    placeholder="Chest pain can be caused by various factors such as"
)

if st.button("Generate Text"):
    if not sentence.strip():
        st.error("Please enter a valid sentence to generate text.")
    else:
        with st.spinner("Generating text..."):
            # Tokenize input
            inputs = tokenizer(sentence, return_tensors="pt")
            
            # Set random seed for reproducibility
            set_seed(42)

            # Generate text
            with torch.no_grad():
                beam_output = model.generate(
                    **inputs,
                    max_length=1024, 
                    do_sample=True, 
                    top_p=0.9, 
                    top_k=50
                )


            
            # Decode and display the result
            generated_text = tokenizer.decode(beam_output[0], skip_special_tokens=True)
            st.subheader("Generated Text:")
            st.write(generated_text)