import os
api_key = os.environ.get('OPENAI_API_KEY')
from openai import OpenAI
client = OpenAI(api_key=api_key)
resposta = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Você é um assistente útil."},
{"role": "user", "content": "Explique resumidamente o que é uma LLM."}
],
temperature=0.7
)
print(resposta.choices[0].message.content)LLM - Aplicação Direta
Neste workshop, utilizaremos duas bibliotecas Python fundamentais:
openai: Esta é a biblioteca oficial da OpenAI para interagir com seus modelos (como GPT-4, GPT-4o-mini, etc.). Ela permite enviar prompts para os modelos e receber as respostas geradas. Usaremos esta biblioteca para as aplicações diretas de LLMs.langchain: Uma poderosa estrutura (framework) para desenvolver aplicações impulsionadas por modelos de linguagem. O LangChain simplifica a orquestração de LLMs, permitindo criar cadeias de ações, integrar ferramentas externas (como busca na web), gerenciar memória em conversas e implementar técnicas avançadas como RAG (Retrieval-Augmented Generation) e agentes. Usaremos LangChain para as seções sobre tipos de prompt (integrando com modelos OpenAI), agentes (tools e memory) e RAG.
Parâmetros no consumo da API OpenAI
Ao chamar a API de chat completions com a biblioteca openai, alguns parâmetros controlam o comportamento e a saída do modelo:
- model*: modelo que será utilizado (ex.:
"gpt-4o-mini","gpt-4.1"). - messages*: lista de mensagens com os papéis (
system,user,assistant), definindo o contexto e a interação. - temperature: controla a aleatoriedade da resposta.
0.0→ respostas mais previsíveis e determinísticas.1.0→ respostas mais criativas e variadas.
- max_tokens: número máximo de tokens (palavras + partes de palavras) que a resposta pode conter.
- top_p: amostragem por núcleo, alternativa ao
temperaturepara controlar diversidade. - stop: lista de sequências que interrompem a geração ao serem encontradas.
- tools: funções ou recursos adicionais que o modelo pode chamar.
- response_format: define o formato da resposta, como JSON estruturado.
Nota: parâmetros marcados com
*são obrigatórios para o funcionamento da chamada.
Papéis nas mensagens (system, user, assistant)
Ao enviar mensagens para a API, usamos uma lista onde cada item representa um papel. Esses papéis ajudam o modelo a entender quem está falando e qual é o contexto.
system Define o comportamento e a personalidade do modelo. Ex.:
"Você é um assistente especializado em finanças, responda de forma clara e objetiva."-> Impacta diretamente o tom, a área de conhecimento e o estilo das respostas.user Representa o que o usuário está perguntando ou solicitando. -> É a entrada principal que o modelo deve responder.
assistant Usado para incluir respostas anteriores do próprio modelo, mantendo contexto em conversas. -> Permite que a conversa seja contínua, considerando interações passadas.
Importante: - O
systemdefine o tom e permanece como “regra” durante toda a conversa. - A ordem das mensagens influencia o contexto e, portanto, a resposta. - Ao criar diálogos, inclua sempre as mensagens anteriores para que o modelo mantenha coerência.