File size: 3,218 Bytes
8e70e09
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import gradio as gr

# Gradio application setup
def create_demo():
    with gr.Blocks(title="LLAMA 3 Rag on Fly", theme="Monochrome") as demo:
        gr.Markdown(
            """
            ## ILYA's🧠 Recommended Readings📚, via NVIDIA's Tuned Llama 3🦙, as a RAG-CHAT-APP🖱️ on the Face that Hugs🤗...

            This application allows you to experiment with NVIDIA's LLAMA 3 8B Instruct model tuned for RAG. 🤯             
            
            You can adjust various parameters to control the model's output, while learning about what matters, conversationally.🤔
            
            Topic of choice: The list of 27(28) papers given to John Carmack by Ilya Sutskever🧠 who is quoted to have said: 
            "If you really learn all of these, you’ll know 90% of what matters today."🧐 - shared by @keshavchan on Twitter.🐤 
            (As per Boaz Descalo via LinkedIn: https://www.linkedin.com/in/descalo/)

            🌐LinkedIn Post: https://tinyurl.com/Ilyas-Recco-Article-Link
            
            🤗MODEL CARD: https://huggingface.co/nvidia/Llama3-ChatQA-1.5-8B

            👉APP MAKER: https://www.linkedin.com/in/thedavidyoungblood/
            """
        )

        with gr.Row():
            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)

            with gr.Column(scale=0.05):
                with gr.Row():
                    slider_chunk_size = gr.Slider(
                        minimum=256, maximum=1024, value=256, 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=5, value=2, label="Max Chunks in Context", elem_id='slider4'
                    )

        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()