pratikshahp's picture
Create app.py
73cd227 verified
#Running fine:)
import gradio as gr
import os
from langchain_huggingface import HuggingFaceEndpoint
from dotenv import load_dotenv
from langchain_community.document_loaders import WhatsAppChatLoader
from typing import List
# Load environment variables
load_dotenv()
# Get Hugging Face API token
HF_TOKEN = os.getenv("HF_TOKEN")
# Initialize the HuggingFace model
llm = HuggingFaceEndpoint(
repo_id="mistralai/Mistral-7B-Instruct-v0.3",
huggingfacehub_api_token=HF_TOKEN,
temperature=0.7,
max_new_tokens=300
)
# Load and process chat content
def load_chat_content(file) -> str:
# Initialize the WhatsAppChatLoader with the uploaded file
loader = WhatsAppChatLoader(path=file.name)
raw_messages = loader.lazy_load()
messages = list(raw_messages)
# Combine all messages into a single string
chat_content = "\n".join([doc.page_content for doc in messages])
return chat_content
def answer_question(file, question: str) -> str:
# Load the chat content from the uploaded file
chat_content = load_chat_content(file)
#prompt="Your task is to generate answer according to {question} based on the given {chat_content}"
# Generate a response using the Hugging Face model
response = llm(chat_content + "\n\n" + question)
#response = llm(prompt)
return response
# Define the Gradio interface
interface = gr.Interface(
fn=answer_question,
inputs=[
gr.File(label="Upload WhatsApp Chat File"),
gr.Textbox(label="Ask a Question", placeholder="Enter your question here...")
],
outputs="text",
title="WhatsApp Chat Q&A",
description="Upload a WhatsApp chat file and ask questions related to the chat content.",
)
if __name__ == "__main__":
interface.launch()