Nyx Client offers a simple API for interacting with data in your Nyx network.
Project description
Nyx Client SDK
🌟 Nyx Client SDK offers a simple API for interacting with data in your Nyx network. Subscribe, search and download data from across your federated network with ease, or if you're a publisher, easily created, update, or delete your existing data products programmatically!
If you're looking for an out of the box experience, try installing nyx-extras, to seamlessly and quickly build powerful AI applications, to interact with data from your Nyx network!
🚧 Status
The Nyx ecosystem is at an early stage of its development, please give us feedback through the Github issues.
What is the Nyx Client SDK
The Nyx Client SDK is a Python library that provides an API for easy interaction with the Nyx Platform. It enables end users to seamlessly connect their data to the Nyx ecosystem, search for data, subscribe to it, and consume it. With this SDK, users can ultimately build powerful AI applications.
Several examples of SDK usage in an AI context are available:
- RAG demo examples
https://[nyx_host]/try-me-now
See also What is Nyx
🔥 Quick Start
Installation
The Nyx Client SDK is available on PyPI and can be installed via pip
running the following command.
pip install nyx-client
First time set up
Once the library is installed you can run nyx-client init
to generate the .env file. You'll be asked to provide your Nyx username, password and Nyx endpoint.
Example output
NYX_URL=<ENTER URL>
NYX_EMAIL=<ENTER EMAIL>
NYX_PASSWORD=<ENTER PASSWORD>
As a data producer
I want to connect my Data
from nyx_client import NyxClient
client = NyxClient()
client.create_data(
name="MyData1",
title="My Data #1",
description="The description of the data #1",
size=1080,
genre="ai",
categories=["cat1", "cat2", "cat3"],
download_url="http://storage/dataset1.csv",
content_type="text/csv",
lang="fr",
preview="col1, col2, col3\naaa, bbb, ccc",
license_url="https://opensource.org/licenses/MIT",
)
I want to share data using the instance's storage to upload
from nyx_client import NyxClient
client = NyxClient()
# Open in binary mode with 'b', optionally
# you can supply and encoding if required
with open("somefile.csv", 'rb') as infile:
client.create_data(
name="MyData1",
title="My Data #1",
description="The description of the data #1",
size=1080,
genre="ai",
categories=["cat1", "cat2", "cat3"],
file=infile,
content_type="text/csv",
lang="fr",
preview="col1, col2, col3\naaa, bbb, ccc",
license_url="https://opensource.org/licenses/MIT",
)
I want to delete/disconnect my Data
from nyx_client import NyxClient
client = NyxClient()
client.delete_data_by_name(name="MyData1")
As an application builder
I want to subscribe to some data
from nyx_client import NyxClient
client = NyxClient()
found_data = client.get_data(categories[genre="ai", categories=["cat1", "cat"], content_type="text/csv"])
for data in found_data:
client.subscribe(data)
I want to consume the data
from nyx_client import NyxClient
client = NyxClient()
subscribed_data = client.my_subscriptions()
for data in subscribed_data:
print(f"Downloading data {data.name}")
content = data.as_string() # NOTE: If this is a binary file, use as_bytes() instead.
👉 Gotchas
- If the Data has been deleted/disconnected from Nyx, the SDK will no longer be able to access it. Ensure that the data is still available.
The Nyx ecosystem is at an early stage of its development, please give us feedback through Github issues.
- If you get the SSL error
httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
then it may be that you need to set some environment variables like this before running your script:
CERT_PATH=$(python -m certifi)
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}
🐞 Troubleshooting
If you encounter any issues, ensure that:
- Your virtual environment is activated.
- All required dependencies are installed.
- Environment variables are set correctly.
- If an issue persists, check the Issues section on github
For further assistance:
- Refer to the project documentation
- 💡 If you have cloned the Git repo, you can run
make docs
and then viewdocs/index.html
.
- 💡 If you have cloned the Git repo, you can run
- Raise an issue on GitHub
- Chat with us on Discord
🤝 Contributing
We welcome contributions! Please see our CONTRIBUTING.md for guidelines.
⚖️ Terms and conditions
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
Built Distribution
File details
Details for the file nyx_client-0.2.4.tar.gz
.
File metadata
- Download URL: nyx_client-0.2.4.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a0099fb0845ef9f6a60110294b073d02a97b465bb385afa945c89f153b1fb3d |
|
MD5 | 24400a2bed6258a8bbab0157109dfe02 |
|
BLAKE2b-256 | 3626403f05ced973af245957cd2510a35d9c89c2d8acc35ad0469228abca5a50 |
Provenance
The following attestation bundles were made for nyx_client-0.2.4.tar.gz
:
Publisher:
publish.yaml
on Iotic-Labs/nyx-sdk
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
nyx_client-0.2.4.tar.gz
- Subject digest:
5a0099fb0845ef9f6a60110294b073d02a97b465bb385afa945c89f153b1fb3d
- Sigstore transparency entry: 150123593
- Sigstore integration time:
- Predicate type:
File details
Details for the file nyx_client-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: nyx_client-0.2.4-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8a65f95de05c56c20e6b5bb79881014e0a9ec6e0e4fcc474d7060f856fe914 |
|
MD5 | c897ef2ee414b3a7229e229b99e77db6 |
|
BLAKE2b-256 | 87c6ceab26622fb60b2c7513fe64e8f845ae679b2bc20c17bd850e599d9082e5 |
Provenance
The following attestation bundles were made for nyx_client-0.2.4-py3-none-any.whl
:
Publisher:
publish.yaml
on Iotic-Labs/nyx-sdk
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
nyx_client-0.2.4-py3-none-any.whl
- Subject digest:
fb8a65f95de05c56c20e6b5bb79881014e0a9ec6e0e4fcc474d7060f856fe914
- Sigstore transparency entry: 150123595
- Sigstore integration time:
- Predicate type: