Agente IA: Assistente do Google Calendar
Um assistente do tipo secretária que gere os seus eventos, fornece resumos e armazena a sua agenda no Sheets.
🧩 Visão Geral
O fluxo de trabalho é um “Assistente de Secretaria” baseado em IA que recupera automaticamente eventos do Google Calendar, os resume, registra as informações em uma planilha do Google Sheets e entrega o resultado por meio de uma interface de chat. Ao integrar engenharia de prompt, raciocínio de LLM, busca vetorial e manipulação de planilhas, ele simplifica o gerenciamento de eventos e reduz a entrada manual.
⚙️ Principais Funcionalidades
- Recupera eventos de um Google Calendar específico.
- Transforma dados dos eventos em resumos em linguagem natural.
- Busca em uma base vetorial por contexto relevante dos eventos.
- Gera uma resposta concisa e amigável ao usuário via chat.
- Registra detalhes dos eventos no Google Sheets com um layout de cabeçalho predefinido.
🔄 Etapas do Fluxo de Trabalho
| Nome do Componente | Função no Fluxo de Trabalho | Entradas Principais | Saídas Principais |
|---|---|---|---|
| Momento a comprobar | Fornece o momento especificado pelo usuário (ex.: “mañana”) que delimita a busca de eventos. | Texto “mañana” | Texto “mañana” |
| Tema a comprobar | Fornece a categoria do evento (ex.: “Daily”) usada no template do prompt. | Texto “Daily” | Texto “Daily” |
| Instruções (Prompt) | Constrói um prompt dinâmico contendo o momento, o tema e os dados extraídos do calendário. | Momento, Tema, Texto do Evento | Mensagem de prompt |
| Google Calendar Assistant (Obtener Eventos) | Obtém os eventos do Google Calendar selecionado. | Seleção do calendário, operação “Get” | Dados dos eventos do calendário |
| Obtener Datos de evento (ParseData) | Formata os dados brutos do calendário em um documento estruturado. | Dados dos eventos do calendário | Dados de eventos estruturados |
| Language Recursive Text Splitter | Divide os documentos dos eventos em blocos adequados para embeddings. | Dados de eventos estruturados | Dados fragmentados |
| Subir a DB (Chroma) | Armazena os blocos em uma base vetorial, criando embeddings para buscas futuras. | Dados fragmentados, embeddings | Entradas vetoriais armazenadas |
| OpenAI Embeddings | Gera embeddings para os blocos de eventos. | Dados fragmentados | Vetores de embeddings |
| Cargar de DB (Chroma) | Recupera blocos relevantes da base vetorial usando uma consulta de busca. | Consulta de busca, embeddings | Blocos de eventos recuperados |
| Obtener Texto (ParseData) | Converte os blocos recuperados em texto simples para o prompt. | Blocos recuperados | Descrição dos eventos em texto simples |
| OpenAI Model (OpenAI) | Fornece o LLM usado pelo agente. | Nome do modelo, system prompt | Instância do LLM |
| Langgraph React Agent | Orquestra a conversa, chama o LLM e ferramentas, e produz a resposta no chat. | Prompt, LLM, ferramentas | Resposta no chat |
| Registrar en Agenda de Citas (GSheetCellComponent) | Adiciona uma nova linha na planilha com detalhes do evento (nome, data, status). | Resposta do chat, dados do evento | Atualização da planilha |
| Chat Output | Exibe a resposta do agente ao usuário. | Resposta do chat | Mensagem exibida |
Os componentes são executados na ordem mostrada acima, com o fluxo de dados seguindo da esquerda para a direita conforme as conexões.
🧠 Notas
- O componente Google Calendar requer credenciais OAuth 2.0 válidas configuradas para o provedor
googleCalendar. - O componente Google Sheet espera que a planilha contenha uma linha de cabeçalho com as colunas “Info de la cita”, “Fecha” e “Estado”.
- A base vetorial Chroma está configurada com o nome da coleção
nappaie é persistida no diretóriocalendar_assistant. - A geração de embeddings usa o modelo
text-embedding-3-smallpor padrão; isso pode ser ajustado para vetores de maior dimensão, se necessário. - O template de prompt limita respostas apenas aos campos necessários, solicitando esclarecimentos ao LLM caso a entrada seja ambígua.
- O fluxo assume que as entradas de “momento” e “tema” do usuário são coerentes com os dados do calendário, evitando resultados vazios.
- A depuração pode ser feita ativando o modo verboso no agente Langgraph (
Verbose = true). - Todos os componentes respeitam o parâmetro Mapping Mode; o processamento em lote é suportado quando ativado, embora o layout atual utilize o modo de registro único.
Esta documentação oferece uma visão funcional e concisa do fluxo de trabalho do assistente de IA, mantendo os detalhes técnicos abstraídos.