UNPKG

dengun_ai-admin-client

Version:

Cliente simples para integração com o AI Admin Dashboard - Plug and Play

245 lines (190 loc) 6.06 kB
# AI Admin Client v2.0 - Plug and Play Cliente simples e genérico para integração com o AI Admin Dashboard. Focado em 4 objetivos principais: 1. **🔗 Conexão**: Garantir conexão entre apps AI Admin Dashboard e aplicações externas 2. **👥 Múltiplos usuários**: Permitir que usuários do dashboard usem o bot simultaneamente 3. **📊 Telemetria**: Enviar dados sobre consumo do bot automaticamente 4. **🐛 Relatórios**: Reportar erros, bugs e falhas automaticamente ## 🚀 Instalação e Uso (3 comandos) ```bash # 1. Instalar o pacote npm install dengun_ai-admin-client # 2. Inicializar configuração npx ai-admin-init # 3. Configurar e usar cd ai-admin-config && cp .env.example .env # Editar .env com suas configurações npm install && npm start ``` ## 📋 Uso Básico ```typescript import { AiAdminClient } from 'dengun_ai-admin-client'; // Configuração mínima - apenas 3 parâmetros const client = new AiAdminClient({ dashboardUrl: 'http://localhost:3000', botId: 'seu-bot-id', botSecret: 'seu-bot-secret' }); async function exemplo() { // 1. Conectar ao dashboard await client.initialize(); // 2. Criar sessão para usuário const session = await client.createUserSession('user123', 'tenant456'); // 3. Reportar uso (automático) await client.reportUsage({ sessionId: session.sessionId, userId: 'user123', tenantId: 'tenant456', action: 'chat_message', tokensUsed: 150 }); // 4. Reportar erro se necessário (automático) await client.reportError({ error: 'Algo deu errado', errorCode: 'CUSTOM_ERROR' }); // Encerrar await client.endUserSession(session.sessionId); await client.shutdown(); } ``` ## ⚙️ Configuração Avançada ```typescript const client = new AiAdminClient({ dashboardUrl: 'http://localhost:3000', botId: 'meu-bot', botSecret: 'meu-secret', options: { autoReportUsage: true, // Relatório automático de uso autoReportErrors: true, // Relatório automático de erros reportInterval: 30000, // Intervalo de relatórios (30s) timeout: 10000, // Timeout de conexão (10s) debug: false // Logs de debug } }); ``` ## 🎯 4 Objetivos Principais ### 1. Conexão entre Apps - Autenticação automática com o dashboard - Reconexão automática em caso de falha - Ping periódico para manter conexão ativa - Gerenciamento de tokens transparente ### 2. Múltiplos Usuários Simultâneos - Sistema de sessões por usuário - Validação automática de permissões - Suporte a vários tenants - Isolamento de dados por usuário ### 3. Telemetria Automática - Relatório automático de uso de tokens - Estatísticas de sessões ativas - Métricas de performance - Dados enviados em lotes otimizados ### 4. Relatório de Erros - Captura automática de erros não tratados - Relatórios detalhados com stack traces - Categorização de erros por gravidade - Contexto automático das sessões ## 📊 API Reference ### AiAdminClient #### Métodos Principais - `initialize()` - Conecta ao dashboard - `createUserSession(userId, tenantId)` - Cria sessão de usuário - `reportUsage(usage)` - Reporta uso do bot - `reportError(error)` - Reporta erro - `endUserSession(sessionId)` - Encerra sessão - `shutdown()` - Desconecta e limpa recursos #### Métodos de Monitoramento - `getConnectionStatus()` - Status da conexão - `getActiveSessions()` - Sessões ativas - `getUsageStats()` - Estatísticas de uso #### Eventos ```typescript client.on('connected', () => console.log('Conectado')); client.on('disconnected', () => console.log('Desconectado')); client.on('sessionCreated', (session) => console.log('Sessão criada')); client.on('usageReported', (usage) => console.log('Uso reportado')); client.on('errorReported', (error) => console.log('Erro reportado')); ``` ## 🔧 Variáveis de Ambiente ```env # Obrigatórias DASHBOARD_URL=http://localhost:3000 BOT_ID=seu-bot-id BOT_SECRET=seu-bot-secret # Opcionais (com valores padrão) AUTO_REPORT_USAGE=true AUTO_REPORT_ERRORS=true REPORT_INTERVAL=30000 DEBUG=false ``` ## 🏗️ Integração em Projeto Existente ### Express.js ```typescript import express from 'express'; import { AiAdminClient } from 'dengun_ai-admin-client'; const app = express(); const aiClient = new AiAdminClient({ /* config */ }); app.post('/chat', async (req, res) => { const { userId, tenantId, message } = req.body; // Criar sessão const session = await aiClient.createUserSession(userId, tenantId); // Processar chat... const response = processChat(message); // Reportar uso await aiClient.reportUsage({ sessionId: session.sessionId, userId, tenantId, action: 'chat', tokensUsed: response.tokensUsed }); res.json(response); }); ``` ### Next.js ```typescript // pages/api/chat.ts import { AiAdminClient } from 'dengun_ai-admin-client'; const client = new AiAdminClient({ /* config */ }); export default async function handler(req, res) { const session = await client.createUserSession( req.body.userId, req.body.tenantId ); // Processar... await client.reportUsage({ /* dados */ }); res.json({ success: true }); } ``` ## 🔍 Monitoramento e Debug ### Logs de Debug ```typescript const client = new AiAdminClient({ // ... options: { debug: true } }); ``` ### Métricas Customizadas ```typescript // Reportar evento customizado await client.reportError({ error: 'Rate limit exceeded', errorCode: 'RATE_LIMIT', context: { limit: 100, current: 150, resetTime: Date.now() + 3600000 } }); ``` ## 🤝 Contribuição 1. Fork o projeto 2. Crie uma branch para sua feature 3. Commit suas mudanças 4. Push para a branch 5. Abra um Pull Request ## 📄 Licença MIT - Consulte o arquivo LICENSE para detalhes. ## 📞 Suporte - **Issues**: [GitHub Issues](https://github.com/dengun/ai-admin-dashboard/issues) - **Documentação**: [GitHub Wiki](https://github.com/dengun/ai-admin-dashboard/wiki) - **Email**: support@dengun.com