Skip to main content

Python client for chatbot platform

Project description

pychatbot2

A Python SDK for the chatbot platform, providing a clean and type-safe interface for interacting with messaging platforms.

Features

  • Type-safe interfaces using Python's type hints
  • Async/await support for all operations
  • Event-driven architecture using Server-Sent Events (SSE)
  • Support for various message content types (text, image, audio, card)
  • Comprehensive error handling and logging
  • Easy integration with messaging platforms

Installation

pip install pychatbot2

Quick Start

from pychatbot2 import ChatbotClient, ChatbotClientOptions, CommandRunner, Contact, ContactType, ChatMessagePayload, ChatMessagePlainContent

class MyCommandRunner(CommandRunner):
    async def on_start(self, payload):
        return {
            "self": Contact(
                contact_type=ContactType.PRIVATE,
                contact_id="user123",
                name="My Bot"
            ),
            "contacts": []
        }
    
    async def get_self(self, payload):
        return Contact(
            contact_type=ContactType.PRIVATE,
            contact_id="user123",
            name="My Bot"
        )
    
    async def get_contacts(self, payload):
        return []
    
    async def get_contact_info(self, payload):
        return {
            "name": "Test Contact",
            "members": []
        }
    
    async def send_chat_message(self, payload):
        # Implement message sending logic
        pass

# Create client options
options = ChatbotClientOptions(
    base_url="https://api.example.com",
    api_key="your-api-key",
    message_platform_type="custom",
    message_platform_account_id="account123",
    command_runner=MyCommandRunner()
)

# Create and start the client
client = ChatbotClient(options)
await client.start()

# Handle incoming messages
async def handle_message(message):
    payload = ChatMessagePayload(
        contact_type=ContactType.PRIVATE,
        contact_id="user123",
        message_id="msg123",
        sender_id="sender123",
        content=ChatMessagePlainContent(text="Hello!"),
        mentioned=False
    )
    await client.on_receive_chat_message(payload)

Development

Setup

  1. Clone the repository
  2. Install development dependencies:
    pip install -e ".[dev]"
    

Running Tests

pytest

Code Style

This project uses:

  • Black for code formatting
  • isort for import sorting
  • mypy for type checking

Run the formatters:

black .
isort .

License

MIT License

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

pychatbot2-0.1.4.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

pychatbot2-0.1.4-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file pychatbot2-0.1.4.tar.gz.

File metadata

  • Download URL: pychatbot2-0.1.4.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pychatbot2-0.1.4.tar.gz
Algorithm Hash digest
SHA256 18baf61de45d708e2cac0de9d330d98cc4c8035fa01024a1764b2734b08f40ce
MD5 5f047f808821e54d026a39e410ef99c3
BLAKE2b-256 4e7e5a2e8f298adf7d9f9c97ff60d9306624aab4d2355e95a4dfafec197580ed

See more details on using hashes here.

File details

Details for the file pychatbot2-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pychatbot2-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pychatbot2-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a028bc4ea164ab96a506d41a888880668fe0437e10aff3da903ca62877a54395
MD5 ae3d6adbcc463c6a0c420747c0fdce9c
BLAKE2b-256 a183f6d115149d3c5902b494842341c88f460a8fb335bfa4ec16fb807d94da82

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