Pular para o conteúdo principal

Primeiros passos com o Claude 2 e a API do Claude 2

O SDK em Python oferece acesso prático ao poderoso assistente de IA conversacional Claude 2 da Anthropic, permitindo que desenvolvedores integrem com facilidade seus recursos avançados de linguagem natural a uma ampla variedade de aplicações.
· 12 min leer

Explore com IA

Se você quer integrar ao seu aplicativo um modelo de linguagem com som mais natural e alta precisão, o Claude 2, da Anthropic, é uma excelente escolha. Ele vem com um app de chat público (semelhante ao ChatGPT), API e playground para várias versões dos modelos.

Entenda as diferenças entre as respostas do Claude e do ChatGPT no post Claude vs. ChatGPT: qual assistente de IA é melhor para cientistas de dados em 2023?

Neste tutorial, vamos conhecer os modelos Claude 2X e como acessá-los usando a API em Python. Vamos cobrir a configuração da API, como fazer consultas básicas e tratar respostas. Também veremos streaming de respostas, requisições assíncronas e alguns recursos mais avançados da API. Todo o código-fonte deste tutorial está disponível nesta planilha do DataLab; você pode criar uma cópia para editar e executar o código facilmente, direto no navegador, sem instalar nada no seu computador.

Ao final, você terá uma boa compreensão de como integrar o Claude 2 ao seu próprio aplicativo para aproveitar suas capacidades avançadas de linguagem natural.

Para quem está começando em IA generativa, nossa trilha de habilidades AI Fundamentals ajuda você a aprender novas tecnologias e modelos para se preparar para o mundo da IA de amanhã.

Fundamentos do Claude 2

A Anthropic lançou recentemente o Claude 2, a versão mais recente do seu grande modelo de linguagem. Ele apresentou melhorias de desempenho em várias tarefas, com respostas mais longas e coesas. Além disso, conta com acesso via API e um site público em beta, disponível em claude.ai.

Imagem de claude.ai

O Claude 2 é conhecido por conversas naturais, com capacidades de raciocínio aprimoradas, memória expandida e rastreamento de contexto, reduzindo saídas potencialmente nocivas. Ele mostrou avanços em habilidades como programação, raciocínio matemático e lógica.

Por exemplo, em raciocínio jurídico, o Claude 2 marcou 76,5% na seção de múltipla escolha do exame da OAB americana (Bar exam), 3,5% acima do Claude 1.3. Em testes de aptidão acadêmica, o Claude 2 fica acima do 90º percentil nas seções de leitura e escrita do GRE, e no nível de candidatos medianos em raciocínio quantitativo.

Apresentando o Claude 2.1

Em 21 de novembro de 2023, a Anthropic lançou o Claude 2.1, com melhorias notáveis que permitem um raciocínio mais avançado e reduzem conteúdos alucinatórios. Um foco importante foi aprimorar a confiabilidade por meio de maior transparência: o Claude 2.1 agora é mais honesto sobre lacunas no seu conhecimento, em vez de tentar inventar informações.

Ele traz uma janela de contexto ampliada para 200K, permitindo que o Claude consulte e faça verificações cruzadas em conteúdos extensos, como artigos científicos, para manter a consistência factual em resumos ou análises longas.

O Claude 2.1 também introduziu, de forma experimental, o uso de ferramentas. Isso permite que o Claude 2 recupere e processe dados de fontes adicionais com alta precisão, invocando funções e executando ações.

Configurando o Claude 2

O acesso à API da Anthropic está, no momento, restrito a um grupo selecionado de pessoas e organizações. Se você quer estar entre os primeiros a testar, preencha o formulário de inscrição disponível no site. A Anthropic está liberando o acesso gradualmente para garantir segurança e escalabilidade da API. Atenção: devido ao grande volume de solicitações, pode levar algum tempo para sua conta ser aprovada.

Depois de receber o e-mail de aprovação da Anthropic e criar sua conta, você será redirecionado ao dashboard. Nele, há um link para o workbench, semelhante ao OpenAI Playground, onde você pode alternar entre modelos e analisar as respostas. Além disso, há links para gerar chaves de API e acessar a documentação.

