Spaces:
Paused
Paused
| # ============================================================================== | |
| # API DO BLAZERRHINO 3B: FASTAPI + LLAMA.CPP (DOCKER) | |
| # ============================================================================== | |
| # Autor: Davi Rediske / BlazerIA Team (2026) | |
| # Este script baixa seu modelo GGUF automaticamente e cria uma rota de chat | |
| # ultra rápida para integrar com o seu site ou Worker. | |
| # ============================================================================== | |
| import os | |
| from fastapi import FastAPI, HTTPException | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from pydantic import BaseModel | |
| from huggingface_hub import hf_hub_download | |
| from llama_cpp import Llama | |
| app = FastAPI(title="BlazerRhino 3B API - Docker") | |
| # Ativa o CORS para que seu site BlazerIA faça chamadas para esta API sem bloqueios | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Configurações do seu repositório onde está o arquivo GGUF compilado do BlazerRhino | |
| REPO_ID = "Davizig10jojo/BlazerRhino-3B-GGUF" | |
| ARQUIVO_GGUF = "BlazerRhino-3B-Instruct.Q4_K_M.gguf" | |
| print("📥 Baixando arquivo GGUF do Hugging Face Hub...") | |
| try: | |
| caminho_modelo = hf_hub_download(repo_id=REPO_ID, filename=ARQUIVO_GGUF) | |
| print(f"✅ Modelo carregado com sucesso em: {caminho_modelo}") | |
| except Exception as e: | |
| print(f"⚠️ Erro ao carregar arquivo personalizado ({e}). Tentando nome original...") | |
| # Fallback caso o nome padrão do Unsloth seja mantido no repositório | |
| caminho_modelo = hf_hub_download(repo_id=REPO_ID, filename="Qwen2.5-3B-Instruct.Q4_K_M.gguf") | |
| print("🧠 Carregando o modelo na CPU gratuita do Space (16GB RAM)...") | |
| # Otimizado para usar os 2 núcleos de processamento da CPU básica sem travar o servidor | |
| llm = Llama( | |
| model_path=caminho_modelo, | |
| n_ctx=2048, # Contexto confortável para conversas e estudos | |
| n_threads=2, # Usa os 2 núcleos da CPU grátis do Space no limite máximo | |
| n_batch=512, | |
| ) | |
| print("🚀 BlazerRhino 3B está online e pronto para receber requisições!") | |
| class ChatRequest(BaseModel): | |
| prompt: str | |
| temperature: float = 0.7 | |
| max_tokens: int = 1024 | |
| def home(): | |
| return { | |
| "status": "online", | |
| "model": "BlazerRhino-3B-GGUF", | |
| "bypass": "Docker ativo via README.md Exploit!", | |
| "author": "Davi Rediske / BlazerIA" | |
| } | |
| async def chat(request: ChatRequest): | |
| try: | |
| # Executa a geração do texto na CPU básica do Space | |
| resposta = llm( | |
| request.prompt, | |
| max_tokens=request.max_tokens, | |
| temperature=request.temperature, | |
| stop=["<|im_end|>"], | |
| ) | |
| texto_resposta = resposta["choices"][0]["text"] | |
| return {"response": texto_resposta} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) |