Set up Python and the Anthropic SDK, then make your first real, runnable call to Claude — the opening move of the support-triage assistant we build across this path.
Você passou cinco módulos aprendendo o que são sistemas de IA e por que importam. Agora quero colocar um modelo conversando com você na sua própria máquina — porque tudo o que aprendi sobre construir esses sistemas, eu aprendi rodando algo pequeno e observando o que ele de fato fazia.
Quando construí meu primeiro Painel de Suporte interno, o momento decisivo não foi o diagrama de arquitetura. Foi a primeira vez que enviei uma mensagem real de cliente a um modelo e li o que voltou. Esse único ciclo de ida e volta — mensagem entra, resposta sai — é o átomo do qual todo sistema de IA é construído. Faça isso funcionar e o resto é composição.
Pense neste módulo como aprender a dar partida em um carro antes de aprender a dirigir. Ainda não vamos a lugar nenhum. Estamos apenas girando a chave, ouvindo o motor e confirmando que as luzes do painel acendem. Uma vez que você confie que o motor funciona, a viagem dos próximos quatro módulos fica bem menos assustadora.
Ideia-chave: um sistema de IA funcional começa com uma chamada confiável a um modelo. Domine primeiro o ciclo único de ida e volta; todo o resto é construído sobre ele.
Ao final deste módulo você terá um projeto limpo, o SDK da Anthropic instalado e um script que você pode rodar que envia uma mensagem real de cliente ao Claude e imprime uma resposta de triagem.
Ao longo do resto desta trilha construímos uma coisa, e a construímos de verdade: um assistente de triagem de suporte. É a versão de-identificada e destilada do primeiro sistema que entreguei do qual usuários reais dependeram.
Aqui está o trabalho que ele faz. Uma mensagem de cliente chega — algo como "minha exportação fica falhando" — e o assistente:
É isso. Nenhum café de desenho animado, nenhuma padaria imaginária. Um assistente realista que faz um trabalho de que uma equipe de suporte realmente precisa, levado deste módulo até o projeto final.
Neste módulo construímos a menor fatia possível dele: um único script que entrega uma mensagem de cliente ao Claude e imprime a resposta. Os módulos 07 a 09 fazem essa fatia crescer até o assistente completo.
Por que um único exemplo recorrente: carregar o mesmo assistente por todos os módulos significa que cada novo conceito se conecta a algo que você já entende, em vez de começar do zero com um novo problema de brinquedo a cada vez.
Antes de escrevermos qualquer código, vamos garantir que a bancada esteja montada. Nada disso é exótico — é o mesmo conjunto de ferramentas que uso em todo projeto.
python3 --version.Trate sua chave de API como uma senha. Ela pode gastar dinheiro de verdade e nunca deve ser colada em código que você versiona, compartilhada em uma captura de tela ou postada em um chat. Vamos carregá-la do seu ambiente, não fixá-la no código — mais sobre isso abaixo.
Primeiro, uma pasta dedicada e um ambiente virtual. Um ambiente virtual é uma caixa de areia: os pacotes que você instala para este projeto ficam fora do caminho de todo outro projeto, então nada colide e nada quebra mais tarde.
No Windows a linha de ativação é .venv\Scripts\activate. Uma vez ativo, o prompt do seu terminal mostra (.venv) — é assim que você sabe que os pacotes vão para a caixa de areia e não para o Python do sistema.
Por que se incomodar com isso? Porque a primeira vez que pulei essa etapa, atualizei uma biblioteca para um projeto e silenciosamente quebrei outro. A caixa de areia é um seguro barato, e configurações profissionais sempre usam uma.
Antes de instalar qualquer coisa, olhe seu terminal. O prompt começa com (.venv)? Se não, o ambiente não está ativo e seus pacotes vão instalar no lugar errado. Ativá-lo é a etapa que iniciantes mais pulam — e o motivo mais comum de "mas eu instalei!" virar um erro de importação depois.
Com o ambiente ativo, instale o SDK oficial da Anthropic. Esta é a biblioteca que transforma uma chamada de função Python em uma requisição ao Claude e lhe devolve a resposta.
O pip é o instalador de pacotes do Python — pense nele como a loja de aplicativos das bibliotecas Python. Esse único comando baixa o pacote anthropic e tudo de que ele depende para dentro do seu ambiente virtual.
Agora conecte sua chave de API. O SDK procura por uma variável de ambiente chamada ANTHROPIC_API_KEY, então a definimos no shell em vez de escrevê-la no nosso código:
Armadilha comum: definir a chave com export só dura na sessão de terminal atual. Abra uma nova janela e ela some. Para o trabalho do dia a dia, coloque a linha no perfil do seu shell (~/.zshrc ou ~/.bashrc) ou use um arquivo .env que você mantém fora do controle de versão — nunca versione a chave em si.
Este é o momento para o qual o módulo vinha construindo. Crie um arquivo chamado triage.py e digite o seguinte. É o menor trecho de código que faz algo real: ele envia uma mensagem de cliente ao Claude e imprime a resposta.
Rode com python triage.py. Após um instante, a resposta do Claude é impressa no seu terminal. Vamos ler o que cada parte está fazendo, porque vamos reutilizar exatamente esse formato pelo resto da trilha:
Anthropic() cria o cliente. Sem argumentos, ele lê sua chave do ambiente — que é por isso que definimos ANTHROPIC_API_KEY e não a colamos aqui.model="claude-haiku-4-5" escolhe o modelo. O Haiku é o membro rápido e de baixo custo da família — a escolha certa para as primeiras chamadas de um aprendiz e para triagem de alto volume onde a velocidade importa.max_tokens=1024 limita o tamanho da resposta, para que uma resposta descontrolada não o surpreenda com uma conta gigante.messages=[...] é a conversa — aqui, uma mensagem do "user" (você, no lugar do cliente).Você acabou de construir o átomo. Todo sistema de IA nesta trilha — o servidor MCP, o agente, o assistente completo — é essa mesma chamada messages.create envolvida em mais estrutura. Se isto roda, você tem tudo de que precisa para seguir.
Note que imprimimos response.content[0].text, não response. O SDK não lhe entrega uma string simples — ele retorna um objeto estruturado, e as palavras do modelo vivem dentro dele. Alcançar .content[0].text é como você obtém a resposta de fato.
Agora vamos fazer a chamada realizar trabalho de triagem real. A primeira versão apenas pediu ao Claude para "triar". Podemos ser muito mais úteis dando ao modelo um prompt de sistema — instruções permanentes que moldam cada resposta. Esta é a semente do nosso assistente:
A única peça nova é system=instructions. A mensagem do usuário ainda é a reclamação bruta do cliente, mas agora o modelo conhece seu trabalho e responde em um formato consistente e roteável. Essa é a diferença entre um chatbot e o começo de um sistema.
Rode o segundo script algumas vezes com mensagens de clientes diferentes. Depois pergunte a si mesmo: o que acontece quando uma mensagem é genuinamente ambígua — digamos, uma reclamação de uma palavra como "quebrado"? O assistente deveria adivinhar uma categoria ou escalar para um humano? Não há uma única resposta certa, e como você decidiria é exatamente o tipo de julgamento que separa uma demonstração de um sistema em que as pessoas podem confiar. Guarde essa pergunta; voltaremos a ela quando adicionarmos escalonamento no módulo 09.
Giramos a chave e o motor funciona. No próximo módulo damos a este assistente um lugar para viver e ferramentas para usar, construindo seu primeiro servidor MCP.
Check what you learned about setting up and making your first real call.
1. Why do we create a virtual environment before installing the Anthropic SDK?
Correct Answer: B
A virtual environment is a per-project sandbox. Installing packages inside it keeps this project's dependencies from clashing with — or breaking — other projects on your machine.
2. In client = Anthropic() with no arguments, where does the SDK get your API key?
Correct Answer: C
With no key passed in, the client reads ANTHROPIC_API_KEY from the environment. That's why we export it in the shell instead of hard-coding it in the script.
3. What does response.content[0].text hold after a successful call?
Correct Answer: A
The SDK returns a structured response object, not a bare string. The model's actual words live at response.content[0].text.
4. Why is claude-haiku-4-5 a sensible model choice for a learner's first calls and for triage?
Correct Answer: B
Haiku is optimized for speed and cost. That makes it a good fit for experimenting cheaply and for triage, where many messages need fast handling.
5. What is the purpose of max_tokens=1024 in the call?
Correct Answer: B
max_tokens limits the length of the generated reply, which also keeps a runaway response from producing a surprisingly large bill.
6. Adding system=instructions to the call changes the assistant how?
Correct Answer: B
The system prompt is standing guidance applied to every turn. Here it tells the model to answer, categorize, and flag escalation — turning a generic reply into the start of a real triage system.