Tamanho de fonte
Alto contraste
Altura de linha

Criando Assistants com a API da OpenAI

Avatar de Luiza Cherobini Pereira Luiza Cherobini Pereira
5 minutos de leitura 4 meses atrás

Se você está começando a explorar o mundo da Inteligência Artificial (IA) e quer entender como criar assistentes poderosos utilizando a API da OpenAI, você está no lugar certo! Neste tutorial, vamos abordar o que são os Assistants da OpenAI, como utilizá-los e como eles podem simplificar o desenvolvimento de aplicações de IA. Vamos lá!

Mulher e seu assistente em mesa de escritório

O que são os Assistants da OpenAI?

Os Assistants da OpenAI são uma funcionalidade recente, lançada no final de 2023, que permite criar assistentes de IA capazes de realizar uma variedade de tarefas. Diferente dos modelos de linguagem tradicionais, os Assistants vêm com ferramentas pré-criadas que podem ser utilizadas automaticamente, como o interpretador de código (Code Interpreter) e a obtenção de informações (Knowledge Retrieval).

Principais Características dos Assistants

  1. Persistência: Uma vez criado, um Assistant fica sempre disponível para acesso, a menos que seja deletado.
  2. Ferramentas Pré-construídas: Os Assistants podem acessar várias ferramentas em paralelo, incluindo aquelas hospedadas pela OpenAI.
  3. Threads Persistentes: Simplificam o desenvolvimento de aplicativos de IA ao armazenar o histórico de mensagens e truncá-lo quando a conversa fica muito longa.

Explorando a Documentação da API

Antes de começarmos a criar nossos Assistants, é importante entender a estrutura da documentação da API da OpenAI. A documentação é bem organizada e oferece um guia passo a passo para diversas funcionalidades.

O que é uma API?

Uma API (Interface de Programação de Aplicações) é um conjunto de regras que permite a comunicação entre diferentes softwares. No caso da OpenAI, a API permite que você envie um texto e receba uma resposta gerada pelo modelo, facilitando a integração de funcionalidades de IA em seus aplicativos.

Criando um Assistant

Vamos começar criando um Assistant que funcione como um tutor de matemática. Para isso, utilizaremos a biblioteca da OpenAI em Python.

Passo 1: Configuração Inicial

Primeiro, vamos importar as bibliotecas necessárias e configurar nosso cliente da OpenAI.

import openai
from dotenv import load_dotenv, find_dotenv

_ = load_dotenv(find_dotenv())
client = openai.Client()

Passo 2: Criando o Assistant

Agora, vamos criar um novo Assistant com uma instrução específica para atuar como tutor de matemática.

assistant = client.beta.assistants.create(
  name="Math Tutor",
  instructions="Você é um tutor pessoal de matemática. Escreva e execute códigos para responder perguntas de matemática.",
  tools=[{"type": "code_interpreter"}],
  model="gpt-4-turbo-preview",
)

Passo 3: Criando uma Thread

Para interagir com o Assistant, precisamos criar uma Thread. As Threads armazenam o histórico de mensagens e facilitam a comunicação contínua.

thread = client.beta.threads.create()

Passo 4: Adicionando Mensagens à Thread

Vamos adicionar uma mensagem à Thread com uma pergunta de matemática.

message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role='user',
    content='Se eu jogar um dado honesto 1000 vezes, qual é a probabilidade de eu obter exatamente 150 vezes o número 6? Resolva com um código'
)

Passo 5: Rodando a Thread

Agora, vamos solicitar ao Assistant que rode a Thread.

run = client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions='O nome do usuário é Adriano Soares e ele é um usuário Premium.'
)

Passo 6: Esperando a Thread Rodar

Para garantir que a Thread já tenha sido executada, utilizamos o seguinte trecho de código:

import time

while run.status in ['queued', 'in_progress', 'cancelling']:
    time.sleep(1)
    run = client.beta.threads.runs.retrieve(
        thread_id=thread.id,
        run_id=run.id
    )
print(run.status)  # 'completed'

Passo 7: Verificando a Resposta

Por fim, vamos verificar a resposta dada pelo modelo.

if run.status == 'completed':
    mensagens = client.beta.threads.messages.list(
        thread_id=thread.id
    )
    print(mensagens)
else:
    print('Erro', run.status)

A resposta final será algo como:

A probabilidade de obter exatamente 150 vezes o número 6 ao lançar um dado honesto 1000 vezes é aproximadamente 0.0126, ou seja, cerca de 1.26%.

Analisando os Passos de Processamento do Assistant

Podemos verificar todos os passos que o modelo percorreu até chegar à solução.

run_steps = client.beta.threads.runs.steps.list(
    thread_id=thread.id,
    run_id=run.id
)

for step in run_steps.data[::-1]:
    print('\n=== Step:', step.step_details.type)
    if step.step_details.type == 'tool_calls':
        for tool_call in step.step_details.tool_calls:
            print('-----')
            print(tool_call.code_interpreter.input)
            print('-----')
            print('Result')
            print(tool_call.code_interpreter.outputs[0].logs)
    if step.step_details.type == 'message_creation':
        message = client.beta.threads.messages.retrieve(
            thread_id=thread.id,
            message_id=step.step_details.message_creation.message_id
        )
        print(message.content[0].text.value)

Conclusão

Os Assistants com a API da OpenAI oferecem uma maneira poderosa e flexível de criar assistentes de IA capazes de realizar uma variedade de tarefas. Com ferramentas pré-construídas e a capacidade de armazenar o histórico de mensagens, eles simplificam o desenvolvimento de aplicações de IA. Esperamos que este tutorial tenha ajudado você a entender como criar e utilizar Assistants com a API da OpenAI. Boa sorte em sua jornada com a Inteligência Artificial!

Se você gostou deste tutorial e quer aprender mais sobre IA e programação, não deixe de conferir nossos outros artigos e cursos na Asimov Academy!

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov