> For the complete documentation index, see [llms.txt](https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/arquitectura-y-conceptos/architecture/c4-model/2.2_container_view.md).

# Contenedores

Esta vista se enfoca en los bloques técnicos de alto nivel que conforman Taína IA: el frontend conversacional, el agente de voz y la base de conocimiento. Mientras que el Diagrama de Contexto muestra el sistema en relación con sus usuarios y sistemas externos, este Diagrama de Contenedores hace un acercamiento para mostrar los componentes técnicos de alto nivel (contenedores) que conforman el sistema y cómo interactúan.

<figure><img src="/files/GQpwngUBQOumr2BSLpoo" alt=""><figcaption></figcaption></figure>

## Contenedores principales

* **Voice AI UI (Frontend)**\
  Aplicación web que proporciona la interfaz conversacional para los ciudadanos. Captura audio desde el micrófono del usuario, lo transmite al backend a través de WebRTC, y reproduce las respuestas del sistema. La UI está completamente en español, proporcionando una interfaz accesible para ciudadanos hispanohablantes. Es adaptable a múltiples canales de despliegue, incluyendo quioscos, web, y móvil. Dentro de sus responsabilidades clave está:
  * Proporcionar una interfaz conversacional intuitiva en español
  * Capturar y transmitir audio desde el micrófono del usuario
  * Mostrar transcripciones en tiempo real del habla del usuario
  * Reproducir respuestas de audio del sistema
  * Visualizar el estado de la conversación
  * Soportar entrada de texto como alternativa al habla
  * Mostrar historial de conversación
  * Adaptarse a diferentes canales de despliegue
* **Agente de voz (Backend LiveKit)**

  Es el componente backend principal que procesa flujos de audio, gestiona conversaciones y coordina con servicios externos. Maneja la conversión de voz a texto, procesamiento de lenguaje natural, recuperación de conocimiento y conversión de texto a voz. Dentro de sus responsabilidades clave está:

  * Procesar flujos de audio entrantes de ciudadanos
  * Realizar Detección de Actividad de Voz (VAD)
  * Convertir voz a texto usando la API de Speech-to-Text
  * Procesar lenguaje natural usando la API de Modelo de Lenguaje
  * Recuperar información relevante de la Base de Conocimiento
  * Generar respuestas basadas en consultas de usuarios
  * Convertir respuestas a voz usando la API de Text-to-Speech
  * Transmitir respuestas de audio de vuelta a los ciudadanos
  * Gestionar estado y contexto de conversación
  * Integrarse con sistemas gubernamentales
* **Base de conocimiento dual (ChromaDB)**

  Almacena información de servicios gubernamentales, documentos y preguntas frecuentes en un formato vectorial que permite búsqueda semántica. Es utilizada por el agente de voz para recuperar información relevante al responder a consultas de usuarios. Dentro de sus responsabilidades clave está:

  * Almacenar información de servicios gubernamentales en formato vectorial
  * Habilitar búsqueda semántica basada en embeddings de consultas
  * Proporcionar contexto relevante para el modelo de lenguaje
  * Soportar múltiples tipos y formatos de documentos
  * Mantener metadatos sobre documentos para citación
* **Servidor WebRTC (LiveKit)**

  El Servidor WebRTC gestiona conexiones WebRTC y streaming de audio entre el frontend y backend. Maneja la creación de salas, gestión de participantes y enrutamiento de medios. Dentro de sus responsabilidades clave está:

  * Crear y gestionar salas WebRTC
  * Enrutar flujos de audio entre frontend y backend
  * Gestionar canales de datos para intercambio de metadatos
  * Asegurar comunicación de audio de baja latencia

## Integraciones clave dentro del agente

1. **Speech-to-Text (Deepgram)** convierte el audio a texto en tiempo real.
2. **Google Gemini (LLM)** interpreta la intención, decide qué herramienta invocar y genera la respuesta.
3. **Text-to-Speech (ElevenLabs)** sintetiza la respuesta en voz natural.
4. **Herramientas especializadas** consultan la base de conocimiento (por ejemplo, `list_services`, `get_service_overview`, `ask_knowledge_base`).

## Relación entre contenedores

1. La interfaz conversa con el agente a través de LiveKit.
2. El agente llama a los servicios externos (STT, LLM, TTS) según lo requiera la interacción.
3. El agente consulta ChromaDB usando las herramientas especializadas para obtener información confiable.
4. La respuesta vuelve a la interfaz, que la muestra en texto y voz.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/arquitectura-y-conceptos/architecture/c4-model/2.2_container_view.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
