Mesa de Ayuda IA is an advanced multi-agent AI system built for the sales team of Patito S.A. — a fictitious company used as a realistic case study. Sales representatives often waste time hunting through product catalogs, policy documents, and CRM manuals to answer customer questions or process deals. This system eliminates that friction: a sales rep types a question in plain language (or uploads a product photo), and Mesa de Ayuda IA instantly retrieves accurate, source-cited answers by routing the query to the right specialized AI agent. Built on LangGraph, LangChain, Google Gemini, FastAPI, ChromaDB, and Next.js, the project is architected as a production-quality software system — not a notebook — with a REST API, a web UI, persistent storage, observability, and four layers of security guardrails.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/geremyjampiersalasgarcia-eng/Caso_Practico_Semillero_IA/llms.txt
Use this file to discover all available pages before exploring further.
What you can do
Query the Product Catalog
Ask about product names, specifications, pricing, and availability. The Catalog & Pricing Agent retrieves answers directly from the official catalog document stored in ChromaDB.
Check Commercial Policies
Look up discount limits, authorization levels, payment credit rules, warranties, and return policies. The Commercial Policies Agent cites the exact policy document behind every answer.
Navigate the Sales Process & CRM
Get step-by-step guidance on the sales funnel stages, what data to enter before closing an opportunity, and CRM best practices. The Sales Process & CRM Agent draws from the official sales manual.
Analyze Product Images
Upload a photo of a product and ask what it is, whether it’s in the catalog, and how much it costs. The Multimodal Image Agent uses Gemini Vision to identify the product and cross-references the catalog collection.
Register CRM Opportunities
Dictate a sales opportunity in natural language. The Action Agent validates required fields (client, contact, product, quantity, discount, payment terms), warns you if a discount exceeds the auto-approval threshold, and writes the record to both a file and PostgreSQL after you confirm.
System components
| Layer | Technology | Role |
|---|---|---|
| Backend | FastAPI + Uvicorn (Python 3.11) | REST API server with async endpoints, input validation, and OpenAPI / Swagger UI |
| Orchestrator | LangGraph StateGraph | Stateful multi-agent pipeline — classifies intent, routes conditionally, executes agents, and consolidates results |
| Agents | LangChain (5 specialized) | Catalog & Pricing, Commercial Policies, Sales Process & CRM, Multimodal Image, Action Registration |
| LLM & Embeddings | Google Gemini (gemini-flash-lite-latest / gemini-embedding-001) | Language generation at temp 0.1 for agents, temp 0.0 for the classifier; embeddings for vector similarity |
| Vector Store | ChromaDB (local, persistent) | Three isolated collections — col_catalogo, col_politicas, col_proceso_ventas — one per knowledge domain |
| Database | PostgreSQL (Docker) + SQLite fallback | Stores conversation history, messages, CRM opportunities, and audit logs |
| Observability | Arize Phoenix (Docker) + OpenTelemetry | Full LangGraph span traces, per-agent latency, and token-cost tracking |
| Frontend | Next.js 14 + TypeScript + Tailwind CSS | Modern responsive chat UI with image upload, conversation history, and markdown rendering |
Prerequisites
Before running the project locally, make sure you have the following installed:- Python 3.11+ — required to run the FastAPI backend and all AI agents
- Node.js and npm — required to build and run the Next.js frontend
- Docker Desktop — required to start the PostgreSQL database container and the Phoenix observability server
- Google Gemini API Key — required for LLM inference and embedding generation. Get a free key at https://aistudio.google.com/apikey
Ready to run the project? Head over to the Quickstart guide for a step-by-step walkthrough that gets you from zero to a working local deployment in about 10 minutes.