Skip to main content

Tourist Framework

Project description

Tourist🤳

PyPI version

An open-source, low-cost, serverless application for SERP extraction and web scraping.

Work on LLM projects without worrying about credits, subscriptions, or rate-limits. Tourist is a free alternative to many mainstream SERP API services. Run Tourist on your machine or deploy it into your own AWS account.

[!IMPORTANT]
Tourist is in early development. Features and API's may change unexpectedly.

Overview

tourist-architecture

Tourist has both Service and Client components. The Service (HTTP API) handles requests from the Client (your app, agent, or scraper scripts). You're in control of both components! None of your data is ever processed or stored by third parties.

Service

Local deployment (for testing...)

[!TIP]
Docker is recommended for running Tourist locally to handle dependencies for headless browsing.

  1. Docker Daemon
  2. docker run -e X_API_KEY="whatever" -p 8000:8000 ghcr.io/pogzyb/tourist:latest

If the service came up correctly, you should see:

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

Check the docs at http://localhost:8000/docs

AWS deployment (for real...)

Prerequisites:

  1. AWS Account and Credentials
  2. S3 Bucket for storing an OpenTofu statefile
  3. Docker Daemon

Read about the deployment container in the deploy/ folder.

Example deployment command:

docker run \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --env-file .env.aws \
    ghcr.io/pogzyb/tourist-deploy:latest \
    apply \
    -b tourist-statefile \
    -k SeCretTK3y

Use your endpoint: https://xxxxxxxx.lambda-url.us-east-1.on.aws (available the deployment outputs)

[!WARNING]
Tourist uses serverless infrastructure to keep costs extremely low; however these costs will not be $0.00 depending on how heavily you use your API.

[!IMPORTANT]
Tourist uses the X-API-KEY authorization header to protect your API, you should set this value when deploying.

Client

Build your own LLM tools, web scraping apps, or automated testing workflows with the Tourist client.

Python

You can use the python client to interact with your Tourist service. Check out the examples folder for the complete code.

pip install tourist
LLM Tools

For example, create a LangChain Tool for your LLM Agent.

from tourist.core import TouristScraper
from langchain_core.tools import tool

# Assumes you're running locally,
# change this to your cloud endpoint if you've deployed via terraform.
scraper = TouristScraper(
    "http://localhost:8000",
    x_api_key="doesntmatterlocally",  # authorization secret  
)


@tool
def search_tool(query: str) -> str:
    """
    A search tool.
    Useful for when you need to answer questions about current events, people, places, or things.
    Input should be a search query.
    """
    return scraper.get_serp(query, max_results=3):


# ... use the tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tourist-0.2.3.tar.gz (365.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tourist-0.2.3-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file tourist-0.2.3.tar.gz.

File metadata

  • Download URL: tourist-0.2.3.tar.gz
  • Upload date:
  • Size: 365.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tourist-0.2.3.tar.gz
Algorithm Hash digest
SHA256 0aeb23dccc903239febf5a19117b47829198bf73ea7092803777c7cd9703acf9
MD5 8589cb4a5715e6ad6f6ca186d8f1f5fb
BLAKE2b-256 752a049e5dc4d5e47af4383d04fc08193c92e9edb3bae9a33c442dd19a21da37

See more details on using hashes here.

File details

Details for the file tourist-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: tourist-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tourist-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4823e4fe8ab58ba46c9270d8d062014f97a5ab95d2183d0235b38ae160f33cb2
MD5 c46e3d0685e6d9b7e1e4c0b9132152a8
BLAKE2b-256 7651513599ea1234839d5a15e2ca0e08160a8fdc0634eea053b2a0ff5d3986ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page