Spaces:
Running
Running
Commit History
8 days ago
-
feat: 10 free upgrades β streaming upload, cache invalidation, hybrid search, ONNX reranker, SQLAlchemy pool tuning, batch embed cache, semantic chunking, Prometheus histograms, DLQ auto-retry, structured logging+OTel
AkshayM3e047b8
-
Add max_tokens parameter to NexAGI endpoint
AkshayMf89f0c8 -
Add privacy column to Document model + migration 005
AkshayM262e6d5 -
Remove PII from research mode and response handlers
AkshayM390b099 -
Tune Presidio: strict mode masks names+orgs for NDA, light mode skips them for research
AkshayM073907c -
Add privacy flag to upload β PII runs only when privacy=True (NDA mode)
AkshayM82a91b9 -
Fix tuple unpacking error in gather result for PDF parsing
AkshayMd3f3dec -
Skip MarkItDown for PDFs β run only as fallback if pypdf returns empty
AkshayMe2a2578 -
Swap pdfplumber β pypdf for upload parsing (3x faster text extraction)
AkshayMa965d17
-
Fix NexAGI: reasoning_details is already a list of dicts
AkshayM6102a51 -
Fix NexAGI: reasoning_details list model_dump, add reasoning_details to message schema
AkshayM9cb8ece -
Add /NexAGI endpoint β OpenRouter reasoning via nex-agi/nex-n2-pro:free
AkshayM464d909
-
feat: provider-based LLM profiles + per-request model switchingβ
AkshayMllm.py: refactored into profile-based architecture with 7 built-in profiles (mercury, gpt5-mini, gpt5, claude-haiku, claude-opus, openrouter, minimax). Dynamic custom profile from LLM_MODEL/LLM_BASE_URL env vars. chat()/astream() accept mode instead of individual params. document_agent.py: all LLM calls use mode-based dispatch. Added apply_profile() for per-request provider switching. schemas.py: model field on QueryRequest and AnalyzeRequest. main.py: GET /llm/profiles endpoint passes model to analyze_document.9a38dd4 -
fix: remove stale page_texts_pdf references from PII block
AkshayMe8e7520 -
fix: use pdfplumber text for chunking to ensure accurate page numbers for citations
AkshayM247a9a5 -
fix: keep MarkItDown for chunking, pass pdfplumber page texts separately so page numbers align for bbox extraction
AkshayMe01df47 -
fix: use pdfplumber text for chunking so page numbers align with page ranges (fixes bbox extraction)
AkshayM4f4595a -
fix: actually anonymize PII in document text before indexing + sanitize all LLM outputs
AkshayM548bb13
-
fix: populate username from GitHub login on OAuth signup, return email/username in OAuth login response
AkshayM4753a4e -
feat: add username field to User model, schemas, and API
AkshayMc58901b -
perf: move PII detection from upload HTTP handler to job worker (runs concurrent with parsing)
AkshayM6e20180
-
feat: harden prompt injection guardrails with 11 detection layers + fix missing guardrails on /analyze
AkshayM4eb6f45
-
fix: add PII scan result log to upload endpoint
AkshayMdf2fe46 -
perf: revert to all-MiniLM-L6-v2, query embed cache, fire-and-forget Cloudinary, pre-warm reranker, reduce top-k
AkshayM1476572
-
fix: import parse_document outside .pdf scope; coerce datetimeβstr in all response schemas
AkshayM51bad61 -
production hardening: circuit breakers, graceful degradation, health checks, parallel uploads, HF Spaces deploy config
AkshayMfc2fe9f
-
fix: remove local file fallback, use Cloudinary only, add POST /documents/backfill endpoint for old docs
AkshayM1fd184a -
fix: add file_url to every citation so the frontend PDF viewer gets the URL directly without extra API call
AkshayM7226ce1 -
fix: cloudinary_url now falls back to local file_url so frontend PDF viewer always gets a working link
AkshayM7edd24f -
fix: add file_url to DocumentResponse, pass request to _doc_response, handle old-path files in serve_file
AkshayMaae70f2 -
fix: Cloudinary upload resource_type=auto for PDF preview instead of raw download
AkshayMa7baf2b -
fix: Cloudinary upload_bytes->upload method name bug, add GET /files/{doc_id} endpoint for PDF serving fallback
AkshayM3953df3 -
fix: enable NeMo Guardrails with correct parameters.api_key/parameters.base_url, add PII detection to guardrails flow, set PII_ENABLED=true
AkshayM6ca471b -
fix: handle LLM connection errors gracefully (SSL/connect errors β 502); convert Analyze 500 β 502 with clear message
AkshayM5d8e007 -
fix: auto-fallback to Qdrant :memory: when remote unavailable
AkshayM2636655 -
fix: load .env at module level in main.py (removes run.py dependency); auto-start worker + register processor on startupβ
AkshayM- Added load_dotenv() at top of main.py so uvicorn src.api.main:app works - Removed run.py β single uvicorn command now sufficient - Verified: database connects, worker starts, processor registered84839f7 -
fix: upload pipeline completely dead - worker never started, processor never registeredβ
AkshayMRoot cause: _on_startup handler missing 3 critical calls: 1. set_upload_processor() β processor was None, every job failed with 'no processor registered' 2. get_worker().start() β worker task never created, jobs sat in queue forever 3. get_vector_store() β model never pre-loaded, first upload paid load cost Also added batch progress logs (batch X/N during upsert).2942460 -
fix: 15 critical/high bugs across codebaseβ
AkshayMCRITICAL: - Wrong import path .async_worker -> ..services.async_worker (Qdrant.py) - search() called run_sync() without await (always crashed) - CancelledError leaves jobs dangling in non-terminal stage HIGH: - circuit_breaker race: state mutations outside lock - llm.py: r.text on async httpx response crashes on error - llm.py: max_tokens=0 silently overridden to 2048 - llm.py: import json inside hot SSE loop - cache.py: MemoryBackend.set() ignores ttl parameter - cache.py: get_or_compute fails on sync callables - bootstrap.py: DB init runs twice (first attempt crashes) - shutdown.py: begin_shutdown races with begin_request - document_agent.py: cost double-counts answer tokens - document_agent.py: multi-hop retrieval asks same question every hop - document_agent.py: stream_query lacks multi-hop and cost_usd - main.py: json.dumps empty list stored as None - main.py: response uses request data instead of DB data - main.py: cloudinary 'skipped' mislabels actual failures - job_queue.py: lβ¦da3be01 -
fix upload pipeline: await add_document, pre-load model eagerly, add verbose UPLOAD/VectorStore logging; remove unused deployment configs
AkshayM90c440b
-
fix models.py: match Neon schema varchar sizes, add email unique constraint
AkshayM167c070