惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
U
Unit 42
D
Docker
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
Recent Announcements
Recent Announcements
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
V
Visual Studio Blog
I
InfoQ
Google DeepMind News
Google DeepMind News
小众软件
小众软件
L
LangChain Blog
C
Check Point Blog
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
J
Java Code Geeks
罗磊的独立博客

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Building a Local-First Hotel Receptionist with Gemma 4, G...
chuanman2707 · 2026-05-15 · via DEV Community

This is a submission for the Gemma 4 Challenge: Write About Gemma 4

Why I Built This

I have been building CapyInn, a hotel management project for small hotels, guesthouses, and homestays in Vietnam.

The original CapyInn project started before this challenge, but the new work I focused on for this Gemma 4 challenge was the AI receptionist layer: a local-first front-desk assistant powered by Gemma 4, converted to GGUF, and served through llama.cpp.

The goal was not to build a general chatbot.

The goal was to build a bounded receptionist copilot that can help hotel staff answer common guest questions, while safely deferring anything it cannot verify.

For small hospitality businesses, this matters because late-night guest messages, check-in questions, room details, and policy questions often arrive when staff are busy or asleep. But at the same time, the assistant should not pretend to confirm payments, approve fake documents, or access private hotel systems.

Demo

What I Built

CapyInn Receptionist is a local AI front-desk copilot for small hotels in Vietnam.

It can help with:

  • answering room and check-in questions
  • drafting replies for late-night guest messages
  • asking follow-up questions when booking information is incomplete
  • explaining basic hotel policies
  • refusing or deferring sensitive requests to hotel staff

The most important behavior is the boundary.

If the assistant cannot verify something, it should not make it up. For example, it should not confirm a payment, accept suspicious guest documents, or expose system access. It should hand those cases back to a human.

How I Used Gemma 4

I fine-tuned and packaged a Gemma 4-based receptionist model for this hospitality workflow, then converted it into GGUF so it could run locally with llama.cpp.

The local model file I used:

capyinn-gemma-4-Q5_K_M.gguf

Enter fullscreen mode Exit fullscreen mode

The model runs locally on a Mac mini with Apple M4, 10-core CPU, 16 GB unified memory, using llama.cpp with Metal/BLAS.

In my latest conservative benchmark run:

  • generation speed: about 29 tokens/second
  • prompt/prefill speed: about 511 tokens/second
  • cold CLI startup to first token: about 2.1 seconds
  • short 64-token capped response from cold startup: about 3.7 seconds
  • RAM allocation: about 6.0 GiB at 4K context
  • RAM allocation: about 7.0 GiB at 128K context
  • GGUF file size: 3.35 GiB
  • metadata context window: 131,072 tokens

That was good enough for a practical front-desk assistant on a small local machine.

Why Local AI Matters Here

A hotel receptionist assistant handles information that can be sensitive: guest names, booking details, arrival times, special requests, and sometimes payment-related questions.

For a small hotel, sending everything to a remote API may not always be ideal.

A local Gemma 4 setup gives a few practical advantages:

  • lower ongoing cost
  • better privacy posture
  • usable latency on consumer hardware
  • no dependency on cloud availability for basic replies
  • easier deployment for small businesses that already have an office computer

The tradeoff is that the assistant must be carefully scoped. Local does not automatically mean safe. The model still needs clear task boundaries.

The Safety Rule I Used

The main rule is simple:

If the assistant cannot verify it, it should not confirm it.

That means the assistant can draft helpful replies, but it should defer sensitive actions such as:

  • payment confirmation
  • suspicious guest documents
  • account or system access
  • policy exceptions
  • anything requiring staff approval

This made the demo much more realistic. A hotel AI assistant should be helpful, but it should also know when to stop.

What I Learned

The biggest lesson was that model capability is only one part of the product.

The harder part is designing the workflow around the model.

For this use case, I cared less about making the assistant sound impressive, and more about making it useful, bounded, and honest.

Gemma 4 worked well for this because it was capable enough for conversational front-desk tasks, while still small enough to run locally after quantization.

The final result is not a replacement for hotel staff. It is a copilot that can reduce repetitive work and help small hotels respond faster.

Links

GitHub:

https://github.com/chuanman2707/CapyInn

Model:

https://huggingface.co/chuanman2707/capyinn-gemma-4-e2b-it-q5-k-m-gguf

Demo video:

https://youtu.be/uYGbkv2HfHQ