인셔셔RSS 관심 있는 블로그, 뉴스, 기술 정보를 효율적으로 추적하고 읽으세요
원문 읽기 InertiaRSS에서 열기

추천 피드

WordPress大学
WordPress大学
G
Google Developers Blog
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
Last Week in AI
Last Week in AI
博客园 - 司徒正美
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
小众软件
小众软件
李成银的技术随笔
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
月光博客
月光博客

DEV Community

Your AI Agent Works 24/7 and Earns $0. I Built the Fix. Your AI Trading Agent Will Lose All Your Money — Here's How To Stop It Google I/O 2026: What Happens When Everything Connects? Why AI writes software but doesn’t build a good product Beyond the Hype: How Google I/O 2026 Secretly Democratized Production-Ready AI Agents with Managed Sandboxes. The Killer Assumption Test: How to Spot Doomed Product Decisions Before You Ship Stop Describing Your Bugs — Just Screenshot Them # I Built an AI Website Builder and Here's What Actually Happened Cooking an AI Campaign in 5 Minutes with Google Cloud AI APIs Your PM Retrospectives Are Lying to You How I Built a Free, Self-Hosted Pipeline That Auto-Generates Faceless YouTube Shorts TypeScript 54 to 58: The Features That Actually Matter in 2026 How to Tailor Your CV to Any Job Posting in 2026 The 7-day SaaS MVP loop: ship fast, then validate with people who actually show up 95. Fine-Tuning LLMs: Make a General Model Do Your Specific Job What Is a Frontend Developer Roadmap and Why You Need One Google shipped three Gemini "Flash" models. Picking the wrong one could 6 your AI bill Building an MCP server so Claude can query my SaaS analytics directly Google I/O 2026 and the Rise of the AI Ecosystem Your Docker Builds Are Slow Because You're Doing It Wrong (And I Built a Tool to Prove It) How do you verify GitHub contributions without trusting self-reported skills? CV vs Resume: What's the Difference and Which Do You Need? student Devs: Build AI Agents & Compete for $55K in Prizes 🚀 How to Write a Cover Letter That Actually Gets You Interviews Battle-Tested: What Getting Hacked Taught Me About Web & Cyber Security Unda folders za kuandika code >> mkdir src >> cd src >> mkdir controllers database routes services utils >> cd .. Directory: C:\Users\mwaki\microfinance-system Mode LastWriteTime Length Name Code Coverage .NET AI slop debt" is technical debt on fast forward. Nobody's ready. Multi-Head Latent Attention (MLA) Stop Trusting Your Accuracy Score: A Practical Guide to Evaluating Logistic Regression Models Serious Question: Is the Developer Job Actually in Risk Due to AI? published: true tags: #discuss #career #ai #help rav2d: We ported an AV2 video decoder from C to Rust — here's why Your New Domain's First Week of GA4 Is a Lie: 4 Days of Raw Data from a Launch Gemma Guide - Real-Time Spatial Awareness for Blind Users From YAML to AI Agents: Building Smarter DevOps Pipelines with MCP A Field Guide to Human–AI Relations (For the Newly Bewildered Mortal) The AI Agent That Learns While It Works — A Complete Guide to Hermes Agent Inviting collaborators to work on ArchScope ArchScope is an interactive web-based tool that lets you design, visualize, and test system architectures with real-time performance simulations. Github - ArchScope is an interactive web-based tool that lets you Gemma 4: Google's Open-Weight AI Is a Game Changer for Developers Confessions of a Git Beginner: Why the Terminal Stopped Scaring Me Docker 容器化实战:从零到生产部署 🚀 I Built a Full Stack Miro Clone with Real-Time Collaboration using Next.js Building an African Economic Data Pipeline with Python, DuckDB & World Bank API llms.txt vs robots.txt vs ai.txt: The Developer's Cheat Sheet Intigriti Challenge 0526 Writeup Business Logic Flaws: How Attackers Skip Steps in Your App to Get What They Should Never Have Why Vibe Coders Need Boilerplates to Save Time, Tokens, and Build More Secure SaaS Projects Idle Cloud Cost Is the New Egress Cost Quark's Outlines: Python Traceback Objects Ghost in the Stack (Part 1): Why uninitialized variables remember old data
Memoria - Gemma 4로 제작된 지역 AI 독서 동반자
Santhosh L · 2026-05-23 · via DEV Community

Memoria — Gemma 4로 동작하는 지역 AI 독서 동반자

이것은 Gemma 4 챌린지: Gemma 4로 구축하기

제가 만든 것

독서를 좋아하는 사람조차 장편 소설을 읽는 것은 어려울 수 있습니다.

독자들은 캐릭터를 잊고, 이전 사건을 추적하지 못하고, 복잡한 문체를 이해하기 어렵거나, 중단 후 책을 다시 읽었을 때 이야기와 동떨어져 느낍니다. ADHD를 가진 독자, 기억력 문제, 인지적 피로, 접근성 필요가 있는 독자에게는 이것이 더욱 어려워집니다.

Memoria는 Gemma 4로 작동하는 지역 AI 독서 동반자로, 독자들이 Spoiler 없이 요약을 통해 책과 연결되도록 돕습니다, 맥락적 Q&아, 캐릭터 기억, 발화자 귀속, 그리고 텍스트 단순화 — 모두 사용자의 컴퓨터에서 로컬로 실행됩니다.

앱은 EPUB 리더와 인공지능(AI) 기반의 독서 지원 기능을 결합합니다.

  • 스플래이어 안전한 장면 요약
  • 캐릭터 기억 추적
  • 대화의 발화자 귀속
  • 문맥 기반 책 질문&A
  • 주장 설명
  • 어려운 글의 텍스트 단순화
  • 이전 장의 검색 기반 기억

모든 것이 Gemma 4를 통해 llama.cpp를 사용하여 로컬에서 실행되므로 독자는 유료 AI 구독이나 지속적인 인터넷 액세스가 필요하지 않습니다.


데모

데모에서 보여지는 기능

  • EPUB 책 업로드 및 처리
  • AI 생성 챕터 요약
  • 챕터 간 캐릭터 추적
  • 맥락 인식 Q&A
  • 고조점으로 설명하는 워크플로우
  • 어려운 부분에 대한 텍스트 단순화
  • 완료된 챕터에 한해 스포일러 안전한 검색

코드

GitHub 저장소:https://github.com/Santhoshl2312/Gemma_book_reader

사용된 주요 기술

  • Gemma 4 E2B
  • llama.cpp
  • FastAPI
  • SQLite
  • ChromaDB
  • Vanilla JavaScript
  • HTML/CSS

Gemma 4를 어떻게 사용했는지

Memoria는 Gemma 4를 전체 읽기 경험의 핵심 로컬 추론 엔진으로 사용합니다.

지역 llama.cpp OpenAI 호환 서버를 통해 Gemma 4 E2B 모델을 사용하여 애플리케이션이 클라우드 API에 의존하지 않고 완전히 오프라인에서 실행되도록 했습니다.

왜 Gemma 4 E2B인가요?

나는 특별히 반응성 높은 지역 리딩 보조 도우미에 가장 적합한 Gemma 4 E2B를 선택했습니다.

프로젝트는 다음을 필요로 했습니다.

  • 빠른 추론 속도
  • 낮은 VRAM 사용
  • 좋은 사고 품질
  • 신뢰할 수 있는 구조화된 출력
  • 소비자 하드웨어에서의 실용적인 로컬 배포

Gemma 4 E2B는 속도와 능력 사이의 적절한 균형을 제공하여 요약, 맥락적 질문에 대한 거의 실시간 응답을 제공할 수 있게 했습니다.&A, 텍스트 단순화, 장 처리를 하면서도 로컬에서 llama.cpp를 통해 계속 실행 중입니다.

이는 특히 중요했습니다. 앱은 사용자가 읽는 동안 배경에서 여러 작은 AI 작업을 지속적으로 수행하기 때문입니다.

Gemma 4는 무엇을 구동합니다

스포일러 안전한 요약

Gemma는 장면 조각을 구조화된 요약과 주요 사건으로 요약하여 독자들이 이야기와 빠르게 다시 연결할 수 있도록 돕습니다.

캐릭터 기억

모델은 지속적인 캐릭터 설명을 업데이트하고 각 캐릭터와 관련된 중요한 사건을 장편을 통해 기억합니다.

발화자 귀속

Gemma는 규칙 기반 시스템이 실패할 때 모호한 대화 발화자를 식별하는 데 도움을 줍니다.

맥락적 Q&A

독자들은 이야기에 대해 질문을 할 수 있으며, Gemma는 장면을 인지한 검색을 사용하여 미래의 스포일러를 피하면서 답변합니다.

텍스트 단순화

선택된 구절은 의미와 분위기를 보존하면서 현대적인 영어로 다시 쓸 수 있습니다.


기술 아키텍처

프론트엔드는 바닐라 HTML, CSS, 그리고 JavaScript로 구축된 가벼운 EPUB 리더입니다. 책 업로드, 장편 이동, 읽기 제어, 테마, 타이포그래피 설정, 그리고 AI 상호작용 패널을 처리합니다.

