Home Articles Books Search About
日本語
Tech Stack for a RAG App That Searches Historical Documents with AI

Tech Stack for a RAG App That Searches Historical Documents with AI

Introduction I built a RAG (Retrieval-Augmented Generation) application that lets users ask natural language questions about a research project’s published reports (10 volumes) and receive answers with citations to the relevant source materials. This article covers the tech stack and key design decisions behind the app. Architecture Overview User ↓ Question Next.js (App Router) ↓ API Route Query Rewrite (LLM) ↓ Refined search query Embedding Generation (text-embedding-3-small) ↓ Vector Pinecone (Vector Search, topK=8) ↓ Relevant chunks LLM (Claude Sonnet) ← System prompt + Context ↓ SSE Streaming Display answer to user Frontend Next.js 16 + React 19 + TypeScript The app uses the App Router with a simple 3-page structure. ...

Creating a Castle Generation Command as a Minecraft Mod [Fabric 1.21 + Claude]

Creating a Castle Generation Command as a Minecraft Mod [Fabric 1.21 + Claude]

Note: Most of this article was written by AI. Introduction For the purpose of learning Minecraft Mod development, I created a Mod that generates a castle with a single command. Development Environment The technology stack used: Minecraft: 1.21 Modding Framework: Fabric Mod Java: 21 Development Environment: Cursor (AI-integrated editor) AI Assistance: Claude 4 Sonnet Environment Setup Java 21 installation was needed, so I installed it with Homebrew: brew install openjdk@21 Project initialization was done by cloning Fabric’s official template: ...

Registering Resources (Items and Images) in Omeka S Using an MCP Server

Registering Resources (Items and Images) in Omeka S Using an MCP Server

Overview As part of learning about MCP servers, I created an MCP server that registers resources (items and images) in Omeka S. https://github.com/nakamura196/omeka-s-mcp-sample Related Articles I referenced the following articles. https://zenn.dev/himara2/articles/14eb2260c4f0e4 https://zenn.dev/meson_tech_blog/articles/simple-mcp-server Setup I will leave the details of how to use the MCP server with Claude Desktop to other articles. Add configuration like the following. { "mcpServers": { ... "omeka": { "command": "python", "args": [ "<absolute_path>/omeka_s_mcp_sample/server/omeka_server.py" ], "env": { "OMEKA_API_URL": "<Omeka S URL>/api", "OMEKA_KEY_IDENTITY": "<OMEKA_KEY_IDENTITY>", "OMEKA_KEY_CREDENTIAL": "<OMEKA_KEY_CREDENTIAL>" } }, ... } } As a result, the tools are registered as shown below. ...

Storing Omeka S Files in mdx.jp Object Storage

Storing Omeka S Files in mdx.jp Object Storage

Overview This is a memo on how to store Omeka S files in mdx.jp object storage. Base Module We use the following module as a base, which enables integration with Amazon S3. https://omeka.org/s/modules/AmazonS3/ This module provides an extension for storing media files such as images and videos handled by Omeka S in Amazon S3. However, since it did not support specifying an endpoint, it was not possible to target object storage services like mdx.jp. ...