mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 08:26:22 +02:00
76 lines
1.9 KiB
Markdown
76 lines
1.9 KiB
Markdown
# Rowboat Python SDK
|
|
|
|
A Python SDK for interacting with the Rowboat API.
|
|
|
|
## Installation
|
|
|
|
You can install the package using pip:
|
|
|
|
```bash
|
|
pip install rowboat
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
The main way to interact with Rowboat is using the `Client` class, which provides a stateless chat API. You can manage conversation state using the `conversationId` returned in each response.
|
|
|
|
```python
|
|
from rowboat.client import Client
|
|
from rowboat.schema import UserMessage
|
|
|
|
# Initialize the client
|
|
client = Client(
|
|
host="<HOST>",
|
|
projectId="<PROJECT_ID>",
|
|
apiKey="<API_KEY>"
|
|
)
|
|
|
|
# Start a new conversation
|
|
result = client.run_turn(
|
|
messages=[
|
|
UserMessage(role='user', content="list my github repos")
|
|
]
|
|
)
|
|
print(result.turn.output[-1].content)
|
|
print("Conversation ID:", result.conversationId)
|
|
|
|
# Continue the conversation by passing the conversationId
|
|
result = client.run_turn(
|
|
messages=[
|
|
UserMessage(role='user', content="how many did you find?")
|
|
],
|
|
conversationId=result.conversationId
|
|
)
|
|
print(result.turn.output[-1].content)
|
|
```
|
|
|
|
### Using Tool Overrides (Mock Tools)
|
|
|
|
You can provide tool override instructions to test a specific configuration using the `mockTools` argument:
|
|
|
|
```python
|
|
result = client.run_turn(
|
|
messages=[
|
|
UserMessage(role='user', content="What's the weather?")
|
|
],
|
|
mockTools={
|
|
"weather_lookup": "The weather in any city is sunny and 25°C.",
|
|
"calculator": "The result of any calculation is 42."
|
|
}
|
|
)
|
|
print(result.turn.output[-1].content)
|
|
```
|
|
|
|
### Message Types
|
|
|
|
You can use different message types as defined in `rowboat.schema`, such as `UserMessage`, `SystemMessage`, etc. See `schema.py` for all available message types.
|
|
|
|
### Error Handling
|
|
|
|
If the API returns a non-200 status code, a `ValueError` will be raised with the error details.
|
|
|
|
---
|
|
|
|
For more advanced usage, see the docstrings in `client.py` and the message schemas in `schema.py`.
|