SShortSingh.
Back to feed

ORAG: A Go-Native RAG Framework Combining Hybrid Retrieval and Document Ingestion

0
·1 views

ORAG is an open-source, Go-native Retrieval-Augmented Generation (RAG) service framework designed to handle end-to-end workflows including document ingestion, hybrid retrieval, answer generation, and evaluation. The framework uses Hertz for its HTTP API, with PostgreSQL and Qdrant serving as the default storage and retrieval backends respectively. Ingestion is supported via JSON text import and multipart file upload, with jobs trackable through dedicated API routes such as /documents:import and /ingestion-jobs/{id}. Hybrid retrieval combines dense vector search via Qdrant and sparse full-text search via PostgreSQL, followed by fusion and reranking steps. Developers can explore the project locally using Docker Desktop and the make demo command, which spins up all dependencies and exercises the core ingestion and retrieval pipeline.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Four Design Lessons from Building a Block-Editing Language for AI Agents

Developers building IWE, an AI agent memory system, found that requiring agents to re-emit entire documents for small edits caused a 9% structural malformation rate in their first benchmark round. To fix this, they created a block-level editing language that lets agents target specific document nodes—headers, paragraphs, tables—without rewriting whole files. The system introduces 'expect guards' that force operations to fail loudly if the number of matched targets differs from what the agent anticipated, reducing silent errors. Document keys must be derived deterministically from metadata, making duplicate entries a structural impossibility rather than a prompt-discipline problem. These design choices reflect a broader principle: for AI agents, safety constraints should be enforced by the engine, not left to instruction-following.

0
ProgrammingDEV Community ·

Tokenization Explained: How AI Models Convert Text Into Numbers

Tokenization is the process by which AI models break input text into smaller units called tokens before processing it, since computers work with numbers rather than raw language. Each token is assigned a numerical identifier called a token ID, allowing the model to perform mathematical operations on the text. Tokens do not always correspond to whole words; uncommon or lengthy words are often split into smaller subword units, which helps models handle rare terms, names, and technical vocabulary. This subword approach means a model does not need to store every possible word in its vocabulary, instead combining reusable pieces to represent new or unseen words. Tokenization is equally applicable to programming languages, enabling AI coding assistants to process and generate code across dozens of languages such as Python, JavaScript, and SQL.

0
ProgrammingDEV Community ·

Why JavaScript Evaluates '2' > '10' as True: String vs Number Comparison

In JavaScript, comparing '2' and '10' as strings yields a surprising result of true, unlike the numeric comparison which correctly returns false. This happens because JavaScript uses lexicographical ordering when comparing string values, evaluating characters one by one as in a dictionary. Since the character '2' ranks higher than '1' in character ordering, '2' is considered greater than '10' as strings. When one value is a string and the other a number, JavaScript automatically converts the string to a number before comparing, restoring expected mathematical behavior. The key takeaway for developers is that data types fundamentally affect how comparisons are evaluated in JavaScript.

0
ProgrammingDEV Community ·

Developer spends 10 hours tracing AWS timeout to a self-inflicted credentials bug

Developer Themis Lex deployed an AI-powered PDF assessment tool called Themis Lex to AWS Amplify for the Women in AI Accelerator Spring 2026 Build Challenge, only to encounter a 28-second timeout error immediately after launch. The app, which uses Claude via AWS Bedrock to generate role-specific AI guidance for court clerks, appeared to work perfectly in local development. The root cause turned out to be a hardcoded credentials object in the AWS SDK client that passed empty strings instead of omitting the field, effectively blocking the SDK's automatic credential provider chain. Because the failure occurred before any application logic ran, the try/catch block logged nothing, making the bug resemble a platform timeout rather than a code error. After ten and a half hours of debugging and a series of fixes including switching to response streaming and a lighter AI model, the app was successfully shipped.