Pular para o conteúdo

Motor de IA: Mais que Traducao

Por que o DevLingo nao usa simplesmente uma API de dicionario? Consultas simples de API retornam informacoes estaticas, sem contexto. O motor de IA do DevLingo faz tres coisas que dicionarios nao conseguem.

O dicionario diz que “deploy” e “implantar”. Mas desenvolvedores precisam saber:

CenarioSignificadoExemplo
Implantar aplicativoPublicar em producao”We deployed the new version to production.”
Provisionar recursosAlocar/ativar recursos”Deploy additional servers to handle traffic.”
Tatico (linguagem militar)Desdobrar, posicionar”The team is deployed across different time zones.”

A IA do DevLingo sabe que voce esta lendo codigo no Xcode, entao enfatiza o primeiro significado. Se voce ve “deploy” em um software de RH, talvez o terceiro significado seja mais relevante.

{ "sourceApp": "com.apple.dt.Xcode" }
→ IA ajusta estilo da resposta: orientado a tecnologia, exemplos de codigo priorizados
{ "sourceApp": "com.tinyspeck.slackmacgap" }
→ IA ajusta estilo da resposta: comunicacao em equipe, mais coloquial

:::tip Percepcao de Aplicativo O DevLingo obtem o Bundle Identifier do aplicativo ativo atual via NSWorkspace e o envia ao Claude. A IA ajusta a resposta com base nisso. :::

Um dicionario retorna um bloco de texto. A IA do DevLingo retorna JSON estruturado:

{
"word": "idempotent",
"ipa": "/ɪˈdɛmpətənt/",
"pos": "adjective",
"definition_en": "Describing an operation that, when applied multiple times, produces the same result as when applied once.",
"meaning_pt": "Idempotente; aplicar multiplas vezes produz o mesmo resultado que aplicar uma vez",
"examples": [
{
"en": "Ensure your API endpoints are idempotent to handle retry requests safely.",
"pt": "Garanta que seus endpoints de API sejam idempotentes para lidar com requisicoes de retry com seguranca.",
"context": "API design"
},
{
"en": "This function's idempotent nature makes it safe to call multiple times.",
"pt": "A natureza idempotente desta funcao torna seguro chama-la multiplas vezes.",
"context": "Function design"
}
],
"synonyms": [
{
"word": "repeatable",
"difference": "Mais generico; refere-se a qualquer operacao que pode ser repetida. 'idempotent' e mais tecnico e preciso."
}
],
"collocations": [
"idempotent operation",
"idempotent function",
"idempotent API"
],
"grammar_notes": "Adjetivo, nao contavel. Em documentacao tecnica, frequentemente usado como modificador ou predicado.",
"l1_tips": {
"pt": "Em portugues nao existe um equivalente coloquial direto. Lembre-se que 'idempotent' e um termo matematico/de programacao, correspondendo a 'idempotente', mas em discussoes tecnicas usar o termo em ingles e mais comum."
},
"tech_pronunciation": {
"ipa": "/ɪˈdɛmpətənt/",
"common_mispronounce": "i-DEM-po-tent (errado; a tonicidade deve estar em DEM)",
"correct_stress": "i-**DEM**-pu-tunt",
"etymology": "Originado de termo matematico, do latim 'idem' (o mesmo) e 'potent' (poderoso)"
}
}

Cada campo corresponde a uma area diferente do cartao na interface. Nao e um bloco de texto, mas material de aprendizado cuidadosamente organizado.

{
"phrase": "rubber ducking",
"type": "compound (noun phrase)",
"register": "informal / tech culture",
"definition_en": "A debugging method where you explain your code to a rubber duck (or any object), often revealing bugs through the act of articulation.",
"meaning_pt": "Metodo de depuracao onde voce explica seu codigo para um patinho de borracha (ou qualquer objeto), frequentemente revelando bugs atraves do ato de articular o problema.",
"stress_pattern": "RUB-ber DUCK-ing",
"usage_patterns": [
{
"pattern": "[Subject] [is/uses] rubber ducking",
"example": "I've been rubber ducking this problem for 10 minutes and just found the issue.",
"pt": "Estive fazendo rubber ducking neste problema por 10 minutos e acabei de encontrar o erro."
},
{
"pattern": "[Let's] do some rubber ducking [on X]",
"example": "Let's do some rubber ducking on this algorithm.",
"pt": "Vamos fazer rubber ducking neste algoritmo."
}
],
"alternatives": [
{
"phrase": "debugging by explanation",
"note": "Mais formal; nao tem o apelo cultural de 'rubber ducking'"
},
{
"phrase": "talk it out",
"note": "Mais coloquial; nao se refere especificamente a depuracao"
}
]
}

Se a entrada e um termo de desenvolvimento, a IA fornece informacoes extras:

Palavra: latency
Saida padrao: definicao, exemplos, pronuncia...
Saida extra (apenas para termos tecnicos):
- Metricas relacionadas: milissegundos (ms) / microssegundos (μs)
- Conceitos correspondentes: throughput, bandwidth
- Cenario pratico: "P99 latency < 100ms" o que significa
- Benchmarks do setor: latencia de rede normal ~50ms, ruim e 500ms+

Nao e “o gato sentou no tapete”, mas sim:

Palavra: concurrent
Exemplos (de desenvolvimento real):
1. "This function is not concurrent-safe; you need to add locking."
→ Cenario de revisao de codigo
2. "We redesigned the system to handle concurrent requests efficiently."
→ Cenario de design de arquitetura
3. "Make sure your HTTP client supports concurrent connections."
→ Cenario de otimizacao de desempenho

Com base na lingua materna do usuario, a IA aponta proativamente armadilhas comuns:

Usuario: falante nativo de portugues
Palavra: article / the / a
Dica da IA:
"Falantes de portugues podem ter dificuldade com o uso dos artigos em ingles,
especialmente quando nao ha artigo em portugues ou quando o uso difere.
Erro: 'I saw the cat yesterday' (quando deveria ser 'a cat' se nao e um gato especifico)
Dica: Em ingles, a escolha entre 'the' (definido) e 'a/an' (indefinido) depende
de o referente ser conhecido pelo ouvinte."

:::note Interferencia L1 Este e o diferencial do DevLingo. Dicionarios padrao nao dizem “a razao pela qual voce pode errar esta palavra e o background da sua lingua materna”. :::

Razoes pelas quais o DevLingo escolheu o Claude:

  1. Forte capacidade de saida estruturada: Claude se destaca em gerar JSON formatado, com alta confiabilidade
  2. Compreensao profunda de contexto: Claude entende contexto de aplicativo, contexto de codigo, interferencia L1
  3. Amigavel para desenvolvedores: A compreensao do Claude sobre termos tecnicos, codigo e fluxos de desenvolvimento supera LLMs genericos
  4. Controlabilidade: Atraves de engenharia de prompt, o DevLingo controla precisamente o formato e a qualidade da saida

A chamada do Claude pelo DevLingo inclui um template de prompt cuidadosamente projetado:

You are an English learning assistant for developers.
The user selected: "{selectedText}"
Mode: {mode}
User's native language: {userLanguage}
Current application: {sourceApp}
Surrounding context: "{context}"
Respond with JSON in the following structure:
{
"mode": "word|phrase|sentence|paragraph|express",
... [detailed schema]
}
Important:
1. Examples must be from software development context
2. Provide 2-3 examples per item
3. For native speakers of {userLanguage}, highlight common interference patterns
4. If applicable, note pronunciation and stress patterns
5. Keep definitions concise (< 20 words)

Este prompt garante:

  • Formato de saida consistente
  • Exemplos do contexto de desenvolvimento
  • Interferencia L1 e priorizada
  • Resultados direcionados para o aprendizado
FuncionalidadeAPI de DicionarioIA do DevLingo
Definicao basicaSimSim
Multiplos exemplosSim (geralmente sem direcionamento)Sim (todos em cenarios tecnicos)
Percepcao de contextoNaoSim (sabe qual aplicativo voce esta usando)
Dicas de interferencia L1NaoSim
Saida estruturadaNao (apenas texto)Sim (JSON, amigavel para UI)
Bonus para termos tecnicosNaoSim (etimologia, benchmarks do setor etc.)
Distincao de sinonimosNao (apenas lista sinonimos)Sim (explica diferencas)
Pronuncia e IPASim (parcial)Sim (completo + 4 sotaques)

:::note Por que nao usar IA para tudo O sistema de consulta em camadas do DevLingo garante:

  • Vocabulario comum (acerto no banco local): 0ms de IA, 100% rapido
  • Acerto de cache (usuario ja consultou): 0ms de IA, 100% rapido
  • Vocabulario raro (chamada de IA): <2s para completar, ainda rapido

Assim, 95% das consultas do usuario nao precisam de chamada de API, reduzindo custo e melhorando a experiencia. :::

O motor de IA do DevLingo nao e para “traduzir”, mas para “compreender e ensinar”. Ele sabe o que voce esta fazendo, conhece seu background linguistico e sabe como ensinar da forma mais eficaz.