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 with StatefulChat

The easiest way to interact with Rowboat is using the StatefulChat class, which maintains conversation state automatically:

from rowboat import Client, StatefulChat

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

# Create a stateful chat session
chat = StatefulChat(client)

# Have a conversation
response = chat.run("What is the capital of France?")
print(response)
# The capital of France is Paris.

# Continue the conversation - the context is maintained automatically
response = chat.run("What other major cities are in that country?")
print(response)
# Other major cities in France include Lyon, Marseille, Toulouse, and Nice.

response = chat.run("What's the population of the first city you mentioned?")
print(response)
# Lyon has a population of approximately 513,000 in the city proper.

Advanced Usage

Using a specific workflow

You can specify a workflow ID to use a particular conversation configuration:

chat = StatefulChat(
    client,
    workflow_id="<WORKFLOW_ID>"
)

Using a test profile

You can specify a test profile ID to use a specific test configuration:

chat = StatefulChat(
    client,
    test_profile_id="<TEST_PROFILE_ID>"
)

Tool overrides

You can provide tool override instructions to test a specific configuration:

chat = StatefulChat(
    client,
    mock_tools={
        "weather_lookup": "The weather in any city is sunny and 25°C.",
        "calculator": "The result of any calculation is 42.",
        "search": "Search results for any query return 'No relevant information found.'"
    }
)

Low-Level Usage

For more control over the conversation, you can use the Client class directly:

from rowboat.schema import UserMessage

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

# Create messages
messages = [
    UserMessage(role='user', content="Hello, how are you?")
]

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

# For subsequent messages, you need to manage the message history and state manually
messages.extend(response.messages)
messages.append(UserMessage(role='user', content="What's your name?"))
response = client.chat(messages=messages, state=response.state)

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-5.0.0.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

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

rowboat-5.0.0-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rowboat-5.0.0.tar.gz
Algorithm Hash digest
SHA256 47d6e142894e756582874f4415732a183deb2b6f3a8e502a252d16898df63569
MD5 5697ffb00175360bdc68491c3de011ef
BLAKE2b-256 7e721274a038e8da1f7284ff8e031de72ef3fcc91e8a5265270a8487ef8357eb

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for rowboat-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ef0fd19e7c1ba11d56bcf90c3744fa14a498c1320bfc7e3c99136a45a4cda3c
MD5 a50c7ddaec4812550998c5f9206ed8e3
BLAKE2b-256 ca26f0cb28c98a1661f6c5610c07b183c0d95a29fc7f576dee4de532686799c7

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