Spaces:
Paused
Paused
import streamlit as st | |
import os | |
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer | |
from huggingface_hub import login | |
# Read the Hugging Face API token from the environment variable | |
api_token = os.getenv("HF_API_TOKEN") | |
if not api_token: | |
st.error("Hugging Face API token is missing. Please add it to the secrets in the Space settings.") | |
st.stop() | |
# Login using your Hugging Face token | |
login(token=api_token) | |
model_id = "meta-llama/Meta-Llama-3-8B" | |
# Initialize the model pipeline with authentication | |
pipe = pipeline("text-generation", model=model_id, use_auth_token=api_token) | |
# Display the logo and title | |
st.image("logo.jpg", width=300) | |
st.title("Coach Virtual PRODI") | |
# Initialize a session state variable for history if it doesn't exist | |
if 'history' not in st.session_state: | |
st.session_state['history'] = [] | |
# Function to update the conversation history | |
def update_history(user_input, ai_response): | |
st.session_state['history'].append(("User", user_input)) | |
st.session_state['history'].append(("AI", ai_response)) | |
# Display the conversation history | |
for speaker, text in st.session_state['history']: | |
if speaker == "User": | |
st.text_input("Usuario", value=text, disabled=True) | |
else: | |
st.text_area("PRODI", value=text, height=75, disabled=True) | |
# Chat input for user prompt | |
user_input = st.text_input("¿Cómo te puedo ayudar hoy?") | |
if user_input: | |
with st.spinner("Generando respuesta..."): | |
# Get the AI's response | |
ai_response = pipe(user_input, max_length=100, num_return_sequences=1)[0]['generated_text'] | |
# Update the conversation history | |
update_history(user_input, ai_response) | |
# Display the AI's response | |
st.write(ai_response) | |