|
|
import streamlit as st |
|
|
from dotenv import load_dotenv |
|
|
import os |
|
|
from langchain_openai import ChatOpenAI |
|
|
|
|
|
|
|
|
load_dotenv("apiroute.env") |
|
|
api_key = os.getenv("OPENAI_API_KEY") |
|
|
api_base = os.getenv("OPENAI_API_BASE") |
|
|
|
|
|
|
|
|
if not api_key or not api_base: |
|
|
st.error("β API key or base URL missing in apiroute.env.") |
|
|
st.stop() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
llm = ChatOpenAI(model_name="google/gemma-3n-e2b-it:free", temperature=0.7) |
|
|
|
|
|
|
|
|
st.set_page_config(page_title="Chatbot", layout="centered") |
|
|
st.title("π¬ Chat with me") |
|
|
|
|
|
|
|
|
if "history" not in st.session_state: |
|
|
st.session_state.history = [] |
|
|
|
|
|
|
|
|
for sender, msg in st.session_state.history: |
|
|
st.markdown(f"**{sender}:** {msg}") |
|
|
|
|
|
|
|
|
user_input = st.text_input("AsK me Anything", key="input") |
|
|
|
|
|
|
|
|
if user_input and st.session_state.get("input_submitted") is not True: |
|
|
st.session_state.history.append(("You", user_input)) |
|
|
response = llm.invoke(user_input) |
|
|
st.session_state.history.append(("Bot", response.content)) |
|
|
|
|
|
|
|
|
st.session_state.input_submitted = True |
|
|
st.session_state.input = "" |
|
|
st.rerun() |
|
|
|
|
|
|
|
|
if st.session_state.get("input_submitted"): |
|
|
st.session_state.input_submitted = False |
|
|
|
|
|
|