Sai Kiran

Sai Kiran Saripilli · AI Engineer · Hyderabad

AI systems that listen, reason, and ask before they act.

I build agentic AI, retrieval and voice systems that run in production. 2+ years of shipping LangGraph agents, RAG pipelines and deep learning models, with the safety checks written into the code.

  • LangGraph · PyTorch · RAG
  • Open to AI engineer roles, hybrid or remote
Portrait of Sai Kiran Saripilli
Listening Thinking Speaking
LangGraphRAGPyTorchClaude APIFastAPITool callingCNN and RNNReactVoice AIOAuth 2.0RagasAWS

About

I turn messy, real-world requests into AI systems people can trust.

I'm an AI engineer in Hyderabad. At Infyz Solutions I build agents and data tools for port and cargo operations, from plain-English database queries to document processing that runs every day.

Outside work I build Ayra, a voice assistant that you can interrupt and that checks with you before it sends an email or places an order. On the machine learning side I work with PyTorch, CNNs and RNNs, and I fine-tuned a Gemma model.

At a glance

  • RoleAI Engineer
  • Experience2+ years
  • Based inHyderabad, India
  • EducationB.Tech CS, CGPA 8.4/10
  • Looking forAI engineer roles

Case studies

Four systems, each built to be trusted.

Agents that take real actions need guardrails more than clever prompts. Open a story to see the problem, the limits I worked within, what I built, and what I took from it.

Voice agent · personal project

Ayra, a voice assistant you can interrupt

It talks like a person and works like a careful assistant. Interrupt it mid-sentence, ask it to check Maps or read your email, and it only sends or buys something after you say yes.

22tools, plus web search
1spoken yes per email or order
₹1,000order limit, cash on delivery
Screenshot of the Ayra voice assistant interface with a glowing ring
Ayra running locally. The ring changes state as it listens, thinks and speaks.
Read the full storyHide the story

Problem

Voice assistants tend to be either slow or reckless. I wanted one I could cut off mid-sentence that still would never send an email or place an order by mistake.

Constraints

  • Speech has to start fast, and stop the instant I cut in.
  • It must never answer its own voice coming back through the microphone.
  • Emails, web pages and news are untrusted text that could carry instructions.

What I did

  • Deepgram Flux streams the microphone and decides when I have finished speaking. Words it would mishear are boosted: contacts, “Ayra”, “Swiggy”, “Instamart”. Low-confidence sounds are ignored.
  • Claude Haiku runs inside a LangGraph agent with conversation memory, so follow-ups work. Ayra starts speaking after Claude's first clause and says “Let me check” while a tool runs.
  • Sarvam AI's Bulbul v4 gives a natural Indian English voice. Padding and kept-awake Bluetooth headphones stop words being clipped.
  • “Stop”, “wait” or “Ayra” cuts it off mid-sentence, and so does clicking the page or pressing Enter. Echo protection stops it hearing itself.
Microphone Deepgram Fluxlive transcription LangGraph agentClaude Haiku · memory Sarvam AIBulbul v4 voice Speaker audio text reply speech Interruptvoice, click or Enter stops writing stops speech Read toolstime, weather, maps, search Write toolssend email, place order runs now waits for a spoken yes
One turn of Ayra. Read tools run straight away. Write tools stop until you confirm the exact read-back, and an interruption cancels both the writing and the speech.

What you can ask

TimeDate and time in any timezone.
WeatherToday, or up to 16 days ahead, for any place.
RemindersSet, list and cancel. Cancelling several asks first.
MapsAddresses, directions by car, on foot or transit, and nearby places.
GmailSearch, read, draft to a contact, and send only after your spoken yes.
ContactsMatch misheard names: “Saikran” finds “Sai Kiran”.
Quick answers166 currencies, unit conversion, tech and AI headlines, web search.
SwiggyOrder history, live tracking, search, cart and a full order read-back.

Safety, enforced in code

These rules sit in the program, so the model cannot talk its way around them.

  • Emails and Swiggy orders need your yes in the very next reply, to the exact read-back.
  • Emails, web pages and news cannot trigger emails, reminders or orders in the same turn, and email bodies are marked as untrusted.
  • Email goes only to people in your contacts, and a subject line cannot add hidden recipients.
  • Swiggy orders are cash on delivery only, within the ₹1,000 limit and the ₹99 Instamart minimum, with a final cart check and no automatic retries.
  • Only sign-in tokens are saved, readable by you alone. Every tool is marked read or write and returns a short structured result with clear errors such as auth_expired or not_found.

Outcome

A working assistant with 22 tools plus web search, where every email or order takes exactly one spoken yes, and an interruption cancels both the writing and the speech.

Built with

Deepgram FluxClaude HaikuLangGraphSarvam AIGmail APIGoogle MapsOAuth 2.0

What I took from itRules that matter belong in code, not in the prompt. A model can be talked around, a check in the program cannot.

Production system · conversational booking

ArtistOnGo, booking by conversation

A conversational booking platform for salon space rentals, live in production. Four kinds of users talk to the same assistant, each with their own permissions.

4user personas
300+automated tests
31K+records searched
Screenshot of the ArtistOnGo home page
ArtistOnGo, the live booking platform the assistant works inside.
Read the full storyHide the story

Problem

One assistant had to serve four kinds of users on a salon space rental marketplace, and each kind is allowed to do different things.

Constraints

  • Verification gates and licence checks can never be skipped.
  • Permissions differ per persona, and session state must hold across turns.
  • It is live, so latency-sensitive paths have to stay fast and tested.

What I did

  • Built a two-stage pipeline. The first stage works out who is asking and what they want. The second answers and calls tools.
  • Added a deterministic state machine that controls flow position from session state, so the model never picks the next step.
  • Combined vector search, geographic radius queries and structured filters over 31K+ records.
  • Closed an account-takeover path in the one-time-password flow, and removed bearer tokens stored at rest in the session store, which had allowed a cross-account data leak.
Message Stage 1 routerpersona and intent State machineverification, licence gates Stage 2 agenttools and answers Reply flow is never LLM-inferred Session stateper-persona permissions owns the flow position Hybrid retrieval31K+ records
The state machine sits between the router and the agent. It holds the flow position in session state, so the model never decides which step comes next.

Outcome

Four personas served by one assistant, a 300+ test suite covering orchestration and latency-sensitive paths, and two security holes closed.

Built with

LangGraphFastAPIDjango RESTNext.jsChromaDBFAISS

What I took from itLet the model do the talking and let code decide the flow. Business rules hold up when the model is never asked to remember them.

Multi-agent system · research

ZORA, parallel research agents

A research system that splits a question across parallel agents and merges what they find into one grounded report.

60%lower latency than sequential
9.2/10faithfulness, scored with Ragas
Illustration of the ZORA research interface with four parallel researchers and a streaming report
Illustration of the ZORA interface with sample data, not a live screenshot.
Read the full storyHide the story

Problem

A research question breaks into several parts. Working through them one after another is slow, and how many parts there are changes with every question.

Constraints

  • The number of agents is only known at runtime.
  • Every agent's result has to merge into one consistent state.
  • Answers should stream, and quality has to be measurable.

What I did

  • Used LangGraph's Send API to start a dynamic number of researcher agents at runtime.
  • Merged each result into shared state with reducers, in a map-reduce pattern, and streamed answers over server-sent events.
  • Let the system write a missing tool at runtime, validate it with an AST check and run it in a sandbox.
  • Scored every run with a Ragas evaluation pipeline.
Question Plannersplits the task Researcher 1 Researcher 2 Researcher 3 Researcher N Mergereducers Writergrounded report fan-out fan-in Clientstreamed over SSE Tool synthesisAST check, sandbox Ragasfaithfulness 9.2/10
The planner starts as many researchers as the question needs. Reducers merge their findings, the writer produces the report, and the answer streams to the client.

Outcome

60% lower latency than the sequential version, and a 9.2/10 faithfulness score from Ragas.

Built with

LangGraphFastAPIReActSSERagas

What I took from itScore every run. When quality is measured each time, it is tracked rather than assumed.

Enterprise tool · natural-language data access

Plain-English database queries with role-based access

Operations staff at a shipping port ask questions in plain English and get answers from live databases, without waiting for an engineer to write a query.

100+non-technical users
100%adoption
Illustration of the plain-English data assistant with role-based access and a results table
Illustration of the data assistant with fictional sample data, not a live screenshot.
Read the full storyHide the story

Problem

Non-technical port operations staff needed answers from live databases, and had to wait for an engineer to write each query.

