chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user