Naga Sai's Work | ContraWork by Naga SaiNaga Sai
GenAI Engineer | AI Agents, RAG & Trading Systems
š® Agentic GameāBuilder AI: describe a game in plain English, get a fully playable browser game.
I built a multiāagent pipeline on Googleās Agent Development Kit (ADK) and Gemini. It turns an idea like āa retro space shooter with powerāups and a boss fightā into a working game in one selfācontained HTML file.
How it works:
1ļøā£ Clarify: a LoopAgent asks focused questions until the requirements are clear.
2ļøā£ Plan: a Planning agent designs the entities, mechanics, controls and win/lose rules as a validated JSON plan.
3ļøā£ Build: Generator + Writer agents produce the code. Forced tool calls and a fallback extractor make sure a playable file always comes out.
4ļøā£ Play: a live dashboard (FastAPI + WebSockets) streams the code as itās written and runs the game in a sandboxed preview.
Highlights: Canvasādrawn graphics and Web Audio sound effects (no external assets), keyboard + mobile touch controls, and Docker support.
Tech: Python Ā· Google ADK Ā· Gemini Ā· FastAPI Ā· WebSockets Ā· HTML5 Canvas Ā· Docker
š github.com/bns218/Agentic-Game-Builder-AI- š¤ BTST Trading Research Agents: a multi-agent AI system for overnight stock research.
I designed four specialised AI subagents and packaged them as a Claude Code / Cowork plugin. They automate the research for BTST (buy today, sell tomorrow) trades in NSE F&O stocks.
The agents:
š market-context: decides if itās safe to hold new positions overnight (index moves, VIX, FII/DII flows, global cues, upcoming events).
š° catalyst-analyst: finds out why each stock moved, scores its news catalyst from -2 to +2, and vetoes stocks with real event risk.
āļø morning-briefer: an 8:30 AM pre-market brief with a buy/sell watchlist and a table showing which data was verified.
šÆ exit-manager: reads live holdings and prices through a read-only Zerodha Kite MCP connection and recommends sell or hold for each position.
Design highlights:
⢠Each agent gets only the tools it needs, and none of them can place orders.
⢠Agents return structured JSON so the next step in the workflow can use their output directly.
⢠Scheduled tasks run the full trading day automatically (8:30 AM, 3:05 PM, 4:15 PM).
⢠Built-in honesty: if a fact canāt be verified, the agent leaves it out or marks it āNOT verifiedā instead of making it up.
Tech: Claude Code subagents Ā· MCP Ā· Prompt engineering Ā· Plugin packaging
š github.com/bns218/BTST šļø Live Captions + Translation: real-time speech-to-text with instant translation.
I built a Streamlit web app that listens to your microphone, shows live captions as you speak, and translates them into another language in real time.
How it works:
1ļøā£ Mic stream: streamlit-webrtc captures live audio frames in the browser.
2ļøā£ Speech-to-text: Kyutaiās 2.6B-parameter STT model (Hugging Face Transformers) turns the audio into English text.
3ļøā£ New-word detection: only newly spoken words are sent for translation, so the app doesnāt re-translate the whole caption every time.
4ļøā£ Translation: Metaās NLLB-200 (600M) model translates into any of 200 languages. Hindi is the default.
Engineering highlights:
⢠Models load once and stay cached (st.cache_resource), so the app responds quickly.
⢠Runs on GPU in float16 when available and falls back to CPU.
⢠Switching the target language takes one setting change.
Use cases: meetings, lectures, accessibility for hearing-impaired users, and multilingual conversations.
Tech: Python Ā· PyTorch Ā· Hugging Face Transformers Ā· Streamlit Ā· WebRTC
š github.com/bns218/live_caption_app š Food Ordering Chatbot: order food and track deliveries just by chatting.
I built a restaurant website with an AI chatbot (Dialogflow ES) and a Python FastAPI backend. Customers can place and track orders in plain English.
What it does:
⢠New Order: ā2 Rava Dosa and one samosaā ā the bot adds the items. You can add or remove items in the same chat (āremove the samosaā).
⢠Completes the order, saves it to MySQL, and returns an order ID and the total bill.
⢠Track Order: share an order ID and get its live status (in transit or delivered).
How it works: Dialogflow detects the intent and extracts the food items and quantities. A FastAPI webhook sends each intent to its own handler and keeps a separate in-progress order for each chat session. MySQL stores the orders and their status.
Tech: Python Ā· FastAPI Ā· Dialogflow ES Ā· MySQL Ā· HTML/CSS
š github.com/bns218/Food-Chatbot