0Pricing
Learn AI with Python · Aula

API da OpenAI: chat.completions e transmissão

Cliente da OpenAI, lista de mensagens, papéis de sistema/usuário/assistente e transmissão com stream=True.

API da OpenAI: chat.completions e transmissão é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Conheça o SDK Python da OpenAI

O pacote openai para Python é a forma oficial de interagir com modelos da OpenAI, como o GPT-4o. Instale-o com pip install openai e você terá uma única classe de cliente OpenAI que cuida da autenticação, de novas tentativas e da criação de solicitações.

Toda chamada que você fizer passará por esse cliente, portanto criá-lo uma vez e reutilizá-lo é o padrão recomendado.

pip install openai

from openai import OpenAI

Criando o cliente

Instancie o cliente com OpenAI(). Por padrão, ele lê sua chave da variável de ambiente OPENAI_API_KEY, mantendo os segredos fora do código-fonte.

Você também pode passar a chave explicitamente, mas as variáveis de ambiente são a abordagem recomendada para aplicações de produção.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

# Or pass it explicitly (not recommended)
client = OpenAI(api_key="sk-...")

A lista de mensagens

Os modelos de chat são orientados por uma lista de mensagens. Cada mensagem é um dicionário com um role e um content. As três funções principais são system (instruções), user (a pessoa) e assistant (o modelo).

Essa lista é o contexto completo da conversa que o modelo vê em cada chamada.

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

Sua primeira conclusão

Chame client.chat.completions.create() com um model e suas messages. O texto da resposta está em response.choices[0].message.content.

A API retorna uma lista de opções, mas, no uso normal, basta ler a primeira.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages
)

print(response.choices[0].message.content)

Controlando a saída com parâmetros

Dois parâmetros moldam a resposta: temperature (0 = determinístico; valores maiores = mais criativo) e max_tokens (limita o tamanho da resposta). Temperaturas mais baixas são adequadas para tarefas factuais; temperaturas mais altas são melhores para brainstorming.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    temperature=0.2,
    max_tokens=300
)

Por que transmitir respostas?

Sem transmissão em fluxo, você precisa esperar a resposta inteira antes de ver qualquer coisa. Com a transmissão em fluxo, os tokens chegam à medida que são gerados, permitindo que uma interface exiba o texto em tempo real, como o ChatGPT faz.

Você a ativa com stream=True, o que transforma o valor retornado de um único objeto em um iterador.

Ativando a transmissão em fluxo

Transmita stream=True para create(). Em vez de uma resposta concluída, você passa a receber um gerador que produz fragmentos à medida que o modelo os cria.

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    stream=True
)

Percorrendo fragmentos

Percorra o stream em um laço. Cada fragmento contém uma parte do texto em chunk.choices[0].delta.content. Os fragmentos iniciais e finais podem ter None nesse campo, portanto verifique se há um valor antes de imprimir.

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta is not None:
        print(delta, end="", flush=True)

Entendendo delta e mensagem

Em uma resposta normal, você lê message.content (a resposta inteira). Em um stream, você lê delta.content (apenas a parte nova). A palavra delta significa "a mudança" desde o último fragmento.

Concatenar todos os deltas reconstrói a mensagem completa.

full_text = ""
for chunk in stream:
    piece = chunk.choices[0].delta.content or ""
    full_text += piece
print("\nFinal:", full_text)

Conversas com várias interações

Para manter uma conversa, use append para adicionar a resposta do assistente a messages e depois acrescente a próxima mensagem do usuário. O modelo não mantém estado, portanto YOU mantém o histórico.

messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "And its population?"})

follow_up = client.chat.completions.create(model="gpt-4o", messages=messages)

Inspecionando o uso de tokens

Respostas sem transmissão em fluxo incluem um objeto usage com prompt_tokens, completion_tokens e total_tokens. É assim que você acompanha e controla o custo da API, já que a cobrança é feita por token.

print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Verificação rápida

Teste sua compreensão da transmissão em fluxo.

Recapitulação: respostas de chat e transmissão em fluxo

Você aprendeu a criar um cliente OpenAI, montar uma lista messages com funções de sistema, usuário e assistente e chamar chat.completions.create(). Você lê as respostas normais em choices[0].message.content.

Com stream=True, você percorre os fragmentos e lê delta.content para obter a saída em tempo real, mantém o histórico anexando respostas e acompanha o custo por meio do objeto usage.

Perguntas Frequentes

A aula “API da OpenAI: chat.completions e transmissão” é grátis?

Sim — o texto completo de “API da OpenAI: chat.completions e transmissão” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “API da OpenAI: chat.completions e transmissão”?

Cliente da OpenAI, lista de mensagens, papéis de sistema/usuário/assistente e transmissão com stream=True. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “API da OpenAI: chat.completions e transmissão”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. API da OpenAI: chat.completions e transmissão
  2. API Anthropic Claude em Python
  3. Chamadas de funções e uso de ferramentas com LLMs
  4. Engenharia de prompts para aplicações LLM em produção
← Voltar para Learn AI with Python