Imagem do dashboard

Para criar uma chave de API, clique no botão "Get API Keys" e informe o nome da chave. Feito isso, você receberá uma chave para gerar respostas usando a API do Claude 2.

Imagem da Anthropic

Para definir a chave de API como uma variável de ambiente, você pode usar um comando Bash ou configurá-la em uma planilha do DataLab. Primeiro, crie uma nova planilha e depois clique no botão "Environment" no painel esquerdo. Clique no botão de mais e adicione o nome e o valor da variável. Por fim, salve para aplicar as alterações.

Imagem do DataLab

Observação: você pode aplicar a chave de API diretamente na função em Python, mas isso é altamente desaconselhado por motivos de segurança.

Para acessar a API da Anthropic em Python, primeiro instale o SDK da Anthropic para Python usando PIP.

pip install anthropic

Acessando a API do Claude 2

Nesta parte, vamos aprender a acessar a API da Anthropic para gerar respostas usando o modelo Claude 2.1. Você pode acompanhar criando uma cópia desta planilha: Primeiros passos com o Claude 2 e a API do Claude 2.

Vamos carregar o módulo os para acessar a chave da API e a biblioteca anthropic para criar o pipeline de IA conversacional com a chave.

from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPTimport osanthropic_api_key = os.environ["ANTHROPIC_API_KEY"]anthropic = Anthropic(    api_key= anthropic_api_key,)

Os termos "HUMAN_PROMPT" e "AI_PROMPT" são strings usadas para criar a estrutura correta do prompt no pipeline de geração.

Agora vamos gerar a resposta informando a versão do modelo, o número máximo de tokens e o prompt. Certifique-se de que seu prompt segue o template do Claude 2X.

completion = anthropic.completions.create(    model="claude-2.1",    max_tokens_to_sample=350,    prompt=f"{HUMAN_PROMPT} How do I learn Python in a week?{AI_PROMPT}",)print(completion.completion)

Obtivemos um ótimo resultado. O Claude 2.1 forneceu um plano detalhado para aprender Python em uma semana.

A Anthropic oferece suporte a requisições de API síncronas e assíncronas.

APIs síncronas executam requisições de forma sequencial, bloqueando até receber a resposta antes de fazer a próxima chamada. Já as APIs assíncronas permitem várias requisições em paralelo sem bloqueio, tratando as respostas conforme ficam prontas. Isso torna as APIs assíncronas mais eficientes e escaláveis em comparação às síncronas.

Para chamar a API de forma assíncrona, importe AsyncAnthropic em vez de Anthropic. Defina uma função usando a sintaxe async e utilize await em cada chamada de API.

from anthropic import AsyncAnthropicanthropic = AsyncAnthropic()async def main():    completion = await anthropic.completions.create(        model="claude-2.1",        max_tokens_to_sample=300,        prompt=f"{HUMAN_PROMPT}How many moons does Jupiter have?{AI_PROMPT}",    )    print(completion.completion)await main()

Chegamos a um resultado quase exato. Algumas fontes citam 79, mas a NASA informa que Júpiter tem 95 luas.

Observação: use asyncio.run(main()) em vez de await main() ao executar o código em um arquivo .py de Python, e não em um Jupyter Notebook.

Streaming de LLM com o Claude 2

O streaming se tornou uma técnica essencial para grandes modelos de linguagem, oferecendo várias vantagens em relação aos métodos tradicionais. Em vez de esperar a resposta completa, o streaming permite processar a saída assim que ela fica disponível. Essa abordagem reduz a latência percebida ao retornar a saída do modelo token por token, e não toda de uma vez.

Para ativar o streaming, defina o argumento 'stream' como `True` na função de completion.

anthropic = Anthropic()stream = anthropic.completions.create(    prompt=f"{HUMAN_PROMPT}Could you please write a Python code to train a simple classification model?{AI_PROMPT}",    max_tokens_to_sample=350,    model="claude-2.1",    stream=True,)for completion in stream:    print(completion.completion, end="", flush=True)

Perceba que estamos recebendo a resposta linha a linha, muito mais rápido, como se o Claude 2.1 estivesse digitando.

Da mesma forma, também podemos executar o streaming em modo `async`. Note que apenas adicionamos `await` antes da função de completion e `async` antes do laço for.

anthropic = AsyncAnthropic()stream = await anthropic.completions.create(    prompt=f"{HUMAN_PROMPT}Please write a blog post on Neural Networks and use Markdown format. Kindly make sure that you proofread your work for any spelling, grammar, or punctuation errors.{AI_PROMPT}",    max_tokens_to_sample=350,    model="claude-2.1",    stream=True,)async for completion in stream:    print(completion.completion, end="", flush=True)

Nossa IA generativa está fazendo um bom trabalho ao escrever um post completo.

Confira a lista de 7 ferramentas essenciais de IA generativa que podem ajudar você a criar chatbots funcionais e com contexto.

Recursos avançados e personalizações

A API da Anthropic oferece diversos recursos avançados e opções de personalização além da geração básica de respostas:

  • Tratamento de erros: tipos de exceção específicos, como APIConnectionError e APIStatusError, permitem lidar com problemas de conexão e erros HTTP de forma limpa.
  • Cabeçalhos padrão: o cabeçalho anthropic-version é enviado automaticamente para identificar o cliente. É possível personalizar alterando o argumento default_headers no objeto anthropic.
  • Logging: o log de depuração pode ser ativado definindo a variável de ambiente ANTHROPIC_LOG. Isso ajuda na solução de problemas.
  • Cliente HTTP: o cliente HTTPX que realiza as requisições pode ser configurado para proxies, transports e outras funcionalidades avançadas.
  • Gerenciamento de recursos: você pode fechar o cliente manualmente com o método .close() ou usar um context manager que fecha automaticamente ao sair.
  • Técnicas de prompting: a documentação da API oferece várias palavras-chave para otimizar seus inputs para textos, documentos estruturados, trechos de código e resultados de RAG.
  • Validação de prompt: a API realiza uma sanitização e validação básica do prompt para garantir que ele esteja otimizado para o modelo Claude 2.

Para saber mais sobre funções avançadas, confira a documentação da API da Anthropic.

Aplicações práticas da API do Claude 2

A API do Claude 2 tem aplicações práticas amplas em diversos setores e domínios. Em criação de conteúdo e copywriting, ela ajuda a redigir artigos de alta qualidade, materiais de marketing e textos criativos. Além disso, em:

  • Tradução de idiomas: você pode criar apps que oferecem tradução em tempo real aproveitando recursos multilíngues avançados.
  • Educação: é ótima para aprendizado personalizado. Alunos podem usá-la para dominar assuntos complexos com mais rapidez.
  • Atendimento ao cliente: fornece respostas com melhor entendimento de contexto, mais precisas e naturais.
  • Assistência em programação: gera trechos de código, ajuda na depuração e explica conceitos complexos para acelerar o desenvolvimento.
  • Artes criativas: colabore com artistas para gerar conteúdos como composições musicais.
  • Jurídico/conformidade: redija documentos, resuma leis e apoie a conformidade regulatória.

Conclusão

A API em Python oferece uma forma poderosa de acessar os modelos de IA conversacional de ponta da Anthropic. Vimos o básico para configurar chaves de acesso, fazer chamadas de API síncronas e assíncronas, usar streaming de respostas e alguns recursos avançados. Além disso, conhecemos aplicações práticas do Claude 2.

Embora a API ainda tenha disponibilidade limitada, a Anthropic está ampliando o acesso gradualmente. À medida que o Claude 2 evolui, a API em Python permitirá que desenvolvedores integrem com facilidade seus recursos de última geração a uma ampla gama de produtos e serviços.

Espero que esta introdução à API do Claude 2 tenha sido útil! Sinta-se à vontade para experimentar os exemplos de código e ver, na prática, as habilidades impressionantes do Claude 2. Aqui está uma lista de 5 projetos que você pode criar com modelos de IA generativa para se inspirar e construir seu próximo projeto com o Claude 2.

Abid Ali Awan

Autor

Abid Ali Awan

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Temas

Relacionado

Tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Tutorial

Tutorial da API de assistentes da OpenAI

Tutorial

Guia para iniciantes no uso da API do ChatGPT