simple-rag-qa / ui.py
Matvii Hotovych
Simple RAG QA
4c0ae33
import gradio as gr
def create_ui(rag_pipeline):
with gr.Blocks() as demo:
gr.Markdown("""# RAG QA System""")
gr.Markdown("""
**RAG (Retrieval-Augmented Generation)** система дозволяє:
- Для джерела даних було використано першу книгу Гаррі Поттера із датасету HuggingFace (https://huggingface.co/datasets/prasad3458/Harry_Potter_Books)
- Відповідь на запитання генерується на основі знайденого контексту з першої книги.
- Дані перед обробкою чанкуються.
- Присутній ретрівер та реранкер.
- Використовується LiteLLM із Groq.
**Як користуватись:**
1. Введіть ваш API ключ LLM
2. Оберіть режим пошуку (`bm25`, `semantic`, `both` або `off`)
3. Напишіть запитання
4. Натисніть **Ask**
""")
api_key = gr.Textbox(
label="LLM API Key",
placeholder="Paste your API key here",
type="password"
)
query = gr.Textbox(label="Your question")
search_mode = gr.Radio(
["bm25", "semantic", "both", "off"],
value="both",
label="Retrieval mode"
)
ask_btn = gr.Button("Ask")
answer = gr.Textbox(label="Answer")
context = gr.Textbox(
label="Retrieved context",
lines=10
)
ask_btn.click(
rag_pipeline,
inputs=[query, search_mode, api_key],
outputs=[answer, context]
)
return demo