Created
August 3, 2026 19:41
-
-
Save wilyJ80/76426cd5bc2f0b4d6a27a5998f37163b to your computer and use it in GitHub Desktop.
rerank rag
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from pydantic import SecretStr | |
| import requests | |
| from pymupdf import pymupdf | |
| from langchain_text_splitters import RecursiveCharacterTextSplitter | |
| print("# 1. Load e Split do PDF") | |
| file = pymupdf.open('./doc.pdf') | |
| content = "" | |
| content += file[0].get_text("text") | |
| splitter = RecursiveCharacterTextSplitter(chunk_size=400, chunk_overlap=40) | |
| chunks = splitter.split_text(content) | |
| print("# 2. Configuração do Llama Server de Rerank") | |
| url = "http://localhost:8080/v1/reranking" | |
| query = "Nome da pessoa X exemplo." | |
| payload = { | |
| "model": "qwen3-reranker-0.6b-q8_0.gguf", | |
| "query": query, | |
| "documents": chunks, | |
| } | |
| response = requests.post(url, json=payload) | |
| if response.status_code != 200: | |
| raise Exception(f"Erro {response.status_code}: {response.text}") | |
| print("# 3. Processa e ordena os resultados com base na resposta do servidor") | |
| data = response.json() | |
| # O llama-server retorna uma lista contendo o índice original e o score de relevância | |
| results = data.get("results", []) | |
| # Ordena do maior score para o menor | |
| results_sorted = sorted( | |
| results, key=lambda x: x["relevance_score"], reverse=True | |
| ) | |
| print(f"\n--- Top Resultados (Rerank via Llama Server) para: '{query}' ---\n") | |
| for item in results_sorted[:3]: # Exibe os 3 melhores | |
| idx = item["index"] | |
| score = item["relevance_score"] | |
| print(f"Index: {idx} | Score Reranker: {score:.4f}") | |
| print(chunks[idx]) | |
| print("-" * 40) |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
300/30 splitter better