Skip to main content

Python sdk for the Rowboat API

Project description

Rowboat Python SDK

A Python SDK for interacting with the Rowboat API.

Installation

You can install the package using pip:

pip install rowboat

Usage

Basic Usage

Initialize a client and use the chat method directly:

from rowboat import Client
from rowboat.schema import UserMessage, SystemMessage

# Initialize the client
client = Client(
    host="<HOST>",
    project_id="<PROJECT_ID>",
    api_key="<API_KEY>"
)

# Create messages
messages = [
    SystemMessage(role='system', content="You are a helpful assistant"),
    UserMessage(role='user', content="Hello, how are you?")
]

# Get response
response_messages, state = client.chat(messages=messages)
print(response_messages[-1].content)

# For subsequent messages, include previous messages and state
messages.extend(response_messages)
messages.append(UserMessage(role='user', content="What's your name?"))
response_messages, state = client.chat(messages=messages, state=state)

Using Tools

The SDK supports function calling through tools:

def weather_lookup(city_name: str) -> str:
    return f"The weather in {city_name} is 22°C."

# Create a tools dictionary
tools = {
    'weather_lookup': weather_lookup
}

# Use tools with the chat method
response_messages, state = client.chat(
    messages=messages,
    tools=tools
)

Stateful Chat (Convenience Wrapper)

For simpler use cases, the SDK provides a StatefulChat class that maintains conversation state automatically:

from rowboat import StatefulChat

# Initialize stateful chat
chat = StatefulChat(
    client,
    tools=tools,
    system_prompt="You are a helpful assistant."
)

# Simply send messages and get responses
response = chat.run("Hello, how are you?")
print(response)
# I'm good, thanks! How can I help you today?

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

rowboat-1.0.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

rowboat-1.0.2-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file rowboat-1.0.2.tar.gz.

File metadata

  • Download URL: rowboat-1.0.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for rowboat-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b275485c503e34ad6b89c01378f68e74d8d99cc99f95ebdce6e45b945c7643ec
MD5 011b7656094074d5da48148ad76cafa1
BLAKE2b-256 2ab3e5ce3c8d80123fe432942bd39491f0b0e0df9343f205f93f1f11d7dafd39

See more details on using hashes here.

File details

Details for the file rowboat-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: rowboat-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for rowboat-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3669fc0eedad573303dac5ab840a9d826549880288e37ded525411ec2c869d31
MD5 6b807e9e220bb0acbc5dd2761a70c677
BLAKE2b-256 f752cec065025cd22d63d7b5ffc719ad17ad7271beb12d79d9f56565ea60d838

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