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.dev3.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.dev3.tar.gz.

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.10.0.dev3.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.dev3.tar.gz
Algorithm Hash digest
SHA256 baee5182b5342ead85ff377abd8b2340bca79a2315a4158698add4347bae8e5d
MD5 0a32e376557dc2f4accf23141abac285
BLAKE2b-256 85ab9bbb2c473123f5beb78d8035ae7f973bc6706b7cd13563821384d45ddd6b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarmauri_tool_qrcodegenerator-0.10.0.dev3-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.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 38e2d334de99e3bdecd12c3a1d0fa9e278cfb48e4b678cc9313cda023418c4f5
MD5 29d76b916262edf9c9c8e3dcbf12b10f
BLAKE2b-256 608daa49e575f7cb4d8fefaefbbf465b04fe3c1c145606e42b2fba6dafd4dade

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