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

swarmauri_tool_qrcodegenerator-0.10.0.dev5.tar.gz (8.5 kB view details)

Uploaded Source

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.10.0.dev5.tar.gz.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.10.0.dev5.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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.10.0.dev5.tar.gz
Algorithm Hash digest
SHA256 0a179e5440d61d843e01adf2d344f1ea4a9228402654313fa5fc6a5c46b7c23f
MD5 428a9159b0dfa4772abfd3fac7cd687f
BLAKE2b-256 621b8fb6b22240ad5e2e866cb6a7b2d0b44ec3e82cd7138fb73cb5823fcadcfc

See more details on using hashes here.

File details

Details for the file swarmauri_tool_qrcodegenerator-0.10.0.dev5-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.10.0.dev5-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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.10.0.dev5-py3-none-any.whl
Algorithm Hash digest
SHA256 8ec8a1965cd79beba29998019a524eb94e6ffdfd9058a25c30227f3ff60887ed
MD5 1c8beb268228d56456ebb4f6b059b504
BLAKE2b-256 b82eb06e9cc0b0ac2d056fcfe74ca5141abc0a113dc9a55342acdb99a9fc9c4d

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