celalkartoglu's picture
Update app.py
e7e9ed3 verified
import gradio as gr
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain_community.llms import HuggingFacePipeline
from transformers import pipeline
def qa_from_pdf(pdf_path, question):
loader = PyPDFLoader(pdf_path)
pages = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)
documents = splitter.split_documents(pages)
embedding_model = HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2')
db = FAISS.from_documents(documents, embedding_model)
hf_pipeline = pipeline('text-generation', model='sshleifer/tiny-gpt2', max_new_tokens=100)
llm = HuggingFacePipeline(pipeline=hf_pipeline)
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=db.as_retriever())
answer = qa_chain.run(question)
return answer
iface = gr.Interface(
fn=qa_from_pdf,
inputs=[
gr.File(label="PDF Dosyası Yükle", file_types=[".pdf"], type="filepath"),
gr.Textbox(label="Sorunuzu yazın")
],
outputs="text",
title="📄 RAG Demo: PDF üzerinden Soru-Cevap",
description="Bir PDF yükleyin ve ona sorular sorun. Küçük dil modeliyle çalışan demo."
)
if __name__ == "__main__":
iface.launch()