Spaces:
Sleeping
Sleeping
import os | |
import streamlit as st | |
from dotenv import load_dotenv # Importing load_dotenv to load environment variables | |
from langchain import HuggingFaceHub | |
# Load environment variables from the .env file | |
load_dotenv() | |
# Set your Hugging Face API token from the environment variable | |
HUGGINGFACE_API_TOKEN = os.getenv("HUGGINGFACE_API_TOKEN") | |
# Function to return the response from the Hugging Face model | |
def load_answer(question): | |
try: | |
# Initialize the Hugging Face model using LangChain's HuggingFaceHub class | |
llm = HuggingFaceHub( | |
repo_id="mistralai/Mistral-7B-Instruct-v0.3", # Hugging Face model repo | |
huggingfacehub_api_token=HUGGINGFACE_API_TOKEN, # Pass your API token | |
model_kwargs={"temperature": 0.1} # Set a strictly positive temperature | |
) | |
# Call the model with the user's question and get the response using .predict() | |
answer = llm.predict(question) | |
return answer | |
except Exception as e: | |
# Capture and return any exceptions or errors | |
return f"Error: {str(e)}" | |
# Streamlit App UI starts here | |
st.set_page_config(page_title="Hugging Face Demo", page_icon=":robot:") | |
st.header("Hugging Face Demo") | |
# Function to get user input | |
def get_text(): | |
input_text = st.text_input("You: ", key="input") | |
return input_text | |
# Get user input | |
user_input = get_text() | |
# Create a button for generating the response | |
submit = st.button('Generate') | |
# If the generate button is clicked and user input is not empty | |
if submit and user_input: | |
response = load_answer(user_input) | |
st.subheader("Answer:") | |
st.write(response) | |
elif submit: | |
st.warning("Please enter a question.") # Warning for empty input |