<h1 align="center">
<a href="https://prompts.chat">
<b>
Sign in to like and favorite skills
Pieces OS Client SDK For Python
The Pieces OS Client SDK is a powerful code engine package designed for writing applications on top of Pieces OS. It facilitates communication with a locally hosted server to enable features such as copilot chats, asset saving, and more.
The Pieces SDK offers the following key features:
To get started with the Pieces OS Client SDK, follow these steps:
Download Pieces OS: Pieces OS serves as the primary backend service, providing essential functionality for the SDK. Download the appropriate version for your operating system:
Install the SDK: Use pip to install the Pieces OS Client SDK package:
pip install pieces_os_client
The Pieces OS Client SDK has a built-in wrapper that simplifies the process of interacting with the Pieces OS server. Here's how you can get started with the wrapper.
from pieces_os_client.wrapper import PiecesClient pieces_client = PiecesClient()
When we initialize the Pieces Client, it defaults to
http://localhost:1000 for macOS/Windows and http://localhost:5323 for Linux. If you have a remote instance of Pieces OS running, you can specify the host URL when initializing the Pieces Client:
from pieces_os_client.wrapper import PiecesClient # Specify the host URL host_url = "http://your-host-url:your-port" pieces_client = PiecesClient(host=host_url)
To create a new asset, you can use the
create_asset method of the Pieces Client. Here's an example of how to create a new asset:
from pieces_os_client.wrapper import PiecesClient from pieces_os_client.models.classification_specific_enum import ClassificationSpecificEnum from pieces_os_client.models.fragment_metadata import FragmentMetadata pieces_client = PiecesClient() # Set the content and metadata for the new asset content = "print('Hello, World!')" metadata = FragmentMetadata(ext=ClassificationSpecificEnum.PY) # optional metadata # Create the new asset using the content and metadata new_asset_id = pieces_client.create_asset(content, metadata) print(f"Created asset with ID: {new_asset_id}") # Close the client pieces_client.close()
To get all your assets, you can use the
assets method of the Pieces Client. Here's an example of how to get all your assets and print their names:
from pieces_os_client.wrapper import PiecesClient pieces_client = PiecesClient() # Get all assets and print their names assets = pieces_client.assets() for asset in assets: print(f"Asset Name: {asset.name}") # Close the client pieces_client.close()
To ask a question to Pieces Copilot and stream the response, you can use the
stream_question method of the Pieces Client. Here's an example of how to ask a question and stream the response:
from pieces_os_client.wrapper import PiecesClient pieces_client = PiecesClient() # Set the question you want to ask question = "What is Object-Oriented Programming?" # Ask the question and stream the response for response in pieces_client.copilot.stream_question(question): if response.question: # Each answer is a chunk of the entire response to the question answers = response.question.answers.iterable for answer in answers: print(answer.text,end="") # Close the client pieces_client.close()
You can explore more features and functionalities of the built-in wrapper by referring to the Pieces OS Client Wrapper SDK documentation.
If you want to use the Pieces OS Client SDK directly without the built-in wrapper, you can follow these steps to get started.
First, we will create a Python script to test the connection to the Pieces OS server.
Create a python file and add the following code to confirm you can connect to your Pieces OS server:
from pieces_os_client.api.well_known_api import WellKnownApi import pieces_os_client import platform # Define the localhost port based on your operating system # For Linux, use port 5323, for macOS/Windows, use port 1000 platform_info = platform.platform() if 'Linux' in platform_info: port = 5323 else: port = 1000 # The `basePath` defaults to http://localhost:1000, but in this case we are checking the operating system to correctly set the port configuration = pieces_os_client.Configuration(host=f"http://localhost:{port}") # Initialize the Pieces ApiClient api_client = pieces_os_client.ApiClient(configuration) # Enter a context with an instance of the ApiClient with pieces_os_client.ApiClient(configuration) as api_client: # Create an instance of the WellKnown API api_instance = WellKnownApi(api_client) try: # Retrieve the (wellknown) health of your Pieces OS server api_response = api_instance.get_well_known_health() print("The response of WellKnownApi().get_well_known_health:") print(api_response) # Response: ok except Exception as e: print("Exception when calling WellKnownApi->get_well_known_health: %s\n" % e)
A developer documentation that outlines all the ins and outs of our available endpoints can be found here.
Explore more about Pieces SDK and get help from the following resources:
This repository is available under the MIT License.