# instalar antes:
# pip install langchain langgraph langchain-google-genai langchain_community tavily-python python-dotenv aiosqlite
import os
import asyncio
from dotenv import load_dotenv
from langchain_google_genai import ChatGoogleGenerativeAI
from tavily import TavilyClient
from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver
# 1. Carregar variáveis do .env
load_dotenv()
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY")
if not GEMINI_API_KEY:
raise ValueError("GEMINI_API_KEY não encontrada no arquivo .env")
if not TAVILY_API_KEY:
raise ValueError("TAVILY_API_KEY não encontrada no arquivo .env")
# 2. Inicializar modelo Gemini
llm = ChatGoogleGenerativeAI(
model="gemini-1.5-flash",
google_api_key=GEMINI_API_KEY,
temperature=0
)
# 3. Inicializar cliente Tavily
tavily = TavilyClient(api_key=TAVILY_API_KEY)
# 4. Criar/abrir banco SQLite para checkpoints
DB_PATH = "checkpoints.sqlite"
async def preparar_ambiente():
async with AsyncSqliteSaver.from_conn_string(DB_PATH) as memory:
print("Ambiente carregado com sucesso.")
print("Gemini configurado:", llm.model)
print("Tavily configurado:", tavily is not None)
print("Banco SQLite pronto:", DB_PATH)
# teste rápido do LLM
resposta = await llm.ainvoke("Responda apenas: ambiente pronto")
print("Teste Gemini:", resposta.content)
# teste rápido da busca Tavily
busca = tavily.search(query="LangGraph checkpoints sqlite", max_results=2)
print("Teste Tavily OK. Resultados:", len(busca.get("results", [])))
asyncio.run(preparar_ambiente())