MGT
AboutProjectsCVWritingContact
let's work together

© 2026 Muhammed Göktuğ Temiz

Next.js · Tailwind · self-hosted

07 / 07Ask Göktuğ — Portfolio RAG Assistant

Project 7 of 7

Ask Göktuğ — Portfolio RAG Assistant

An assistant that ran on this site for a while: it cited its sources and did not make things up.

A Turkish/English RAG assistant that answers visitors' questions about me only from its own knowledge base. Search ran on the server, answers came from a cloud language model, and quality was measured with a 40-question accuracy test. I shut it down in October 2026 to free server memory.

Role
Developer
Period
2026 · October

Stack

  • Python
  • FastAPI
  • RAG
  • SQLite FTS5
  • Embedding
  • Ollama
  • MiniMax
  • Prometheus

Problem

The question a portfolio visitor has in mind is rarely written in one place on the page: "Which projects used RAG?", "Where does he work now?", "Does he know Elasticsearch?". The answer is spread across the CV, the project pages and the experience rows. Handing this to a general-purpose chatbot brings a different risk: the model can confidently make things up about topics it does not know. On a portfolio, wrong information is worse than none.

Solution

I built the "Ask Göktuğ" assistant for the bottom-right corner of this site on a RAG (Retrieval-Augmented Generation) architecture. Before answering, the assistant searched a knowledge base about me and answered only from the passages it found. When the knowledge base had nothing on a question, it said it did not know, and it showed the source each answer was based on.

It answered in Turkish and English and was embedded in the site with a single <script> tag.

Architecture decisions

SQLite instead of Elasticsearch. The knowledge base was only 29 passages; Elasticsearch alone would need about 1.5 GB of memory. Instead I combined two searches inside SQLite:

  1. FTS5 + BM25 — keyword search, with a light stemming step for Turkish
  2. Vector search — semantic similarity with a multilingual embedding model
  3. Reciprocal Rank Fusion — merges the two rankings into one result list

Exact terms such as "ELK" and questions phrased in different words both found the right passage.

Search local, answers in the cloud. In the first version a local language model on the server generated the answers too, but on a 4-core CPU the first word took 25–50 seconds. After measuring, I moved answer generation to MiniMax through an OpenAI-compatible API, while search and the embedding model stayed on the server. The first word dropped to about 4 seconds on average, and answers streamed at about 54 tokens per second. I filtered the model's "thinking" text out of the stream, so visitors saw only the answer. I wrote about this switch in a separate post.

Measure first. To see what breaks when the knowledge base changes, I wrote a 40-question accuracy test. The latest run passed 39 of 40. Instead of loosening the questions or hard-coding answers to pass, I only improved the knowledge base and the system prompt.

Safe deployment on a shared server. The assistant ran on an 8 GB server that also hosts other sites. The API and model service were reachable only from inside the server; the reverse proxy exposed only the chat, session, status and widget paths, and Prometheus metrics stayed private. Per-visitor and daily global question limits capped both abuse and cloud cost.

Observability. Time to first word, speed and errors for every answer were collected as Prometheus metrics; the latest accuracy test result and live service health were shown on a public status page.

The path of a question

On the server: search and embeddings · In the cloud: answer generation only

  1. QuestionTurkish or English
  2. Hybrid searchSQLite FTS5 (BM25) + embedding vectors
  3. Reciprocal Rank FusionTwo rankings merged, best 4 passages kept
  4. Language modelMiniMax; answers only from the passages found
  5. Streamed answerThinking text filtered out, source shown

Result

Instead of searching across pages, visitors asked their question directly and got a sourced answer within a few seconds. How accurate the assistant was is not a guess: it was the result of a test rerun after every knowledge-base change.

Even after the speed-up, the assistant still held about 1 GB of memory on the shared server. In October 2026 I shut it down to leave that memory to other work; the code and knowledge base are still there and it can be brought back when resources allow.

Next projectTransify→

AI Engineer · Computer Engineer

MuhammedGöktuğ Temiz

I build products where AI meets data systems.

Computer engineer working on AI-driven systems, data pipelines and system integrations. I design automation-oriented, scalable structures that turn complex raw data into something meaningful and usable.

See my workGet in touch
Location
Başakşehir / İstanbul, Türkiye
selected projects
7
Muhammed Göktuğ TemizOpen to new projects

About

As an AI Engineer with a degree in Computer Engineering, I build LLM-based chatbot and AI agent systems, data processing pipelines and system integrations.

I have hands-on experience setting up PII masking, read-only database security and Prometheus/Grafana-based observability layers in production environments. Using Python, REST APIs, SQL and Elasticsearch, I integrate AI-powered systems into real business processes and focus on building secure, scalable and maintainable products.

Role
AI Engineer · Computer Engineer
Location
Başakşehir / İstanbul, Türkiye
  • Large Language Models (LLM)
  • Retrieval-Augmented Generation (RAG)
  • AI Agent Architectures
  • Embedding & Vector Search
  • Speech-to-Text (Whisper)
  • AI Chatbot Development
  • Prompt Engineering
  • Python
Meetings processed on Transify
500+
Languages supported
50+
Turkish transcription accuracy
95%+
Chatbot regression tests
107

Projects

Ask Göktuğ — Portfolio RAG Assistant
Transify

keep scrolling · click

01 / 07

Résumé

Muhammed Göktuğ Temiz

AI Engineer · Computer Engineer

Experience

2026 · January – Present
AI Engineer · Telpass İletişim Hizmetleri A.Ş.

Developed AI-based data processing, analysis and automation pipelines, optimising data collection, processing and reporting workflows. Built LLM integrations, AI agent architectures and enterprise AI chatbot solutions, enabling data enrichment, classification and business process automation. Developed REST API integrations, data processing services and inter-service communication components in Python. Designed API-based workflows and automations with n8n that connect different systems. Carried out data modelling, SQL optimisation and data management on MySQL and MariaDB. Built data search, indexing and filtering infrastructure with Elasticsearch. Set up server, application and service monitoring with Prometheus, Grafana and Zabbix, including performance tracking, alerting and observability dashboards. Contributed to managing and monitoring systems on Linux/Debian, Proxmox and container-based infrastructure.

2025 · April – May
Backend Developer (Intern) · Türkiye Finans Katılım Bankası

Supported software development within the Credit Card Payment Systems department. Contributed to data analysis, SQL query optimisation and reporting on Microsoft SQL Server. Gained experience with service integrations and layered architecture in C#/.NET enterprise applications.

2023 · July – August
.NET Developer (Intern) · Memoria Bilişim ve Medya A.Ş.

Built a blog platform with user and content management features using ASP.NET MVC, SQL Server and Entity Framework. Designed the application structure with a layered architecture and implemented database management and CRUD operations.

Education

2020 – 2025
BSc Computer Engineering · Giresun University

Bachelor's degree, Faculty of Engineering, Department of Computer Engineering.

Certificate
Cisco 1 – Computer Networking Fundamentals · Başakşehir Living Lab

Certificate of participation.

Skills

  • Large Language Models (LLM)
  • Retrieval-Augmented Generation (RAG)
  • AI Agent Architectures
  • Embedding & Vector Search
  • Speech-to-Text (Whisper)
  • AI Chatbot Development
  • Prompt Engineering
  • Python
  • Data Processing & Automation
  • REST API
  • API Integrations
  • Flask
  • n8n
  • Microsoft SQL Server
  • MySQL / MariaDB
  • Elasticsearch
  • ELK Stack (Elasticsearch, Logstash, Kibana)
  • SQL Optimisation
  • Data Modelling
  • Linux / Debian
  • Proxmox
  • Zabbix
  • Prometheus
  • Grafana

Languages

  • English — B1
web version →Download CV (EN)View CV ↗

Writing

  • 14 October 2026Cutting my RAG assistant's first word from 50 seconds to 4The first version of the RAG assistant I built for my portfolio kept visitors waiting 25–50 seconds before an answer began. What I measured, what I kept on my server and what I moved to the cloud, and what that decision cost.→
  • 14 October 2026Connecting an AI bot to a production database: three layers of read-onlyA support bot had to read live MySQL without ever writing a single row. Why I built three layers instead of trusting one safeguard, and how I masked sensitive data before it could ever reach the logs.→

Contact

Got something in mind?

If you want to talk about AI, data systems or automation work, drop me a line — I usually reply the same day.

goktugtemiz60@gmail.com
  • GitHub ↗
  • LinkedIn ↗
  • WhatsApp ↗