Spaces:
Sleeping
Sleeping
File size: 2,204 Bytes
d0a7f23 67d7a30 d0a7f23 67d7a30 d0a7f23 b12fd36 d0a7f23 33551ff b12fd36 |
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 |
import streamlit as st
from huggingface_hub import InferenceClient
# Streamlit UI
st.title("🐳 Chat with DeepSeek 🐳")
with st.sidebar:
# Input box for user to enter their Hugging Face API key
api_key = st.text_input("Enter your Hugging Face API Key:", type="password")
if api_key:
# Initialize the InferenceClient with the user-provided API key
client = InferenceClient(api_key=api_key)
# Input box for user to enter their question
user_input = st.chat_input("Enter your question:")
if user_input:
# Prepare the messages for the model
messages = [
{
"role": "user",
"content": user_input
}
]
with st.chat_message("user"):
st.write(user_input)
# Get the completion from the model
completion = client.chat.completions.create(
model="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
messages=messages,
)
# Get the model's response
response = completion.choices[0].message['content']
rest_of_response =''
# Check if the response contains <think> tags
if "<think>" in response and "</think>" in response:
# Extract content within <think> tags
think_content = response.split("<think>")[1].split("</think>")[0].strip()
# Display the thinking content in an expander
with st.expander("Thinking..."):
st.write(think_content)
# Extract the rest of the response (outside <think> tags)
rest_of_response = response.split("</think>")[1].strip()
# Display the rest of the response with an AI icon
with st.chat_message("ai"):
st.write(rest_of_response)
else:
# If no <think> tags, display the entire response with an AI icon
with st.chat_message("ai"):
st.write(rest_of_response)
else:
with st.sidebar:
st.warning("Please enter your Hugging Face API Key to proceed.")
st.link_button("How to get Huggingface API KEY","https://huggingface.co/docs/hub/security-tokens#what-are-user-access-tokens") |