Skip to content

Instantly share code, notes, and snippets.

@wilyJ80
Created August 3, 2026 19:41
Show Gist options
  • Select an option

  • Save wilyJ80/76426cd5bc2f0b4d6a27a5998f37163b to your computer and use it in GitHub Desktop.

Select an option

Save wilyJ80/76426cd5bc2f0b4d6a27a5998f37163b to your computer and use it in GitHub Desktop.
rerank rag
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)
@wilyJ80

wilyJ80 commented Aug 3, 2026

Copy link
Copy Markdown
Author

300/30 splitter better

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment