A Python SDK for PromptStudio
Project description
PromptStudio Python SDK
A Python SDK for interacting with PromptStudio API and AI platforms directly.
Installation
From PyPI (Coming Soon)
pip install promptstudio-sdk
From Source
git clone https://github.com/your-repo/promptstudio-sdk.git
cd promptstudio-sdk
pip install -e .
Development Setup
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
# On Windows
venv\Scripts\activate
# On Unix or MacOS
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Usage
Initializing the SDK
from promptstudio_sdk import PromptStudio
client = PromptStudio({
'api_key': 'YOUR_API_KEY',
'env': 'test' # Use 'prod' for production environment
})
Getting All Prompts
# Get all prompts from a specific folder
prompts = client.get_all_prompts("your_folder_id")
print(prompts)
Chatting with a Prompt
response = client.chat_with_prompt(
prompt_id="your_prompt_id",
user_message=[
{
"type": "text",
"text": "Hello, how are you?"
}
],
memory_type="fullMemory",
window_size=10,
session_id="test_session",
variables={}
)
print(response)
Complete Example
from promptstudio_sdk import PromptStudio
def main():
# Initialize the client
client = PromptStudio({
'api_key': 'YOUR_API_KEY',
'env': 'test'
})
try:
# Get all prompts
prompts = client.get_all_prompts("your_folder_id")
print("Available prompts:", prompts)
# Chat with a specific prompt
response = client.chat_with_prompt(
prompt_id="your_prompt_id",
user_message=[
{
"type": "text",
"text": "Hello, how are you?"
}
],
memory_type="windowMemory",
window_size=10,
session_id="test_session",
variables={}
)
print("Chat response:", response)
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()
Testing
Setting Up Tests
- Install test dependencies:
pip install pytest pytest-cov
- Create a
.env
file in the root directory with your test credentials:
PROMPTSTUDIO_API_KEY=your_test_api_key
PROMPTSTUDIO_ENV=test
Running Tests
Run all tests:
pytest
Run tests with coverage:
pytest --cov=promptstudio_sdk
Writing Tests
Create test files in the tests
directory. Here's an example test:
import pytest
from promptstudio_sdk import PromptStudio
def test_chat_with_prompt():
client = PromptStudio({
'api_key': 'test_api_key',
'env': 'test'
})
response = client.chat_with_prompt(
prompt_id="test_prompt",
user_message=[{"type": "text", "text": "Hello"}],
memory_type="fullMemory",
window_size=10,
session_id="test_session",
variables={}
)
assert isinstance(response, dict)
assert 'response' in response
Type Hints
The SDK uses Python type hints for better IDE support and code documentation. Here are some key types:
from typing import Dict, List, Union, Optional
# Message types
ImageMessage = Dict[str, Union[str, Dict[str, str]]] # {"type": "image_url", "image_url": {"url": "..."}}
TextMessage = Dict[str, str] # {"type": "text", "text": "..."}
UserMessage = List[Union[ImageMessage, TextMessage]]
# Memory types
Memory = Literal["fullMemory", "windowMemory", "summarizedMemory"]
# Request payload
RequestPayload = Dict[str, Union[UserMessage, Memory, int, str, Dict[str, str], Optional[int]]]
Error Handling
The SDK raises exceptions for various error cases:
from promptstudio_sdk import PromptStudio
try:
client = PromptStudio({
'api_key': 'YOUR_API_KEY',
'env': 'test'
})
response = client.chat_with_prompt(...)
except requests.exceptions.HTTPError as e:
print(f"HTTP error occurred: {e}")
except requests.exceptions.RequestException as e:
print(f"Network error occurred: {e}")
except Exception as e:
print(f"An error occurred: {e}")
Contributing
- Fork the repository
- Create a new branch for your feature
- Make your changes
- Run the tests to ensure everything works
- Submit a pull request
License
This SDK is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
promptstudio_sdk-1.0.173.tar.gz
(32.2 kB
view details)
Built Distribution
File details
Details for the file promptstudio_sdk-1.0.173.tar.gz
.
File metadata
- Download URL: promptstudio_sdk-1.0.173.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3d30a0b4e721b7f43bcd2cbcf520f0d2bafe6b5eb3eab24df63c4ecd663ab4d |
|
MD5 | fb87b724fb78063ff87f5ec1d13eed11 |
|
BLAKE2b-256 | dd6a85629731f9885c347a308b77237580ec40fde8a7febe7f0aafc350a79e66 |
File details
Details for the file promptstudio_sdk-1.0.173-py3-none-any.whl
.
File metadata
- Download URL: promptstudio_sdk-1.0.173-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0467f49f205492bfd8f6ae5fd68564b9cec90183c42e9f69f85616742ed94aec |
|
MD5 | 4034ff59c7d69f36b6fd7892c59a68d0 |
|
BLAKE2b-256 | f489ebb0756211845cd22bb703092b083c679b7cfeb9ffa21139622e853579cb |