Constraints

  • People ask in plain English, not SQL.
  • Answers must come from live data.
  • Each person may only see what their role allows.

What I did

  • Designed a query-routing service that turns a question into a query against live data.
  • Added role-based access so each role only reaches the data it is allowed to see.

Outcome

The manual query bottleneck is gone. 100+ non-technical staff use it, with full adoption across the enterprise teams.

Built with

LangChainRBACSQLPython

What I took from itPeople adopt a tool when they can ask in their own words and trust that the access rules are built in.

How I work

Listen, build, prove.

The same three steps show up in every project above.

1

Listen

Find the real job and the limits before choosing any model.

  • Who asks, and what are they allowed to do?
  • What must never happen?
  • Which text can be trusted, and which cannot?
2

Build

Let the model reason, and let code hold the rules.

  • Agents with small, typed tools
  • State machines for flow, confirmation for actions
  • Retrieval tuned to the data
3

Prove

Measure quality so it is tracked rather than assumed.

  • Ragas scoring on every run
  • 300+ tests on the paths that matter
  • Latency checked against the old way

What I care about

Habits that show up in the code.

Rules live in code

Confirmation gates and access rules sit in the program, where a clever prompt cannot undo them.

Measure, don't assume

Evaluation and tests run on every change, so I know a system works instead of hoping.

Plain language first

Operations staff ask in English and Ayra answers out loud. The tool adapts to people.

Small, clear tools

Every tool is marked read or write and returns a short result with a clear error.

AI stack

From classical models to agents and voice.

The full range of AI work I do, from training and fine-tuning models to building agents around them.

Agents and orchestration

LangGraph state machines, fan-out and fan-in, tool calling, memory, and human confirmation steps.

Retrieval (RAG)

Chunking, embeddings, ChromaDB, FAISS and hybrid retrieval over 31K+ records.

Machine learning

Building, training and evaluating models, and applying them inside production pipelines.

Deep learning

PyTorch, CNNs and RNNs. Fine-tuned a Gemma model with PyTorch.

Vision and documents

Hybrid OCR with AWS Textract and open-source models, layout-preserving extraction and annotation tooling.

Voice AI

Streaming speech-to-text, Sarvam speech output, barge-in handling and echo suppression.

Safety

Confirmation gates, prompt-injection defence, role-based access and least-privilege OAuth scopes.

Evaluation

Ragas faithfulness scoring and a 300+ test suite covering orchestration and latency-sensitive paths.

AI and LLM

LangChainLangGraphRAGAgentic AITool callingClaude APIChromaDBFAISSRagasPyTorchCNNRNNGemma fine-tuning

Languages and backend

PythonJavaScriptNode.jsReactFastAPIDjango RESTREST APIsAsync programming

Systems

System designMicroservicesDistributed systemsCachingData structures and algorithms

Cloud, data, real time

AWS (EC2, S3, Textract)DockerCI/CDMySQLRedisWebSocketsSSE

Integrations and security

Google APIsOAuth 2.0RazorpayDeepgramSarvam AIRBACJWT

Experience

Two years of AI in production.

Jan 2025 to present

AI Engineer

Infyz Solutions · Hyderabad

  • Designed a query-routing service with role-based access that lets 100+ non-technical port operations staff query live databases in plain English, with 100% adoption.
  • Built a document processing pipeline that handles 100 to 150 documents a day and cut manual processing work by 60%.
  • Built a parallel task-orchestration system with fan-out and fan-in, map-reduce merging and SSE streaming, giving 60% lower latency than the sequential version.
  • Built and deployed a real-time management platform for 11 yards and 7,000+ cargo slots, serving 10 to 15 concurrent enterprise users with live tracking, REST APIs and automated inspection workflows.
Nov 2023 to Dec 2024

Software Engineer, AI

Zessta Software Services · Hyderabad

  • Designed a hybrid document pipeline combining AWS Textract with open-source models. It fixed layout failures on handwritten, printed and mixed formats that had caused complete extraction loss on multi-column records.
  • Built an annotation tool with a frontend that removed manual dataset labelling and shortened the processing cycle for internal pipelines.
2020 to 2024

B.Tech, Computer Science

Centurion University · CGPA 8.9/10

Contact

Hiring for an AI engineer? Let's talk.

I'm based in Hyderabad and open to AI engineer roles, hybrid or remote. Email is the fastest way to reach me.

Phone: +91 90002 67793