From f049445244f26679f8f2b9a5b4ab9e96c7c6311b Mon Sep 17 00:00:00 2001
From: Arindam Majumder <109217591+Arindam200@users.noreply.github.com>
Date: Fri, 19 Apr 2024 11:58:47 +0530
Subject: [PATCH 1/4] feat: updated Readme
---
README.md | 305 ++++++++++++++++--------------------
assets/Logo-dark-theme.png | Bin 0 -> 53401 bytes
assets/Logo-light-theme.png | Bin 0 -> 58309 bytes
3 files changed, 132 insertions(+), 173 deletions(-)
create mode 100644 assets/Logo-dark-theme.png
create mode 100644 assets/Logo-light-theme.png
diff --git a/README.md b/README.md
index f9dfca1..be9817c 100644
--- a/README.md
+++ b/README.md
@@ -1,163 +1,179 @@
-# Pieces OS Client
-[![PyPI version](https://badge.fury.io/py/pieces-os-client.svg)](https://badge.fury.io/py/pieces-os-client)
-[![Downloads](https://static.pepy.tech/badge/pieces_os_client)](https://pepy.tech/project/pieces_os_client)
-
-Powerful code engine package for writing applications on top of Pieces OS and communicated with the locally hosted server to create copilot chats, to save assets + formats and more.
-
-
- Website •
- Documentation
+#
Pieces OS Client SDK For Python
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-## Table of Contents
-
-- [Operating System Support](#operating-system-support)
-- [Installing](#installing)
- - [Pieces OS](#pieces-os)
- - [Downloading PyPI Package](#downloading-pypi-package)
- - [Starter Project](#starter-project)
-- [Testing Usage](#testing-usage)
-- [Examples](#examples)
- - [Connect](#connect)
- - [Asset & /Assets](#creating-with-asset--assets)
- - [SeededAsset](#seededasset)
- - [Get your Assets Snapshot](#get-your-assets-snapshot)
- - [Update your Assets](#update-your-assets-metadata-or-properties)
- - [Deleting an Asset](#deleting-an-asset)
-- [Releases](#releases)
-- [Contributing](#contributing)
-- [Supported Versions](#supported-versions)
+## Introduction
-## Operating System Support
-Currently, Pieces OS is utilized as the primary backend service with [Pieces for Developers](https://docs.pieces.app/installation-getting-started/what-am-i-installing) that powers all of the features that can be used there. Both programs are designed for full support by all operating systems, although our [Linux Platform](https://docs.pieces.app/installation-getting-started/linux) is available, it leans towards a 'heavily supported beta' and may experience incremental issues on specific flavors of linux.
+The Pieces 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.
-> if you have any issues on any Linux flavor be sure to check our list of supported distributions on the [linux documentation page](https://docs.pieces.app/installation-getting-started/linux).
+## Installation
-## Installing
-When developing on the Pieces platform, you need two primary things:
+To get started with the Pieces SDK, follow these steps:
-1. **Download the Pieces OS application**
-2. **Install the pypi package**
+1. **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:
+ - [macOS](https://docs.pieces.app/installation-getting-started/macos)
+ - [Windows](https://docs.pieces.app/installation-getting-started/windows)
+ - [Linux](https://docs.pieces.app/installation-getting-started/linux)
-## Pieces OS
-Pieces OS runs in the background of your computer and serves as a hub for all plugins and extensions developed by the team. In order to utilize your own Server locally and support all the functionality that powers things like [Global Search](https://docs.pieces.app/features/global-search), [Copilot Chats](https://docs.pieces.app/features/pieces-copilot), [Asset Saving](https://docs.pieces.app/features/managing-saved-materials), [context](https://docs.pieces.app/features/pieces-copilot#set-your-own-copilot-context), and more.
+2. **Install the PyPI Package**: Use pip to install the Pieces SDK package:
+ ```shell
+ pip install pieces-os-client==1.2.7
+ ```
-Select the right version to download Pieces OS for your operating system:
-- [macOS](https://docs.pieces.app/installation-getting-started/macos) - [Compatible with macOS 11 Big Sur or higher]
-- [Windows](https://docs.pieces.app/installation-getting-started/windows) - [Compatible with Windows 10 version 1809 or higher]
-- [Linux](https://docs.pieces.app/installation-getting-started/linux) - [Compatible with Ubuntu 18 or Higher]
-You can also visit our user-facing documentation to learn more about different features that are available now to give you an idea of some of the things that you can potentially do.
+> Ensure that you install `v1.2.7` of the Pieces SDK package to ensure compatibility with the latest version of Pieces OS.
+>
+> We are working on a fix for this but for now, please install the package with that specific version number.
-## Downloading PyPI Package
-Using pip:
+## Usage
+After installing the SDK, you can import the library into your project and start utilizing its features:
-```python
-pip install pieces-os-client
+```shell
+from pieces_os_client.models
```
+For detailed usage instructions and examples, refer to the [documentation](https://docs.pieces.app/build).
-After you install the package, you can import the library into your project:
+## Features
+The Pieces SDK offers the following key features:
-```python
-from pieces_os_client.models
-```
+1. Copilot Chats: Communicate seamlessly with copilot chats functionality.
+2. Asset Management: Save and manage assets and formats efficiently.
+3. Local Server Interaction: Interact with a locally hosted server for various functionalities.
+4. Multi LLMs support: Use any Pieces supported LLMs to power apps.
-## Starter Project
+## Requirements
+The Pieces SDK has the following system requirements:
-Coming soon...
+- Pieces OS running as a backend service.
+- Python environment with pip for installing the SDK package.
-## Testing Usage
-Following the initial download and light configuration, you can perform a simple test to ensure that both **Pieces OS** is running and that **you also have correctly installed the PyPI package**.
+## Getting Started
-Create a wellknown.py file and add this code to confirm you have installed the correct package:
+First, we will create a Python script to test the connection to the Pieces OS server. This involves creating a `config.py` file to store your configuration info and a `wellknown.py` file to test the connection.
-```python
-# Enter a context with an instance of the API client
+> It's important to note that the localhost port for Pieces OS is different based on the operating system.
+>
+> For Linux, you should use `localhost:5323`.
+>
+> For macOS and Windows, you should use `localhost:1000`.
+
+Create a `main.py` file and add this code to confirm you have installed the correct package:
+
+```python title="main.py"
+import pieces_os_client
+import platform
+
+# Defining the port based on the operating system. For Linux, the port is 5323, and for macOS/Windows, the port is 1000.
+platform_info = platform.platform()
+if 'Linux' in platform_info:
+ port = 5323
+else:
+ port = 1000
+
+# The `basePath` defaults to http://localhost:1000, however we need to change it to the correct port based on the operating system.
+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 API class
+ # Create an instance of the WellKnownApi class
api_instance = pieces_os_client.WellKnownApi(api_client)
try:
- # api_instance.get_well_known_version() [Get]
- api_response = api_instance.get_well_known_version()
- print("The response of WellKnownApi->get_well_known_version:\n")
- print(api_response)
+ # Retrieve the (wellknown) health of the Pieces OS
+ 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_version: %s\n" % e)
-```
+ print("Exception when calling WellKnownApi->get_well_known_health: %s\n" % e)
+```
-**Your output should appear on your IDE terminal stating the version of the Pieces OS installed.**
+Run the following command to execute the script:
+
+```shell
+python3 main.py
+```
## Examples
-Here are a few examples of using some of the basic endpoints for getting up and running, along with creating an asset for the first time.
+Here are some examples of the basic endpoint for getting up and running:
-A developer documentation that outlines all the ins and outs of our available endpoints can be found [here](https://github.com/pieces-app/pieces-os-client-sdk-for-python/tree/main/docs).
-### Connect
-When developing and creating an application on top of Pieces OS, it is important that you authenticate with the application itself when performing requests.
+
+Connect
connect:\n")
- print(api_response)
+ pprint(api_response)
except Exception as e:
- print("Exception when calling ConnectorApi->connect: %s\n" % e)
-```
+ print("Exception when calling ConnectorApi->connect: %s\n" % e)
+ ```
+
+
+
+Get your Assets Snapshot
-### Creating with `Asset` & `/Assets`
-**Asset** is a very important model who's primary purpose is to manage the seeded data that comes in to the application, and is stored inside of Pieces OS. Each asset is identifiable as a piece of saved data, or pre-seeded data.
-
-**/Assets** is equally important, but instead of containing a single asset with parameters storing data on it, Assets serves as the list of `type: Asset` objects that are stored there. Also, you will find the operations for adding, deleting, searching, and other functions that are related to referencing a number of different snippets to make a comparison.
-
-### `SeededAsset`
-SeededAsset is the **Format** needed by `/assets/create` in order to accept the snippet, create, and return the information you need. The structure (at bare minimum is as follows):
-
-```python
-from pieces_os_client.models.seeded_asset import SeededAsset
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of SeededAsset from a JSON string
-seeded_asset_instance = SeededAsset.from_json(json)
-# print the JSON string representation of the object
-print SeededAsset.to_json()
-
-# convert the object into a dict
-seeded_asset_dict = seeded_asset_instance.to_dict()
-# create an instance of SeededAsset from a dict
-seeded_asset_form_dict = seeded_asset.from_dict(seeded_asset_dict)
-```
-
-### Get your Assets Snapshot
-When working with your app implementation you will often need to call the entire asset snapshot in order to get the correct snippet from your storage in Pieces OS. You can use this asset snapshot by passing the asset's ID and a boolean value indicating whether or not to return transferable data.
-The response from the API is then printed to the console.
+ When working with your app implementation you will often need to call the entire asset snapshot in order to get the correct snippet from your storage in Pieces OS. You can use this asset snapshot by passing the asset's ID and a boolean value indicating whether or not to return transferable data. The response from the API is then printed to the console.
```python
+
# Enter a context with an instance of the API client
with pieces_os_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = pieces_os_client.AssetApi(api_client)
asset = '2254f2c8-5797-40e8-ac56-41166dc0e159' # str | The id (uuid) of the asset that you are trying to access.
- transferables = True # bool | This is a boolean that will decided if we are want to return the transferable data (default) or not(performance enhancement) (optional)
+ transferables = True # bool | This is a boolean that will decide if we want to return the transferable data (default) or not (performance enhancement) (optional)
seeded_accessor = pieces_os_client.SeededAccessor() # SeededAccessor | (optional)
try:
@@ -167,78 +183,21 @@ with pieces_os_client.ApiClient(configuration) as api_client:
print(api_response)
except Exception as e:
print("Exception when calling AssetApi->asset_snapshot_post: %s\n" % e)
-```
-
-### Updating your Assets
-Individual assets can be manipulated with a number of different properties and metadata. You can add **titles**, **annotations**, **tags**, **links**, **anchors**, and much more all through this single endpoint.
-To use the assest_update method of the AssetAPi class, pass a boolean value for `transferables` and an instance of the Asset class for the `asset`. It should update the assest in the database and print the response from the API call.
-
-```python
-# Enter a context with an instance of the API client
-with pieces_os_client.ApiClient(configuration) as api_client:
- # Create an instance of the API class
- api_instance = pieces_os_client.AssetApi(api_client)
- transferables = True # bool | This is a boolean that will decided if we are want to return the transferable data (default) or not(performance enhancement) (optional)
- asset = pieces_os_client.Asset() # Asset | This is the updated Asset that needs to be updated in our db. (optional)
-
- try:
- # api_instance.asset_update(transferables=transferables, asset=asset) [POST] Scoped to Asset
- api_response = api_instance.asset_update(transferables=transferables, asset=asset)
- print("The response of AssetApi->asset_update:\n")
- print(api_response)
- except Exception as e:
- print("Exception when calling AssetApi->asset_update: %s\n" % e)
-```
-
-### Deleting an Asset
-Similar to the previous example, you need assetSnapshot in order to access the proper asset on your list of data. You can use this endpoint to completely delete a specific asset where ever it may be in the list of all of your assets by taking a uid to delete out of the assets table.
-
-```python
-# Enter a context with an instance of the API client
-with pieces_os_client.ApiClient(configuration) as api_client:
- # Create an instance of the API class
- api_instance = pieces_os_client.AssetsApi(api_client)
- asset = '2254f2c8-5797-40e8-ac56-41166dc0e159' # str | The id (uuid) of the asset that you are trying to access.
-
- try:
- # api_instance.assets_delete_asset(asset) [POST] Scoped to Asset
- api_response = api_instance.assets_delete_asset(asset)
- print("The response of AssetsApi->assets_delete_asset:\n")
- print(api_response)
- except Exception as e:
- print("Exception when calling AssetsApi->assets_delete_asset: %s\n" % e)
-```
-
-
-## Releases
-The release pipeline will trigger when a tag is pushed to main.
-
-## Contributing
-
-This project uses poetry for managing dependencies and builds. Install poetry with:
-```shell
-pip install poetry
```
+
-Then use poetry to install the required dependencies
-```shell
-poetry install
-```
-You build with
-```shell
-poetry build
-```
+A developer documentation that outlines all the ins and outs of our available endpoints can be found [here](https://docs.pieces.app/build/reference/python/).
-Finally any project dependencies should be added to the pyproject.toml file with
-```shell
-poetry add
-```
+## Learn More / Support
+Explore more about Pieces SDK and get help from the following resources:
+
+- 🚀 [Getting Started Tutorial](https://docs.pieces.app/installation-getting-started/what-am-i-installing)
+- 📜 [Pieces Docs](https://docs.pieces.app/build)
+- 💬 [Discord Community](https://discord.gg/getpieces)
-these can be local/github/pypi etc.
+## License
+This repository is available under the [MIT License](./LICENSE).
-## Supported Versions
-**It is recommended to always stay up to date with the latest production release of Pieces OS.**
-If you are limited on updating versions due to development progress or needing to remain on a specific version - try to remain on the same _minor version_ to avoid any issues. If you start to encounter issues, please update to the next available version when receiving errors.
diff --git a/assets/Logo-dark-theme.png b/assets/Logo-dark-theme.png
new file mode 100644
index 0000000000000000000000000000000000000000..253bc5b47cef92e40a75e6183b4b687b5ba724a5
GIT binary patch
literal 53401
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