· Active

AI agents and RAG chatbots for technical support

An AI agent is not just a chatbot that replies. It is a system that looks up the company’s information, connects to its tools and gets tasks done.

This year at DPI Estrategia I have worked on support agents, both chat and voice. In all of them we followed the same idea: AI helps, but the human stays in control.

  1. Tech support assistantsimulation

    Hi, I am the tech support assistant. How can I help?

    The machine shows error E-07 on start-up. What do I do?

    E-07 means the inlet pressure is below the minimum. Try this: 1) check the inlet valve is open, 2) check the filter and clean it if it is dirty, 3) restart the unit. If the error persists, open an incident.

    Retrieved sources
    • Service manual · p. 34 0.92
    • Described image: pressure circuit 0.87

    An assistant technicians can ask anything

    In the support agent projects, the goal was to give technicians a chatbot they could ask on the spot, instead of digging through manuals hundreds of pages long. It answers fast, shows where the answer came from and improves the whole support process. You can try it, although it is a simulation with prepared answers.

    • Gemini
    • Python
    • Next.js
    • React
    • TypeScript
    • Azure
  2. How a PDF gets chunkedsimulation
    1. Changing the filter. Before you start, switch off the unit and close the inlet valve.

      ✓ One complete idea
    2. 🖼 Side view of the unit. The filter sits behind the right panel, held by two screws.

      ✓ The image, in words
    3. Steps: 1. Remove the side panel. 2. Loosen both screws. 3. Replace the filter and check the seal.

      ✓ No noise

    PDF Gemini OCR selective chunking PostgreSQL + pgvector

    A custom RAG for image-heavy PDFs

    The documentation was PDFs full of images, diagrams and tables, exactly what a standard RAG handles worst. We used Gemini's OCR to read them and applied selective chunking, in which the AI pulls the important information out of each document and describes every image in words. So when the system retrieves a chunk, it also retrieves what the picture showed.

    • Gemini
    • Python
    • PostgreSQL
  3. Three people reviewing something together on a laptop

    The human stays in control

    We built a platform with an admin panel to add new knowledge, update it, analyse how the assistant answers and fix specific things. Answers that technicians validate as good are stored in a dedicated database and feed the system, which learns from what has already worked. Everything lives in PostgreSQL with its vector side (pgvector) for search, so there is a single database to maintain.

    • Next.js
    • React
    • TypeScript
    • PostgreSQL
    • Azure
  4. A call to the agentsimulation
    1. Call
    2. Virtual number
    3. SIP trunk
    4. PBX
    5. Voice agent
    6. Ticket API
    • Caller Hi, the machine on floor 2 won’t start.
    • Agent Sorry about that, I’ll open an incident. What is the serial number?
    • Caller It’s X200-5531.
    • Agent Done. A technician will call you today.

    Ticket #4821 · Open · assigned to a technician

    A voice agent connected to the PBX

    The other front was voice. We bought a virtual number, connected it via SIP trunking to the company's PBX and set up an agent that answers calls, connected to the APIs of their internal ticketing system. In the first stage we made sure the agent logged every incident properly and opened its ticket; in the second, it also answers to solve the problem during the call. It is a hybrid approach, because whatever the agent solves is closed right there and the rest follows its ticket to a technician.

The whole stack

  • Gemini
  • Python
  • Next.js
  • React
  • TypeScript
  • Azure
  • PostgreSQL

What it gave me

  • Building a custom RAG when the standard one is not enough, with OCR, selective chunking and image descriptions
  • Designing human-in-the-loop systems that learn from validated answers
  • Connecting a voice agent to a PBX via SIP trunking and to a ticketing system via API
  • Working in stages, first getting the agent to log things right and then to solve them