|
import torch |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import streamlit as st |
|
import airllm |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-27b") |
|
model = AutoModelForCausalLM.from_pretrained( |
|
"google/gemma-2-27b", |
|
device_map="auto", |
|
torch_dtype=torch.bfloat16 |
|
) |
|
|
|
|
|
|
|
|
|
air_llm = airllm.AirLLM(model, tokenizer) |
|
|
|
|
|
st.set_page_config( |
|
page_title="Chatbot with GEMMA 2B and AirLLM", |
|
page_icon="π€", |
|
layout="wide", |
|
initial_sidebar_state="expanded", |
|
) |
|
|
|
|
|
st.title("Conversational Chatbot with GEMMA 2B and AirLLM") |
|
|
|
|
|
st.sidebar.header("Chatbot Configuration") |
|
theme = st.sidebar.selectbox("Choose a theme", ["Default", "Dark", "Light"]) |
|
|
|
|
|
if theme == "Dark": |
|
st.markdown( |
|
""" |
|
<style> |
|
.reportview-container { |
|
background: #2E2E2E; |
|
color: #FFFFFF; |
|
} |
|
.sidebar .sidebar-content { |
|
background: #333333; |
|
} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
elif theme == "Light": |
|
st.markdown( |
|
""" |
|
<style> |
|
.reportview-container { |
|
background: #FFFFFF; |
|
color: #000000; |
|
} |
|
.sidebar .sidebar-content { |
|
background: #F5F5F5; |
|
} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
|
|
|
|
user_input = st.text_input("You: ", "") |
|
if st.button("Send"): |
|
if user_input: |
|
|
|
response = air_llm.generate_response(user_input) |
|
st.text_area("Bot:", value=response, height=200, max_chars=None) |
|
else: |
|
st.warning("Please enter a message.") |
|
|
|
|
|
st.sidebar.markdown( |
|
""" |
|
### About |
|
This is a conversational chatbot built using the base version of the GEMMA 2B model and AirLLM. |
|
""" |
|
) |
|
|