Python SDK for intercating with Okareo Cloud APIs
Project description
Okareo Python SDK
PyPI: https://pypi-hypernode.com/project/okareo/
Python SDK for interacting with Okareo Cloud APIs
Installation
-
Install the package
pip install okareo
-
Get your API token from https://app.okareo.com/. (Note: You will need to register first.)
-
Go directly to the "2. Create your API Token" on the landing page in above app.
-
Set the environment variable
OKAREO_API_KEY
to your generated API token.
Get Started Example
Please see and run this notebook:
https://github.com/okareo-ai/okareo-python-sdk/blob/main/examples/scenario_set.ipynb
See additional examples under:
https://github.com/okareo-ai/okareo-python-sdk/tree/main/examples
Using Okareo LangChain Callbacks Handler
We provide a LangChain callback handler that lets you easily integrate your current workflows with the Okareo platform.
If don't have LangChain dependencies installed in your environment, you can install the base ones (that will help you run the examples) with:
pip install okareo[langchain]
Integrating callbacks into your chain is as easy as importing the SDK in your module add adding the following
from okareo.callbacks import CallbackHandler
...
handler = CallbackHandler(mut_name="my-model", context_token="context-token")
llm = OpenAI(temperature=0.3, callbacks=[handler])
During the LangChain LLM runs we will collect input and output information so you can analyze it further with the Okareo toolkit.
You can also see an usage example in ./examples/langchain_callback_example.py
Development
- Clone this repository
- Requirements:
- Poetry
- Python 3.9+
- Create a virtual environment and install the dependencies
poetry install
- Activate the virtual environment
poetry shell
Update/regenerate client api code
Our client code is auto-generated from the OpenAPI spec of the Okareo API. In order to update the code in repo install openapi-python-client.
pip install openapi-python-client
Then, updating the client code to the latest production server spec is as easy as running.
make openapi/update
or, you you want to use your development api server spc, you can use it as a source with
OPENAPI_SPEC="http://localhost:8000/openapi.json" make openapi/update
If you have the openapi.json
already in the project dir you can simply run
make openapi/generate
to only trigger code generation, without fetching the OpenAPI spec json.
Testing
In order to run the tests from okareo_tests directory use pytest.
For tests to run you need to have the OKAREO_API_KEY
environment variable set to a valid API key.
poetry run pytest
Some of the tests use @integration
decorator which injects okareo_api
parameter into the tested function which can be then used to run the test against mocked version of the Okareo API and the actual running server.
@integration
def test_function(httpx_mock: HTTPXMock, okareo_api: OkareoAPIhost):
if f okareo_api.is_mock:
...
integration_env_path = okareo_api.path
...
In case you want to point them at a different API backend, you can utilize the BASE_URL
environment variable
BASE_URL="http://localhost:8000" poetry run pytest
Documentation
The documentation is automatically generated from the content of the docs directory and from the docstrings of the public signatures of the source code. The documentation is updated and published as a Github project page automatically as part each release.
Releasing
Trigger the Draft release workflow (press Run workflow). This will update the changelog & version and create a GitHub release which is in Draft state.
Find the draft release from the GitHub releases and publish it. When a release is published, it'll trigger release workflow which creates PyPI release and deploys updated documentation.
Pre-commit
Pre-commit hooks run all the auto-formatters (e.g. black
, isort
), linters (e.g. mypy
, flake8
), and other quality
checks to make sure the changeset is in good shape before a commit/push happens.
You can install the hooks with (runs for each commit):
pre-commit install
Or if you want them to run only for each push:
pre-commit install -t pre-push
Or if you want e.g. want to run all checks manually for all files:
pre-commit run --all-files
All rights reserved for Okareo Inc
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 okareo-0.0.30.tar.gz
.
File metadata
- Download URL: okareo-0.0.30.tar.gz
- Upload date:
- Size: 48.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be904bc78df7492f196ab1360bb5c380d69d81ec02efaaea76bbe34f10519931 |
|
MD5 | 999576e11858fb13c28c0d7622dfe7b9 |
|
BLAKE2b-256 | 2055cfd4d20643677f678463b2e57bf5ea5c4c11c327be085035e83631adbeb9 |
File details
Details for the file okareo-0.0.30-py3-none-any.whl
.
File metadata
- Download URL: okareo-0.0.30-py3-none-any.whl
- Upload date:
- Size: 116.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a85513f5408bd8bf8283f8f3b1b791c6c0811270f48d24aea948e7075cfd7358 |
|
MD5 | c58d29f73b9cc1b49849a766baaf8032 |
|
BLAKE2b-256 | 4800a6a5c0117bcfa0ceadb18f0dced8600b3a5b938acb14fb5fd47fa8450344 |