Contar tokens e estimar custos ao chamar LLM em Java
Como contar tokens localmente com JTokkit, calcular custos com BigDecimal, bloquear requisições que excedem orçamento e comparar com uso real do Spring AI.
Um tema por artigo, explicado passo a passo com código que roda — de Java e Spring Boot a IA, design de sistemas e DevOps.
Como contar tokens localmente com JTokkit, calcular custos com BigDecimal, bloquear requisições que excedem orçamento e comparar com uso real do Spring AI.
Diferenciar object declaration, object expression e companion object em Kotlin, como criam singletons, chamadas a partir de Java e erros comuns.
Use template literal types para gerar nomes de chave, analisar parâmetros de rota e escrever event emitter type-safe, com teste de tipos no Vitest e armadilhas a evitar.
Utilize thiserror para definir tipos de erro claros em sua biblioteca, anyhow para agrupar erros e adicionar contexto na aplicação, e combine os dois.
Como compartilhar dados entre threads com Arc<Mutex<T>>, transmitir mensagens com canal mpsc e evitar deadlock, poisoning e outros erros comuns.
Configure Maven para Kotlin e Java se chamarem mutuamente, trate nullability, @JvmStatic, @JvmOverloads e erros comuns do Spring Boot.
Receba cada token da LLM API via Server-Sent Events usando HttpClient e WebClient, depois envie para o navegador, com tratamento de erros, timeout e testes.
A flag strict em tsconfig ativa quais verificações, o que cada uma detecta, quais flags adicionais você deve ativar, e como migrar um projeto antigo para strict.
Crie uma REST API CRUD com Axum 0.8, incluindo roteamento, extractors, estado compartilhado, tratamento de erros com IntoResponse e testes de handlers sem abrir portas de rede.
Entenda como LLMs chamam funções da sua aplicação, de JSON puro a @Tool no Spring AI. O artigo tem exemplos de consulta, cancelamento de pedido e testes sem chamar o modelo de verdade.
Use keyof, typeof e tipos com acesso indexado para inferir tipos de dados já existentes, reduzir duplicação de código e deixar que o compilador capture erros de chaves inválidas para você.
Use by lazy para inicialização preguiçosa segura com threads, use Delegates.observable e vetoable para monitorar ou bloquear mudanças de propriedades.
Como configurar tsconfig e package.json para que sua biblioteca TypeScript gere arquivos .d.ts corretos, com tipos completos para usuários e testes com Vitest.
Como declarar function types, passar e retornar lambdas, usar function references, closures, lambda with receiver e inline em Kotlin.
Quando usar Box, Rc ou Arc em Rust: alocação de heap, compartilhamento de propriedade em uma thread e entre múltiplas threads, junto com Weak, RefCell e Mutex.
Como forçar LLM a retornar JSON que combine com schema no Spring Boot: mapear para record usando Spring AI, ativar JSON Schema nativo, validar, retry e escrever testes.
Guia de programação assíncrona em Rust com Tokio, incluindo async/await, spawn task, join!, select!, timeout, channel, spawn_blocking e como testar código async.
Configure um projeto Spring Boot 3 com Kotlin, escrever REST API, entity JPA, configuração e testes, com erros comuns ao migrar do Java.
Técnicas de prompt engineering práticas como system prompt, delimiter, few-shot, structured output e temperature, ilustradas com Spring AI.
Como declarar tipos para funções async, usar Promise<T>, Awaited, Promise.all, tratamento seguro de erros e evitar armadilhas com callbacks async.