Skip to main content

Swarmauri QR Code Generator Tool.

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_tool_qrcodegenerator


Swarmauri Tool · QR Code Generator

A Swarmauri tool that converts text payloads into QR codes and returns the image data as a Base64 string. Plug it into conversational agents, marketing workflows, or automation scripts that need scannable hand-offs (URLs, Wi-Fi credentials, one-time tokens, etc.).

  • Backed by qrcode/Pillow to produce standards-compliant QR codes.
  • Outputs Base64 so responses can be embedded directly in JSON, HTML, or rich chat messages.
  • Exposed through the standard Swarmauri tool interface for drop-in registration alongside other capabilities.

Requirements

  • Python 3.10 – 3.13.
  • qrcode (installs with its Pillow dependency) and Swarmauri base packages (swarmauri_base, swarmauri_standard, pydantic).
  • Optional: downstream consumers often decode the Base64 string using Pillow or write it to disk; ensure those environments can handle binary data.

Installation

Choose the tooling that matches your project; each command resolves transitive dependencies.

pip

pip install swarmauri_tool_qrcodegenerator

Poetry

poetry add swarmauri_tool_qrcodegenerator

uv

# Add to the current project and update uv.lock
uv add swarmauri_tool_qrcodegenerator

# or install into the active environment without editing pyproject.toml
uv pip install swarmauri_tool_qrcodegenerator

Tip: Pillow requires native image libraries on some Linux distributions (e.g., libjpeg, zlib). Install OS packages before running the commands above in minimal containers.

Quick Start

import base64
from swarmauri_tool_qrcodegenerator import QrCodeGeneratorTool

qr_tool = QrCodeGeneratorTool()
result = qr_tool("https://docs.swarmauri.ai")

image_b64 = result["image_b64"]
with open("docs-qrcode.png", "wb") as f:
    f.write(base64.b64decode(image_b64))

The output image uses the tool's default QR code settings (version=1, low error correction, black modules on white background). Adjust presentation after decoding if you need different colors or scaling.

Usage Scenarios

Embed QR Codes in Agent Responses

from swarmauri_core.agent.Agent import Agent
from swarmauri_core.messages.HumanMessage import HumanMessage
from swarmauri_standard.tools.registry import ToolRegistry
from swarmauri_tool_qrcodegenerator import QrCodeGeneratorTool

registry = ToolRegistry()
registry.register(QrCodeGeneratorTool())
agent = Agent(tool_registry=registry)

message = HumanMessage(content="Create a QR code for https://status.mycompany.com")
response = agent.run(message)
print(response)

Agents can attach the Base64 image to chat payloads so end users scan the code without additional steps.

Publish Dynamic Event Badges

import base64
from pathlib import Path
from swarmauri_tool_qrcodegenerator import QrCodeGeneratorTool

qr_tool = QrCodeGeneratorTool()
attendees = {
    "alice": "ticket:EVT-001-A1B2",
    "bob": "ticket:EVT-002-B3C4",
}

badges_dir = Path("badges")
badges_dir.mkdir(exist_ok=True)

for name, token in attendees.items():
    b64_img = qr_tool(token)["image_b64"]
    (badges_dir / f"{name}.png").write_bytes(base64.b64decode(b64_img))

Generate per-attendee QR codes that scanners can translate into ticket tokens at check-in.

Serve Codes Over HTTP

import base64
from fastapi import FastAPI, Response
from swarmauri_tool_qrcodegenerator import QrCodeGeneratorTool

app = FastAPI()
qr_tool = QrCodeGeneratorTool()

@app.get("/qr")
def qr_endpoint(data: str):
    result = qr_tool(data)
    png_bytes = base64.b64decode(result["image_b64"])
    return Response(content=png_bytes, media_type="image/png")

Expose an API that transforms arbitrary data into QR codes your front-end can display.

Troubleshooting

  • Blank or unreadable codes – Confirm the Base64 string is decoded to a PNG (base64.b64decode(...)). Avoid writing the raw Base64 text directly to file.
  • Binary dependency errors (Pillow) – Install platform-specific libraries (apt-get install libjpeg-dev zlib1g-dev, etc.) before installing the package, especially in slim containers.
  • Large payloads – Version 1 QR codes have size constraints (~17 alphanumeric characters). Fork the tool or extend it to allow larger versions if you need to encode lengthy data.

License

swarmauri_tool_qrcodegenerator is released under the Apache 2.0 License. See LICENSE for details.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

Built Distribution

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

File details

Details for the file swarmauri_tool_qrcodegenerator-0.9.3.dev10.tar.gz.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.9.3.dev10.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_tool_qrcodegenerator-0.9.3.dev10.tar.gz
Algorithm Hash digest
SHA256 890b055f8b212bdd2c46ca7d4cebc88d80f7b7c73b0d26e0e1b6e47d1e16e9c1
MD5 db2fa88c2fddc9e6be408f82d81989e2
BLAKE2b-256 c395663f743222589caa2e457cd0c1eb95c20de25c76f06a5682e23a2d6ed65a

See more details on using hashes here.

File details

Details for the file swarmauri_tool_qrcodegenerator-0.9.3.dev10-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.9.3.dev10-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_tool_qrcodegenerator-0.9.3.dev10-py3-none-any.whl
Algorithm Hash digest
SHA256 9c8545073cb0a3b5ce281446eb181fb45532b5184eca1b41c1b9d8bc8191ce51
MD5 3e8dd6c65ee31a95724a3c862b5dbf21
BLAKE2b-256 49825bb41a28af1f714e8d9582479f737c4013cf3852819a7862ab60b54aa48a

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