Spaces:
Sleeping
Sleeping
from huggingface_hub import login | |
import os | |
token = os.environ.get("hf") | |
login(token) | |
import streamlit as st | |
from transformers import pipeline | |
import torch | |
# Model ID | |
MODEL_ID = "meta-llama/Meta-Llama-3.1-8B-Instruct" | |
def load_pipeline(): | |
try: | |
st.write("Loading the instruct pipeline...") | |
instruct_pipeline = pipeline( | |
"text-generation", | |
model=MODEL_ID, | |
model_kwargs={"torch_dtype": torch.bfloat16}, | |
device_map="auto", | |
) | |
st.write("Pipeline successfully loaded.") | |
return instruct_pipeline | |
except Exception as e: | |
st.error(f"Error loading pipeline: {e}") | |
return None | |
# Load the pipeline | |
instruct_pipeline = load_pipeline() | |
# Streamlit UI | |
st.title("Instruction Chatbot") | |
st.write("Chat with the instruction-tuned model!") | |
if instruct_pipeline is None: | |
st.error("Pipeline failed to load. Please check the configuration.") | |
else: | |
# Message-based interaction | |
system_message = st.text_area("System Message", value="You are a helpful assistant.", height=100) | |
user_input = st.text_input("User:", placeholder="Ask a question or provide an instruction...") | |
if st.button("Send"): | |
if user_input.strip(): | |
try: | |
messages = [ | |
{"role": "system", "content": system_message}, | |
{"role": "user", "content": user_input}, | |
] | |
# Generate response | |
outputs = instruct_pipeline( | |
messages, | |
max_new_tokens=150, # Limit response length | |
) | |
# Display the generated response | |
response = outputs[0]["generated_text"] | |
st.write(f"**Assistant:** {response}") | |
except Exception as e: | |
st.error(f"Error generating response: {e}") | |
else: | |
st.warning("Please enter a valid message.") | |