File size: 1,322 Bytes
64c6e7a
 
 
 
 
 
 
 
 
 
a2142e5
 
64c6e7a
a2142e5
64c6e7a
 
 
 
 
 
 
 
 
de171eb
bdedfa4
 
 
 
 
 
 
 
 
 
64c6e7a
a2142e5
64c6e7a
 
a2142e5
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
import streamlit as st

from transformers import GPT2Tokenizer, GPT2LMHeadModel

model_path='KhantKyaw/GPT2_chatbot2'
  
tokenizer = GPT2Tokenizer.from_pretrained(model_path)
tokenizer.pad_token = tokenizer.eos_token  
model = GPT2LMHeadModel.from_pretrained(model_path)

def generate_response(input_text):
  input_ids = tokenizer.encode(input_text, return_tensors='pt')
   
  output_sequences = model.generate(
    input_ids=input_ids,
    max_length=100,
    temperature=1.0,
    top_k=50,
    top_p=0.95,
    repetition_penalty=1.2,
    do_sample=True,
    pad_token_id=tokenizer.eos_token_id,
    )
  
  response_with_prefix = tokenizer.decode(output_sequences[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
  response_start_idx = response_with_prefix.find("answer: ")
    if response_start_idx != -1:
        # Extract everything after "answer: "
        response = response_with_prefix[response_start_idx + len("answer: "):]
    else:
        # If "answer:" is not found in the response, return the whole response
        response = response_with_prefix

    return response

prompt = st.chat_input(placeholder="Say Something!",key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None)
if prompt:
   with st.chat_message(name="AI",avatar=None):
    st.write(generate_response(prompt))