1
resposta

[Projeto] 09 Faça como eu fiz: API, LangChain e Prompt

ETAPA

  1. Arquivo.env

Crie um arquivo chamado .envna raiz do projeto:

OPENAI_API_KEY="sua_chave_aqui"

  1. Arquivo.gitignore
    .env
    venv/
    pycache/

Isso impede que sua chave vá para o GitHub.

  1. Arquivorequirements.txt

(versões

openai
python-dotenv
langchain
langchain-openai

Instalar:

pip install -r requirements.txt

ETAPA 2 — Implementação com OpenAI (Sem LangChain)

Arquivo:main.py


from openai import OpenAI
from dotenv import load_dotenv
import os

# Carrega variáveis do .env
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

if not api_key:
    raise ValueError("A chave da API não foi encontrada no .env")

# Criando cliente OpenAI
cliente = OpenAI(api_key=api_key)

# Variáveis dinâmicas
numero_dias = 5
numero_criancas = 2
atividade = "praia"

prompt = f"""
Crie um roteiro de viagem de {numero_dias} dias
para uma família com {numero_criancas} crianças
que gostam de {atividade}.
"""

# Requisição via chat completion
resposta = cliente.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "Você é um assistente de roteiros de viagem."},
        {"role": "user", "content": prompt}
    ],
    temperature=0.5
)

# Extraindo apenas o texto
print("\nResposta via OpenAI direta:\n")
print(resposta.choices[0].message.content)
ETAPA 3 — Migrand

from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

if not api_key:
    raise ValueError("A chave da API não foi encontrada no .env")

numero_dias = 5
numero_criancas = 2
atividade = "praia"

prompt = f"""
Crie um roteiro de viagem de {numero_dias} dias
para uma família com {numero_criancas} crianças
que gostam de {atividade}.


# Criando modelo LangChain
modelo = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0.5,
    api_key=api_key
)

resposta = modelo.invoke(prompt)

print("\nResposta via LangChain:\n")
print(resposta.content)
ETAPA 4 — Implementando PromptTemplate

Agora vamos deixar o código profissional e modular.

Código Final Completo (API + LangChain +
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from dotenv import load_dotenv
import os

# Carrega .env
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

if not api_key:
    raise ValueError("A chave da API não foi encontrada no .env")

# Variáveis dinâmicas
numero_dias = 7
numero_criancas = 2
atividade = "praia"

# Criando template modular
modelo_de_prompt = PromptTemplate(
    template="""
Crie um roteiro de viagem de {dias} dias,
para uma família com {numero_criancas} crianças,
que gostam de atividades relacionadas a {atividade}.
"""
)

# Formatando template
prompt = modelo_de_prompt.format(
    dias=numero_dias,
    numero_criancas=numero_criancas,
    atividade=atividade
)

# Criando modelo
modelo = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0.5,
    api_key=api_key
)

# Chamando LLM
resposta = modelo.invoke(prompt)

print("\nPrompt Utilizado:\n")
print(prompt)

print("\nResposta Final:\n")
print(resposta.content)
1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do .env para proteger a chave da API, utilizou muito bem o PromptTemplate para modularizar o código e ainda compreendeu a importância de integrar o OpenAI diretamente e depois migrar para o LangChain para tornar a solução mais profissional.

Uma dica interessante para o futuro é separar a lógica de criação do modelo e do prompt em funções reutilizáveis, o que facilita manutenção e expansão.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!