pradeep4321 commited on
Commit
3fedebc
·
verified ·
1 Parent(s): 85e965a

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +55 -16
src/streamlit_app.py CHANGED
@@ -2,27 +2,66 @@ import streamlit as st
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
 
 
 
5
  st.set_page_config(page_title="AI Assistant", layout="wide")
 
6
 
7
- # Initialize client
8
- client = InferenceClient(
9
- model="meta-llama/Meta-Llama-3-8B",
10
- token=os.environ.get("HF_TOKEN")
11
- )
 
 
 
 
12
 
13
- st.title("🤖 AI Assistant")
14
 
15
- query = st.text_input("Ask something")
 
 
 
 
16
 
17
- if st.button("Generate"):
18
- if not query:
19
- st.warning("Please enter a query")
 
 
 
20
  else:
21
- with st.spinner("Generating response..."):
22
- response = client.text_generation(
23
- query,
24
- max_new_tokens=150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  )
26
 
27
- st.subheader("Response")
28
- st.write(response)
 
 
 
 
 
 
 
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
+ # ==============================
6
+ # PAGE CONFIG
7
+ # ==============================
8
  st.set_page_config(page_title="AI Assistant", layout="wide")
9
+ st.title("🤖 AI Assistant")
10
 
11
+ # ==============================
12
+ # LOAD MODEL CLIENT
13
+ # ==============================
14
+ @st.cache_resource
15
+ def load_client():
16
+ return InferenceClient(
17
+ model="meta-llama/Llama-3-8b-instruct",
18
+ token=os.environ.get("HF_TOKEN")
19
+ )
20
 
21
+ client = load_client()
22
 
23
+ # ==============================
24
+ # SESSION STATE (CHAT HISTORY)
25
+ # ==============================
26
+ if "messages" not in st.session_state:
27
+ st.session_state.messages = []
28
 
29
+ # ==============================
30
+ # DISPLAY CHAT HISTORY
31
+ # ==============================
32
+ for msg in st.session_state.messages:
33
+ if msg["role"] == "user":
34
+ st.chat_message("user").write(msg["content"])
35
  else:
36
+ st.chat_message("assistant").write(msg["content"])
37
+
38
+ # ==============================
39
+ # USER INPUT
40
+ # ==============================
41
+ query = st.chat_input("Ask anything...")
42
+
43
+ if query:
44
+ # Store user message
45
+ st.session_state.messages.append({"role": "user", "content": query})
46
+ st.chat_message("user").write(query)
47
+
48
+ try:
49
+ with st.spinner("Thinking..."):
50
+
51
+ # ✅ Chat-based request (BEST PRACTICE)
52
+ response = client.chat_completion(
53
+ messages=[
54
+ {"role": "system", "content": "You are a helpful, professional AI assistant."}
55
+ ] + st.session_state.messages,
56
+ max_tokens=300,
57
+ temperature=0.7,
58
  )
59
 
60
+ reply = response.choices[0].message["content"]
61
+
62
+ # Store assistant reply
63
+ st.session_state.messages.append({"role": "assistant", "content": reply})
64
+ st.chat_message("assistant").write(reply)
65
+
66
+ except Exception as e:
67
+ st.error(f"Error: {str(e)}")