Budget: 6000 UAH Deadline: 14 days
Hello Anastasia,
Here is how I would build it, and where I would push back on the spec.
Proposed stack: Ollama serving a quantised open model (Qwen2.5 or Mistral, 7-14B depending on your hardware), Qdrant as the vector store, LlamaIndex for the RAG layer, FastAPI for the API, all in Docker Compose behind Nginx. Ingestion: PyMuPDF for PDF with Tesseract OCR only on pages that actually need it (OCR over everything is the usual reason these pipelines crawl), python-docx and openpyxl for DOCX/XLSX, Whisper for transcripts. Dedup by content hash, versioning by document id plus revision, so a re-uploaded file replaces its old chunks instead of doubling them.
Two points that matter more than the framework choice. Citations must be returned as data - chunk ids and source file resolved from the retrieval step, never requested of the model in the prompt. A model told to cite will invent citations; a pipeline that returns them cannot. And client isolation belongs in the Qdrant query filter, enforced per tenant, not in application code where one missed branch leaks another client's documents.
Timeline and cost, milestone-based as you asked:
M1, 14 days, the bid amount: LLM running on your server, ingestion for PDF/OCR/DOCX/TXT/XLSX, Qdrant index with dedup and versioning, FastAPI query endpoint returning cited sources, Docker deployment and setup docs.
M2: meeting agents - transcripts, summaries, action-item extraction - plus the web query interface.
M3: auth and roles, per-client isolation, security validation, performance tuning.
Full M1-M3 estimate 22000-28000 UAH. I prefer fixed price per milestone over hourly, so you get a working system at the end of each one, not a timesheet.
Straight about the portfolio you asked for: our paid client work is production Python and API automation on Linux VPS - a Google Ads API reporting tool, Telegram bots for live businesses, mail infrastructure. The local-LLM, RAG and multi-agent side I run in-house daily, a self-hosted agent system with retrieval over its own document base. I can show that live on a screen-share, so you see retrieval and citations working before committing anything.
One question that decides the architecture: what CPU, RAM and GPU does the target server have? A 7B model on CPU alone answers in 10-20 seconds; on a 16GB GPU, under two. With no GPU I would size the model to your box and tell you what hardware is worth buying, rather than promise speed it cannot deliver.
Petro Pankov, BotCraft Group