Spaces:
Running
Running
File size: 4,306 Bytes
002b092 9f54a3b eb4a24d dab5cc9 9f54a3b eb4a24d 9f54a3b 8ff67d3 9f54a3b 8ff67d3 2a7dbb2 9f54a3b 8ff67d3 98c29f4 8ff67d3 0ca86ba 9f54a3b eb4a24d 142827c 9f54a3b eb4a24d 142827c eb4a24d 142827c eb4a24d 98c29f4 142827c eb4a24d 2a7dbb2 93979c3 eabc41f 8ff67d3 9f54a3b eb4a24d 9f54a3b 002b092 eb4a24d 002b092 eb4a24d 002b092 8ff67d3 |
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
import numpy as np
import streamlit as st
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv()
# Initialize the OpenAI client
client = OpenAI(
base_url="https://api-inference.huggingface.co/v1",
api_key=os.environ.get('HUGGINGFACEHUB_API_TOKEN') # Replace with your token
)
# Create supported model
model_links = {
"Zephyr-7B": "HuggingFaceH4/zephyr-7b-beta"
}
# Pull info about the model to display
model_info = {
"Meta-Llama-3-8B": {
'description': """The **Meta-Llama 3 (8B)** is a cutting-edge **Large Language Model (LLM)** developed by Meta's AI team, comprising over 8 billion parameters. This model has been specifically fine-tuned for educational purposes to excel in interactive question-and-answer sessions.\n"""
}
}
# Reset the conversation
def reset_conversation():
st.session_state.conversation = []
st.session_state.messages = []
return None
# App title and description
st.title("Sci-Mom 👩🏫 ")
st.subheader("AI chatbot for Solving your doubts 📚 :)")
# Custom description for SciMom in the sidebar
st.sidebar.write("Built for my mom, with love ❤️. This model is pretrained with textbooks of Science NCERT.")
st.sidebar.write("Base-Model used: Meta Llama, trained using: Docker AutoTrain.")
# Add technical details in the sidebar
st.sidebar.markdown(model_info["Meta-Llama-3-8B"]['description'])
st.sidebar.markdown("""
### Meta-Llama 3 (8B)
Yo, this **Meta-Llama 3 (8B)** is a next-level AI model built by Meta's genius squad. It packs a whopping **8 billion parameters** and is totally fine-tuned for school stuff, especially science Q&As.
### How it’s Trained:
We fed it all the juicy info from **NCERT science textbooks** (yep, the same ones you use), covering Physics, Chem, Bio, and more. With **Docker AutoTrain**, we made sure it learns fast and scales like a boss.
### What it Does:
This Llama’s mission? Make science super easy. Whether you're stuck on a tricky topic or just need a quick answer, it’s here to help you (and your teacher) break things down like a pro.
### Cool Stuff:
- **Knows Its Stuff**: It's laser-focused on science questions, so no random answers.
- **Super Smart**: Whether it's easy or advanced, it’s got you covered.
- **Trustworthy**: It's trained to get things right, so you can count on its answers.
Basically, it's like having a personal science tutor right in your pocket.
""")
st.sidebar.markdown("By Gokulnath ♔")
# If model selection was needed (now removed)
selected_model = "Zephyr-7B" # Only one model remains
if "prev_option" not in st.session_state:
st.session_state.prev_option = selected_model
if st.session_state.prev_option != selected_model:
st.session_state.messages = []
st.session_state.prev_option = selected_model
reset_conversation()
# Pull in the model we want to use
repo_id = model_links[selected_model]
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# Accept user input
if prompt := st.chat_input("Ask Scimom!"):
# Display user message in chat message container
with st.chat_message("user"):
st.markdown(prompt)
st.session_state.messages.append({"role": "user", "content": prompt})
# Display assistant response in chat message container
with st.chat_message("assistant"):
try:
stream = client.chat.completions.create(
model=model_links[selected_model],
messages=[
{"role": m["role"], "content": m["content"]}
for m in st.session_state.messages
],
temperature=0.5, # Default temperature setting
stream=True,
max_tokens=3000,
)
response = st.write_stream(stream)
except Exception as e:
response = "😵💫 Something went wrong. Please try again later."
st.write(response)
st.write("This was the error message:")
st.write(e)
st.session_state.messages.append({"role": "assistant", "content": response})
|