Usando API da Anthropic
Seguindo a documentação da Anthropic de comece a usar vamos criar um simples código só para usar a API. Isso é a base para um futuro agente que podemos criar.
Vamos fazer isso em nodejs. Se não tem o node instale no seu sistema então o comando node --version irá mostrar a versão instalada.
❯ node --version
v22.16.0
Crie uma pasta qualquer e dentro dela execute o comando abaixo. Isso irá instalar as bibliotecas para serem usadas nesta pasta. Elas ficarão dentro da pasta node_modules.
❯ npm install @anthropic-ai/sdk
Conferindo.
❯ tree -L 1
.
├── node_modules
├── package-lock.json
├── package.json
Agora precisa de um arquivo main que chame esta biblioteca. Crie um arquivo main.js com o seguinte conteúdo.
import Anthropic from "@anthropic-ai/sdk"; // Importando a biblioca
// inicializando a biblioteca
const anthropic = new Anthropic();
// Na verdade essa função nada mais faz do que montar a requisição post que será a chamada para a api.
// Por padrão essa lib busca a variável de ambiente ANTHROPIC_API_KEY que deve estar disponível no seu terminal.
const msg = await anthropic.messages.create({
model: "claude-opus-4-20250514",
max_tokens: 1000,
temperature: 1,
// Aqui declaramos o system promp
system: "Responda de forma objetiva e com frases curtas",
messages: [
{
role: "user",
content: [
{
type: "text",
//Aqui declamos o texto do usuário.
text: "Por que o oceano é salgado?"
}
]
}
]
});
console.log(msg);
❯ tree -L 1
.
├── main.js
├── node_modules
├── package-lock.json
├── package.json
Exporte a variável de ambiente com a ANTHROPIC_API_KEY e rode o main.js.
Para que você possa fazer as chamadas vai precisar de comprar uns créditos lá na Anthropic e gerar uma APIKEY.
export ANTHROPIC_API_KEY=xxxxxxxxxx
❯ node main.js
## NOSSA RESPOSTA.
{
id: 'msg_01SHqZPvKhbhLHzqqAbH2kJw',
type: 'message',
role: 'assistant',
model: 'claude-opus-4-20250514',
content: [
{
type: 'text',
text: 'O oceano é salgado porque:\n' +
'\n' +
'1. **Rios levam sais**: A água da chuva dissolve minerais das rochas e os rios carregam esses sais até o mar\n' +
'\n' +
'2. **Evaporação concentra o sal**: A água evapora, mas o sal permanece no oceano, aumentando sua concentração ao longo de milhões de anos\n' +
'\n' +
'3. **Atividade vulcânica**: Vulcões submarinos liberam minerais e sais diretamente na água\n' +
'\n' +
'4. **Tempo geológico**: Esse processo acontece há bilhões de anos, acumulando cada vez mais sal\n' +
'\n' +
'O principal sal é o cloreto de sódio (sal de cozinha), mas há outros minerais dissolvidos também.'
}
],
stop_reason: 'end_turn',
stop_sequence: null,
usage: {
input_tokens: 30,
cache_creation_input_tokens: 0,
cache_read_input_tokens: 0,
output_tokens: 182,
service_tier: 'standard'
}
}
Observe como o texto de resposta veio formatado em markdown dentro de uma string e o uso de tokens de input 30 e output 182.
Se esse texto fosse exposto em markdown seria isso.
O oceano é salgado porque:
- Rios levam sais: A água da chuva dissolve minerais das rochas e os rios carregam esses sais até o mar
- Evaporação concentra o sal: A água evapora, mas o sal permanece no oceano, aumentando sua concentração ao longo de milhões de anos
- Atividade vulcânica: Vulcões submarinos liberam minerais e sais diretamente na água
- Tempo geológico: Esse processo acontece há bilhões de anos, acumulando cada vez mais sal O principal sal é o cloreto de sódio (sal de cozinha), mas há outros minerais dissolvidos também. .
A mesma requisição que estamos montando aqui pode ser feito pelo console direto no site da Anthropic em https://console.anthropic.com clicando em Create Prompt
Podemos fazer uma previsão com o contaddor de token antes de enviar a requisição para processamento. Na verdade é uma estimativa, mas podem existir diferenças muito pequenas. Vamos colocar em novo arquivo counttoken.js.
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
const response = await client.messages.countTokens({
model: 'claude-opus-4-20250514',
system: "Responda de forma objetiva e com frases curtas",
messages: [
{
role: "user",
content: [
{
type: "text",
//Aqui declamos o texto do usuário.
text: "Por que o oceano é salgado?"
}
]
}
]
});
console.log(response);
Executando temos o mesmo valor esperado o que tinhamos antes.
❯ node counttoken.js
{ input_tokens: 30 }