Skip to main content

Python SDK for chatbot platform

Project description

pychatbot

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 pychatbot

Quick Start

from pychatbot 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

dada_pychatbot-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

dada_pychatbot-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file dada_pychatbot-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for dada_pychatbot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e40bb7b2c9e287a067df1ee7d34c9bdb481958c4afabb766036befe1937bdce0
MD5 8a3b854cc6f1ac95c337429ec4e2e966
BLAKE2b-256 7442df8bc9ccdcb2b7410a1a7e69490456e2044548635e21ba9214c3b250dcdc

See more details on using hashes here.

File details

Details for the file dada_pychatbot-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for dada_pychatbot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e18f47119b451122eb4860e0dc168ed74e3112ce3044835952365f7d2c75dcba
MD5 104b13dd52bf95c341ec3dc77e1ffa56
BLAKE2b-256 795d260fa5ad158d011efc5a8f08dd5003e9d32f28a89c7e09a7216effbfa3c2

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