Learn / src /interface.py
Yoxas's picture
Update src/interface.py
72c150d verified
raw
history blame
3.33 kB
import csv
import gradio as gr
# Define a function to export conversations to CSV
def export_conversations(conversations):
# Create a CSV writer
csvfile = "conversations.csv"
with open(csvfile, "w", newline="") as f:
writer = csv.writer(f)
# Write the header row
writer.writerow(["User Input", "Model Response"])
# Iterate over the conversations and write each row
for conversation in conversations:
for i, (user_input, model_response) in enumerate(conversation):
writer.writerow([user_input, model_response])
return csvfile
# Gradio application setup
def create_demo():
with gr.Blocks(title="LLAMA 3 Rag Chat pdf", theme="Monochrome") as demo:
# App Description
gr.Markdown(
"""
## LLAMA 3 Rag chat pdf
This application allows you to experiment with LLAMA 3 8B Instruct model for RAG.
You can adjust various parameters to control the model's output.
Original https://huggingface.co/spaces/ModularityAI/LLama3Rag
experimented on making RAG for long pdf documents
"""
)
with gr.Row():
# Chatbot and Image Column (75% space)
with gr.Column(scale=0.95):
with gr.Row():
chat_history = gr.Chatbot(value=[], elem_id='chatbot', height=480)
show_img = gr.Image(label='Uploaded PDF', height=480)
# Sliders Column (25% space)
with gr.Column(scale=0.05):
with gr.Row():
slider_chunk_size = gr.Slider(
minimum=256, maximum=32768, value=1024, label="Chunk Size", elem_id='slider1'
)
with gr.Row():
slider_overlap_percentage = gr.Slider(
minimum=0, maximum=99, value=50, label="Chunk Overlap Percentage", elem_id='slider2'
)
with gr.Row():
slider_temp = gr.Slider(
minimum=0, maximum=1, value=0.5, label="Model Temperature", elem_id='slider3'
)
with gr.Row():
slider_k = gr.Slider(
minimum=1, step=1,maximum=20, value=2, label="Max Chunks in Context", elem_id='slider2'
)
# Input and Submit Button Row
with gr.Row():
with gr.Column(scale=0.60):
text_input = gr.Textbox(
show_label=False,
placeholder="Type here to ask your PDF",
container=False
)
with gr.Column(scale=0.20):
submit_button = gr.Button('Send')
with gr.Column(scale=0.20):
uploaded_pdf = gr.UploadButton("📁 Upload PDF", file_types=[".pdf"], elem_id='upload_pdf')
return demo, chat_history, show_img, text_input, submit_button, uploaded_pdf, slider_chunk_size,slider_overlap_percentage,slider_temp,slider_k
if __name__ == '__main__':
demo, chatbot, show_img, text_input, submit_button, uploaded_pdf, slider_chunk_size,slider_overlap_percentage,slider_temp,slider_k = create_demo()
demo.queue()
demo.launch()