{"slug": "roteiros-de-viagem-seguros-em-minutos-com-ia-e-python", "title": "Roteiros de Viagem Seguros em Minutos com IA e Python", "summary": "A developer has created a Python-based travel itinerary generator that uses FastAPI and multiple APIs to produce personalized travel plans in under 30 seconds. The system integrates Skyscanner, Booking.com, OpenWeather, and WHO/CDC APIs, and leverages large language models to interpret user requests. The project aims to replace traditional travel agencies by offering faster, more flexible, and cost-effective itinerary planning.", "body_md": "A pandemia acabou, as fronteiras reabriram e a ansiedade por viagens seguras está em alta. Hoje, basta digitar um pedido e, em poucos cliques, um assistente de IA entrega um roteiro completo, com voos, hotéis, clima e requisitos de saúde atualizados. Neste guia prático você aprenderá a montar itinerários instantâneos usando Python, FastAPI e as principais APIs de viagem, além de receber dicas de custo, privacidade e um checklist de documentos.\n\n| Motivo | Dados atuais |\n|---|---|\nFronteiras abertas |\nEm 2025, 92 % dos países dispensam restrições para viajantes vacinados, exigindo apenas teste PCR ou comprovante de vacinação. |\nPrioridade na segurança sanitária |\n68 % dos viajantes escolhem destinos com boas avaliações de higiene (Expedia Travel Trends 2026). |\nAPIs acessíveis |\nSkyscanner, Booking.com, OpenWeather, OMS/CDC oferecem planos gratuitos que respondem em milissegundos. |\nLLMs avançados |\nGPT‑4o, Claude‑3 e LLaMA‑2 70B interpretam solicitações complexas e geram código pronto para consumo de APIs. |\n\nEsses fatores tornam o planejamento **instantâneo, personalizado e confiável**, eliminando a necessidade de horas de pesquisa ou de agentes de viagem.\n\n``` php\nflowchart TD\n    A[Usuário] --> B[Prompt]\n    B --> C[LLM (GPT‑4o)]\n    C --> D[FastAPI Orquestrador]\n    D --> E[Skyscanner API]\n    D --> F[Booking.com API]\n    D --> G[OpenWeather API]\n    D --> H[OMS/CDC API]\n    E & F & G & H --> I[Agregador]\n    I --> J[Resposta ao usuário]\n!pip install fastapi uvicorn httpx python-dotenv\n```\n\n`.env`\n\n)\n\n```\nSKYSCANNER_KEY=suachave_sky\nBOOKING_KEY=suachave_booking\nOPENWEATHER_KEY=suachave_weather\nOMS_KEY=suachave_oms\n```\n\n`main.py`\n\n)\n\n``` python\nfrom fastapi import FastAPI, HTTPException\nimport httpx, os\nfrom dotenv import load_dotenv\n\nload_dotenv()\napp = FastAPI()\n\nSKYSCANNER = os.getenv(\"SKYSCANNER_KEY\")\nBOOKING   = os.getenv(\"BOOKING_KEY\")\nWEATHER   = os.getenv(\"OPENWEATHER_KEY\")\nOMS       = os.getenv(\"OMS_KEY\")\n\nasync def fetch(url, params):\n    async with httpx.AsyncClient() as client:\n        resp = await client.get(url, params=params, timeout=10)\n        resp.raise_for_status()\n        return resp.json()\n\n@app.post(\"/itinerario\")\nasync def criar_itinerario(pedido: dict):\n    destino = pedido.get(\"destino\")\n    dias    = int(pedido.get(\"dias\", 5))\n\n    # 1️⃣ Voo\n    voos = await fetch(\n        \"https://partners.api.skyscanner.net/apiservices/browsequotes/v1.0/BR/BRL/pt-BR/GRU-sky/\",\n        {\"apiKey\": SKYSCANNER, \"destination\": destino, \"duration\": dias}\n    )\n\n    # 2️⃣ Hotel\n    hoteis = await fetch(\n        \"https://api.booking.com/v1/hotels\",\n        {\"apikey\": BOOKING, \"city\": destino, \"filter\": \"sanitary_rating:A\"}\n    )\n\n    # 3️⃣ Clima\n    clima = await fetch(\n        \"https://api.openweathermap.org/data/2.5/forecast\",\n        {\"appid\": WEATHER, \"q\": destino, \"cnt\": 8}\n    )\n\n    # 4️⃣ Saúde\n    saude = await fetch(\n        f\"https://api.who.int/v1/countries/{destino}/travel-requirements\",\n        {\"apikey\": OMS}\n    )\n\n    # Agregação simples\n    itinerario = {\n        \"voo\": voos[\"Quotes\"][0],\n        \"hotel\": hoteis[\"result\"][0],\n        \"clima\": clima[\"list\"][:3],\n        \"saude\": saude[\"requirements\"]\n    }\n    return itinerario\nuvicorn main:app --reload\n```\n\nAcesse `http://127.0.0.1:8000/docs`\n\ne envie um JSON como:\n\n```\n{\n  \"destino\": \"Bali\",\n  \"dias\": 5\n}\n# Render.yaml (exemplo)\nservices:\n  - type: web\n    name: travel-ai-bot\n    env: python\n    buildCommand: pip install -r requirements.txt\n    startCommand: uvicorn main:app --host 0.0.0.0 --port $PORT\n```\n\n| Item | Agência tradicional | Travel‑AI Bot (cloud) |\n|---|---|---|\nTaxa de serviço |\n10‑15 % do valor total | < 5 USD/mês (hosting) + consumo de APIs |\nTempo de resposta |\n2‑5 dias úteis | < 30 segundos |\nFlexibilidade |\nPacotes fixos | Personalização total por parâmetro |\nPrivacidade |\nDados armazenados por terceiros | Controle total via seu backend |\n\n``` python\n# Exemplo de criptografia simples\nfrom cryptography.fernet import Fernet\nkey = Fernet.generate_key()\ncipher = Fernet(key)\n\ndef encrypt(data: str) -> str:\n    return cipher.encrypt(data.encode()).decode()\n\ndef decrypt(token: str) -> str:\n    return cipher.decrypt(token.encode()).decode()\n```\n\n| Documento | Onde obter | Validade mínima |\n|---|---|---|\n| Passaporte | Consulado/Embaixada | +6 meses |\n| Visto (se necessário) | Embaixada do destino | Conforme exigência |\n| Certificado de vacinação COVID‑19 | Ministério da Saúde | 14 dias antes da viagem |\n| Teste PCR negativo | Laboratório credenciado | 72 h antes da partida |\n| Seguro viagem (cobertura sanitária) | Seguradora | Até o último dia da viagem |\n\n```\n<div id=\"travel-ai-widget\"></div>\n<script>\n  async function gerarItinerario() {\n    const resp = await fetch('https://seu-bot.com/itinerario', {\n      method: 'POST',\n      headers: {'Content-Type':'application/json'},\n      body: JSON.stringify({destino: 'Lisboa', dias:7})\n    });\n    const data = await resp.json();\n    document.getElementById('travel-ai-widget').innerHTML = `\n      <h3>Roteiro Lisboa – 7 dias</h3>\n      <p>Voo: ${data.voo.Price} BRL</p>\n      <p>Hotel: ${data.hotel.name} – ${data.hotel.price} BRL/noite</p>\n      <p>Clima: ${data.clima.map(c=>c.weather[0].description).join(', ')}</p>\n      <p>Requisitos de saúde: ${data.saude}</p>\n    `;\n  }\n  gerarItinerario();\n</script>\n```\n\nCom as APIs certas, um LLM potente e um pequeno backend em FastAPI, você cria um **Travel‑AI Bot** que gera itinerários seguros\n\n*Herramienta mencionada: Groq Cloud*", "url": "https://wpnews.pro/news/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python", "canonical_source": "https://dev.to/leojulieta/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python-39hl", "published_at": "2026-08-18 08:36:10+00:00", "updated_at": "2026-08-18 08:42:18.213364+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "developer-tools", "ai-products"], "entities": ["FastAPI", "Skyscanner", "Booking.com", "OpenWeather", "WHO", "CDC", "GPT-4o", "Claude-3"], "alternates": {"html": "https://wpnews.pro/news/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python", "markdown": "https://wpnews.pro/news/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python.md", "text": "https://wpnews.pro/news/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python.txt", "jsonld": "https://wpnews.pro/news/roteiros-de-viagem-seguros-em-minutos-com-ia-e-python.jsonld"}}