1. Ambiente e Configuração
Uso de Venv
A criação de um ambiente virtual com venv continua sendo essencial para isolar as dependências do projeto. Este processo permanece inalterado, mas agora complementado com o gerenciamento seguro de variáveis de ambiente:
python -m venv langchain_env
source langchain_env/bin/activate # Windows: langchain_env\Scripts\activateInstalação (pip install)
Além do LangChain, precisamos instalar o python-dotenv para gerenciar variáveis de ambiente de forma segura:
pip install langchain python-dotenvConfiguração com .env
A utilização de um arquivo .env é uma prática recomendada para armazenar credenciais e configurações sensíveis, evitando que sejam expostas no código ou no controle de versão.
Passo 1: Criar o arquivo .env
Na raiz do projeto, crie um arquivo chamado .env com o seguinte conteúdo:
# Configurações do LM Studio
LM_STUDIO_BASE_URL=http://localhost:1234/v1
LM_STUDIO_API_KEY=nada
# Configurações do OpenRouter
OPENROUTER_API_KEY=sua_chave_aqui
OPENROUTER_API_BASE=https://openrouter.ai/api/v1Passo 2: Adicionar ao .gitignore
Certifique-se de incluir .env no seu arquivo .gitignore para evitar vazamento de credenciais:
.envPasso 3: Carregar as variáveis no código
Em seus scripts Python, carregue as variáveis no início do arquivo:
from dotenv import load_dotenv
import os
load_dotenv() # Carrega automaticamente o .env na raiz do projetoConfiguração do uso do LM Studio
Com o .env configurado, a integração com o LM Studio fica mais segura e organizada:
from langchain.llms import OpenAI
import os
llm = OpenAI(
openai_api_base=os.getenv("LM_STUDIO_BASE_URL"),
openai_api_key=os.getenv("LM_STUDIO_API_KEY"),
temperature=0.7
)Esta abordagem permite que você mantenha a URL do endpoint e a chave de API (mesmo sendo “nada” para LM Studio local) em um local centralizado, facilitando alterações futuras sem modificar o código-fonte.
Configuração do uso do OpenRouter
Para integração com o OpenRouter, utilize as variáveis carregadas do .env:
from langchain.llms import OpenAI
import os
llm = OpenAI(
openai_api_base=os.getenv("OPENROUTER_API_BASE"),
openai_api_key=os.getenv("OPENROUTER_API_KEY"),
model_name="mistralai/mistral-7b-instruct",
temperature=0.5
)Observe que agora não há necessidade de definir variáveis de ambiente manualmente no código, mantendo suas credenciais protegidas no arquivo .env.
Teste inicial com prompt
Agora seu teste inicial pode aproveitar a configuração centralizada:
from dotenv import load_dotenv
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
import os
# Carrega variáveis de ambiente
load_dotenv()
# Configuração do modelo (escolha LM Studio ou OpenRouter)
llm = OpenAI(
openai_api_base=os.getenv("LM_STUDIO_BASE_URL"),
openai_api_key=os.getenv("LM_STUDIO_API_KEY")
)
# Criação do prompt
prompt = PromptTemplate(
input_variables=["topic"],
template="Explique de forma concisa o conceito de {topic} para um iniciante:"
)
# Execução da cadeia
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run("machine learning")
print("Resposta do modelo:")
print(result)2. Boas Práticas Adicionais
- Variáveis de Ambiente Padrão
Utilize o segundo parâmetro deos.getenv()para valores padrão seguros:
os.getenv("LM_STUDIO_BASE_URL", "http://localhost:1234/v1")- Validação de Configuração
Adicione verificações básicas no início do seu script:
if not os.getenv("OPENROUTER_API_KEY"):
raise ValueError("OPENROUTER_API_KEY não configurada no .env")- Ambientes Diferenciados
Crie arquivos.env.developmente.env.productionpara diferentes cenários, carregando o apropriado conforme necessário.
Conclusão
A integração do .env com o LangChain representa um salto significativo na segurança e manutenibilidade do seu projeto. Ao centralizar todas as configurações sensíveis em um único arquivo protegido pelo .gitignore, você elimina riscos de vazamento de credenciais e facilita a colaboração em equipe.
Esta abordagem mantém seu código limpo e focado na lógica de negócios, enquanto as configurações permanecem em um local dedicado e seguro. Lembre-se sempre de tratar seu arquivo .env como informação confidencial e nunca incluí-lo em repositórios públicos.
Com esta estrutura, você está preparado para escalar suas integrações com diferentes provedores de modelos de linguagem, mantendo a flexibilidade para alternar entre ambientes locais (como LM Studio) e serviços em nuvem (como OpenRouter) com apenas pequenos ajustes no arquivo de configuração.