백엔드는 FastAPI와 SQLite로 구축되었습니다. 책, 장편, 요약, 임베딩, 캐릭터 메모리, 검색, 스트리밍 응답을 관리합니다.

AI 스택은 완전히 로컬에서 llama.cpp를 사용하여 실행됩니다:

  • Gemma 4 E2B는 로컬 채팅 및 추론 모델로 실행됩니다
  • Nomic 임베딩은 의미 검색을 지원합니다
  • ChromaDB는 책마다 벡터 임베딩을 저장합니다
  • 백그라운드 처리 파이프라인은 장을 점진적으로 분석합니다

앱은 책의 장을 단계별로 처리하여 한 번에 전체 소설을 컨텍스트에 로드하려 하지 않습니다. 요약, 캐릭터 기억, 임베딩, 발화자 메타데이터와 같은 중간 결과물은 독서 경험 전반에 걸쳐 저장되고 재사용됩니다.

이 파이프라인 우선 설계는 시스템을 더 빠르고, 더 현실적이며, 장편 독서에 더 적합하게 만듭니다.


스포일러-안전한 검색

가장 큰 디자인 목표 중 하나는 우연한 스포일러를 방지하는 것이었다.

독자가 질문을 할 때, Memoria는 사용자가 이미 완료한 장에서만 정보를 검색한다. 검색 시스템은 Gemma 4에 맥락을 보내기 전에 읽기 진행 상황을 사용하여 벡터 검색 결과를 필터링한다.

이렇게 하면 앱이 독자들이 이전 이야기의 세부 사항을 기억하게 도와주면서도 미래의 사건을 드러내지 않을 수 있다.


도전 과제

긴 책 다루기

전체 소설은 로컬 모델 컨텍스트 창에 직접 전송하기에는 너무 큽니다. 장을 작은 섹션으로 나누면서 롤링 요약과 캐릭터 기억을 계속 전달하여 이 문제를 해결했습니다.

구조화된 출력 신뢰도

지역 모델은 때때로 JSON 출력을 추가 포맷이나 설명으로 둘러싸는 경우가 있습니다. 파이프라인을 신뢰성 있게 만들기 위해 프롬프트는 매우 엄격하게 제한되었고, 백엔드는 처리하기 전에 유효한 JSON 블록을 안전하게 추출합니다.

발화자 귀속

소설에서 대화의 귀속을 결정하는 것은 어려운 일인데, 화자는 명시적으로 이름이 붙이기보다 암시되는 경우가 많습니다. 저는 명확한 경우에는 규칙을 사용하고, 불분명한 대화는 Gemma가 더 넓은 맥락을 사용하여 처리하는 혼합 방법을 사용했습니다.

전 지역 배포

이 프로젝트는 Gemma 4, 임베딩 모델, 파이썬 환경, 벡터 데이터베이스 등 여러 서비스에 의존합니다. 저는 설정 프로세스를 런처 스크립트를 사용하여 자동화했기 때문에 앱이 최소한의 수동 구성 없이 로컬에서 시작될 수 있습니다.


로컬 AI의 중요성

이 프로젝트의 주요 목표 중 하나는 접근성과 디지털 공정성입니다.

독자들이 필요로 하는 것은 없습니다:

  • 비싼 구독료
  • 클라우드 AI 서비스
  • 지속적인 인터넷 접속
  • 외부 데이터 수집

Gemma 4를 llama.cpp와 로컬 검색과 결합하여 Memoria는 사용자 하드웨어에서도 접근 가능하면서도 독자의 프라이버시를 존중하는 완전히 로컬 AI 독서 동반자를 만듭니다.

이는 개인 독자뿐만 아니라 교실, 도서관, 돌봄 환경, 그리고 오프라인 학습 환경에도 유용하다는 것을 의미합니다.


결론

Memoria는 Gemma 4가 챗봇을 넘어 실용적이고 프라이버시 친화적인 접근성 도구를 구동하는 방법을 보여줍니다.

독서를 대체하기보다는 독자를 지원하는 것이 목표입니다 — 이야기에 연결되어 있도록 도와주고 맥락을 기억하게 하며 독서 경험 자체를 보존하면서 인지 부담을 줄입니다.

Gemma 4 E2B, llama.cpp, 검색 및 구조화된 처리 파이프라인을 결합하여 Memoria는 정적 EPUB 책을 완전히 오프라인에서 실행할 수 있는 적응형 독서 경험으로 변환합니다.