Spaces:
Runtime error
Runtime error
| import os | |
| import requests | |
| from llama_index.core import VectorStoreIndex, Settings | |
| from llama_index.readers.file import PDFReader | |
| import gradio as gr | |
| from llama_index.embeddings.huggingface import HuggingFaceEmbedding | |
| # Disable the default LLM | |
| Settings.llm = None | |
| def download_pdf(url, destination): | |
| os.makedirs(os.path.dirname(destination), exist_ok=True) | |
| response = requests.get(url) | |
| with open(destination, 'wb') as f: | |
| f.write(response.content) | |
| def create_index_from_pdf(pdf_path): | |
| pdf_reader = PDFReader() | |
| documents = pdf_reader.load_data(file=pdf_path) | |
| embed_model = HuggingFaceEmbedding(model_name='BAAI/bge-large-es') | |
| index = VectorStoreIndex.from_documents( | |
| documents, | |
| embed_model=embed_model | |
| ) | |
| query_engine = index.as_query_engine( | |
| similarity_top_k=3, # Increased to find more relevant context | |
| response_mode="compact" | |
| ) | |
| return query_engine | |
| pdf_url = 'https://www.boe.es/buscar/pdf/1995/BOE-A-1995-25444-consolidado.pdf' | |
| pdf_path = './BOE-A-1995-25444-consolidado.pdf' | |
| download_pdf(pdf_url, pdf_path) | |
| query_engine = create_index_from_pdf(pdf_path) | |
| def search_pdf(query): | |
| # Modificar la consulta para buscar específicamente penas | |
| modified_query = f"Pena para el delito de {query}" | |
| response = query_engine.query(modified_query) | |
| return response.response | |
| gr.Interface( | |
| fn=search_pdf, | |
| inputs="text", | |
| outputs="text", | |
| title="Buscador de Penas en Código Penal", | |
| description="Introduce un tipo de delito para encontrar su pena correspondiente" | |
| ).launch() |