Spaces:
Sleeping
Sleeping
File size: 1,942 Bytes
05e316b 8d8ae2c 05e316b 3fedebc 8d8ae2c 3fedebc 05e316b 3fedebc 64b27f1 3fedebc 05e316b 3fedebc 05e316b 3fedebc 05e316b 3fedebc 8d8ae2c 3fedebc 8d8ae2c 05e316b 3fedebc | 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 | import streamlit as st
from huggingface_hub import InferenceClient
import os
# ==============================
# PAGE CONFIG
# ==============================
st.set_page_config(page_title="AI Assistant", layout="wide")
st.title("🤖 AI Assistant")
# ==============================
# LOAD MODEL CLIENT
# ==============================
@st.cache_resource
def load_client():
return InferenceClient(
model="meta-llama/Meta-Llama-3-8B-Instruct",
token=os.environ.get("HF_TOKEN")
)
client = load_client()
# ==============================
# SESSION STATE (CHAT HISTORY)
# ==============================
if "messages" not in st.session_state:
st.session_state.messages = []
# ==============================
# DISPLAY CHAT HISTORY
# ==============================
for msg in st.session_state.messages:
if msg["role"] == "user":
st.chat_message("user").write(msg["content"])
else:
st.chat_message("assistant").write(msg["content"])
# ==============================
# USER INPUT
# ==============================
query = st.chat_input("Ask anything...")
if query:
# Store user message
st.session_state.messages.append({"role": "user", "content": query})
st.chat_message("user").write(query)
try:
with st.spinner("Thinking..."):
# ✅ Chat-based request (BEST PRACTICE)
response = client.chat_completion(
messages=[
{"role": "system", "content": "You are a helpful, professional AI assistant."}
] + st.session_state.messages,
max_tokens=300,
temperature=0.7,
)
reply = response.choices[0].message["content"]
# Store assistant reply
st.session_state.messages.append({"role": "assistant", "content": reply})
st.chat_message("assistant").write(reply)
except Exception as e:
st.error(f"Error: {str(e)}") |