1. Construção de Requisições de API
1.1 Enviando Requisições Usando CURL
CURL é uma ferramenta de linha de comando que suporta o envio e recebimento de dados usando vários protocolos, como HTTP e HTTPS. Para enviar uma requisição para a API da OpenAI usando CURL, você primeiro precisa ter uma chave de API válida e em seguida adicioná-la ao cabeçalho da requisição.
Aqui está um exemplo de um comando CURL usado para enviar uma requisição para a API da OpenAI:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dizer que isso é um teste!"}],
"temperature": 0.7
}'
Você precisa substituir $OPENAI_API_KEY
pela sua chave de API. Por motivos de segurança, evite expor sua chave de API em qualquer ambiente público.
1.2 Análise dos Cabeçalhos da Requisição
No comando CURL acima, nós utilizamos dois cabeçalhos de requisição cruciais: Content-Type
e Authorization
.
-
Content-Type
: Isso informa ao servidor que estamos enviando dados no formato JSON. Seu valor é tipicamenteapplication/json
. -
Authorization
: Esta é a credencial usada para autenticar a requisição da API e seu formato é sempreBearer (sua chave de API)
.
Garantir a corretude desses dois cabeçalhos é crucial para o sucesso da requisição.
1.3 Construindo o Corpo da Requisição
O corpo da requisição é uma string formatada em JSON que informa à OpenAI sobre nossas intenções. Nesta requisição, usamos model
para especificar o modelo que estamos utilizando, passamos um array messages
definindo a entrada do usuário e definimos uma temperature
para ajustar a variabilidade da resposta.
O JSON se parece com isto:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dizer que isso é um teste!"}],
"temperature": 0.7
}
Neste exemplo, estamos solicitando que o modelo gere uma resposta de teste com base na mensagem de entrada.
1.4 Explicação Detalhada dos Parâmetros da Requisição
Dentro do corpo da requisição, existem vários parâmetros importantes a serem observados:
-
model
: Especifica o modelo de IA que pretendemos utilizar. A OpenAI fornece vários modelos, cada um com funcionalidades e efeitos diferentes. -
messages
: Este é um array contendo um ou mais objetos de mensagem, sendo que cada mensagem consiste em umrole
fornecendo o papel da mensagem econtent
representando o conteúdo da mensagem. -
temperature
: Controla a certeza da resposta. Um valor detemperature
mais baixo gera respostas mais certas, enquanto um valor mais alto leva a mais aleatoriedade.
2. Análise das Respostas da API
2.1 Compreensão da Resposta
Quando você envia uma requisição, o servidor retornará um código de status HTTP e possivelmente um corpo de resposta. Tipicamente, uma requisição bem-sucedida receberá um código de status na série 200. Os dados JSON retornados contêm o resultado da requisição e um exemplo de resposta é o seguinte:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\nIsso é um teste!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
Nesta resposta, podemos ver o ID da conclusão, o carimbo de data e hora de criação, o modelo utilizado, o uso de tokens e o conteúdo real da resposta (no campo choices
).
2.2 Completeness e Tratamento de Erros
O campo finish_reason
indica por que a API parou de produzir mais conteúdo. Motivos comuns de finalização incluem stop
, length
e idle
. Se ocorrer um erro, como exceder os limites de tokens ou uma chave de API incorreta, você receberá a mensagem de erro correspondente e o código de status. É importante lidar adequadamente com esses erros para garantir a continuidade da experiência do usuário e a estabilidade de sua aplicação. Para o tratamento de erros, você pode decidir sobre uma estratégia de tratamento de erro apropriada com base no código de status retornado e na mensagem de erro, como tentar novamente a requisição ou fornecer feedback ao usuário explicando o motivo do erro.
2.3 Envio de solicitações de API usando Python SDK
Abaixo está um exemplo de uso do SDK oficial do OpenAI Python para fazer chamadas de API.
Primeiro, você precisa instalar a biblioteca openai, o que pode ser feito usando o pip:
pip install --upgrade openai
Em seguida, você pode usar o seguinte código Python para fazer uma solicitação de API similar ao exemplo acima. Lembre-se de substituir YOUR_OPENAI_API_KEY
pela sua chave de API.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completions = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Você é um assistente de desenvolvimento profissional, hábil em resolver vários problemas de programação."},
{"role": "user", "content": "Escreva uma função para quicksort em Go."}
]
)
print(completions.choices[0].message)