Back to Library
Agriculture / Web Development

Acikbahce.com

Turkey's AI-powered agri-tech intelligence platform — connecting local farmers directly with consumers via semantic geospatial search, computer vision-based produce quality assessment, Turkish NLP-driven discovery, and a real-time supply-demand matching engine that forecasts regional produce availability and pricing across 81 provinces.

Completed 2024-09-01
Sector Agriculture / Web Development
Tech Stack BERTurk, EfficientNet-V2, TFT, GraphRAG, PostGIS, pgvector, Kafka, Flink, Triton
Acikbahce.com screenshot
Overview
Acikbahce.com is Turkey's first full-stack, AI-powered agricultural intelligence and direct-trade platform. It eliminates the traditional multi-tier wholesale intermediary chain between local farmers and end consumers — replacing it with a data-driven, AI-mediated marketplace that is measurably fairer for producers and fresher for buyers.
In Depth
01 Geospatial Intelligence & Farm Discovery

The platform's farm discovery layer is built on PostGIS-extended PostgreSQL, storing producer polygons, field boundaries, and crop declarations as geospatial geometries. The search API executes ST_DWithin proximity queries with composite indexes on (geom, crop_type, harvest_window) for sub-20ms response times across 500,000+ registered field records.

MapLibre GL JS (WebGL-rendered, vector tile-based) powers the interactive map layer, streaming farm tile data from a custom PMTiles server on Cloudflare R2. Producers are rendered with cluster aggregation at low zoom and individual polygon outlines at field level — with real-time availability overlays updated from the harvest scheduling model.

02 Turkish NLP & Semantic Search

Product and producer search is powered by BERTurk — a BERT-base model pretrained on 35GB of Turkish text corpora — fine-tuned on Acikbahce's proprietary annotated agricultural catalogue (120,000 produce listings across Turkish dialectal naming conventions). This resolves the critical problem that Turkish produce names vary heavily by region: the same vegetable may have 6–8 dialectal names across Anatolia, Aegean, and Black Sea regions.

Product embedding vectors (768-dimensional) are stored in pgvector with HNSW index. Hybrid BM25 + dense retrieval with cross-encoder reranking resolves both exact-match queries ("Bursa şeftalisi") and semantic queries ("taze organik yaz meyvesi"). The RAG pipeline augments search results with LLM-generated seasonal availability summaries grounded in the harvest calendar database.

03 Computer Vision: Produce Quality Assessment

Farmers upload produce photographs at listing creation. A custom EfficientNet-V2-L model (fine-tuned on 280,000 annotated Turkish produce images across 340 crop varieties) performs:
• Multi-label quality grade classification (Extra, Class I, Class II, Industrial) per EU/Turkish Standards Institute grading rules.
• Defect detection: surface blemish, bruising, size non-conformity, colour deviation — localised via Grad-CAM attention maps returned to the farmer UI.
• Freshness estimation: a regression head predicts remaining shelf life in days from visual features, used to rank time-sensitive listings in search results.

Inference runs on NVIDIA H100 SXM5 via NVIDIA Triton Inference Server with TensorRT INT8 quantisation, achieving 4,800 image classifications/second per GPU at 97.3% top-1 accuracy on the held-out test set.

04 Supply-Demand Forecasting Engine

A Temporal Fusion Transformer (TFT) forecasts weekly produce supply and demand at (crop, province, week) granularity across all 81 Turkish provinces. Input features include:
• Historical transaction volumes and price series from the platform.
• Weather data (MERRA-2 reanalysis): temperature, precipitation, growing-degree-days by province.
• Turkish Agricultural Ministry crop declaration data.
• Turkish CPI food sub-index and Istanbul wholesale market (Hal) price benchmarks.
• Seasonal and holiday encodings (Ramadan demand shifts, harvest festival patterns).

Forecasts are generated weekly via vLLM batch inference on the TFT model with continuous batching across all province-crop pairs (38,000+ active pairs). The demand forecasting layer enables dynamic pricing recommendations to producers — surfacing optimal harvest timing and target regions for maximum realised price.

05 Real-Time Matching & Messaging Infrastructure

Consumer purchase requests and producer availability updates flow through Apache Kafka topics (partitioned by province). A Flink stateful streaming job performs continuous producer-consumer matching: when a consumer submits a basket request, Flink queries the current availability state store and emits ranked producer matches within 200ms — factoring distance, quality grade, freshness score, and price.

Real-time direct messaging between consumers and producers is implemented via WebSocket (Socket.IO) with Redis Pub/Sub as the message broker — ensuring horizontal scaling across multiple application nodes. Message delivery receipts and typing indicators are handled via Redis sorted sets with TTL expiry.

06 Platform Architecture
Backend
PHP 8.3 (Symfony) + Node.js microservice layer for WebSocket and event streaming.
Databases
PostgreSQL 16 + PostGIS + pgvector (primary), Redis 7 (cache + pub/sub), TimescaleDB (time-series pricing).
Infrastructure
GKE Autopilot (Kubernetes), Cloud CDN, Cloudflare (WAF + DDoS + R2 object storage).
AI Inference
NVIDIA H100 SXM5, Triton Inference Server, TensorRT INT8, vLLM.
Mobile
Progressive Web App (PWA) with offline-capable service worker for rural low-connectivity use.
Technology Stack
BERTurk (Turkish NLP) EfficientNet-V2-L (Computer Vision TensorRT INT8) Temporal Fusion Transformer (Supply-Demand Forecasting) GraphRAG pgvector + HNSW PostGIS Apache Kafka Apache Flink Triton Inference Server vLLM MapLibre GL JS Redis Pub/Sub GKE Autopilot.
Build something like this?
Tell us about your project and we'll design a tailored solution.