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.9.0.dev21.tar.gz (8.4 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.9.0.dev21.tar.gz.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.9.0.dev21.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","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.0.dev21.tar.gz
Algorithm Hash digest
SHA256 30bd779431c90ffa0a2d8ff20d802f11cb76592491d2b09f2152e25b0f25ac3f
MD5 95c7b0bad276480b5cc8cb94e5c0ccf3
BLAKE2b-256 b066940d98248b4e9d750430f5f73c488ec1092d5de2166d07776b97e9bcc593

See more details on using hashes here.

File details

Details for the file swarmauri_tool_qrcodegenerator-0.9.0.dev21-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.9.0.dev21-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","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.0.dev21-py3-none-any.whl
Algorithm Hash digest
SHA256 7e2e51bc637161cf901e0951c51b3238edda0a6ab9d98e7ab2a65ab3aa62ba63
MD5 84fe0690219a10ca007a4cc0759cafe7
BLAKE2b-256 33ec4e3add1edc66d7d559ce3a79122ecfd2a91756ef9048be9697349f43dbce

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