Skip to main content

Okareo Python SDK

PyPI PyPI - Python Version PyPI - License


PyPI: https://pypi.org/project/okareo/


Python SDK for interacting with Okareo Cloud APIs

Installation

  1. Install the package

    pip install okareo
    
  2. Get your API token from https://app.okareo.com/. (Note: You will need to register first.)

  3. Go directly to the "2. Create your API Token" on the landing page in above app.

  4. 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.

Inegrating them into your chain is as easy as simply importing the SDK add adding 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:
  • 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-generator.

pip install openapi-python-generator

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

Metadata

Release files for okareo 0.0.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for okareo 0.0.22
File Size Uploaded
okareo-0.0.22.tar.gz 38.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for okareo 0.0.22
File Interpreter ABI Platform
okareo-0.0.22-py3-none-any.whl Python 3 none any Details

Total release size: 135.8 kB

Release files / okareo-0.0.22.tar.gz

Download URL okareo-0.0.22.tar.gz
Size 38.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c152bccf6f255918240bee879bf61be15f37a464aada281f0fb3b3a43a9b9366
BLAKE2b-256 checksum
How to use checksums
0f9f59dd3b144d648bbbf406c8da56fa4ed2612299b05fa7cccaa5e53d28fb78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.10.13 Linux/6.2.0-1015-azure

Release files / okareo-0.0.22-py3-none-any.whl

Download URL okareo-0.0.22-py3-none-any.whl
Size 97.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c337979d80003331853102ae66a2fedd694b7d6365faccb65cb7ae9ef05ad07b
BLAKE2b-256 checksum
How to use checksums
47b9fdc1a1a20d520e3e900776cc2da9b4ffecfa8096ab5d1eaf936963cba61f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.10.13 Linux/6.2.0-1015-azure

Release history Release notifications | RSS feed

0.0.99

2 release files

0.0.98

2 release files

0.0.96

2 release files

0.0.95

2 release files

0.0.92

2 release files

0.0.91

2 release files

0.0.90

2 release files

0.0.89

2 release files

0.0.86

2 release files

0.0.85

2 release files

0.0.84

2 release files

0.0.81

2 release files

0.0.80

2 release files

0.0.79

2 release files

0.0.78

2 release files

0.0.75

2 release files

0.0.74

2 release files

0.0.73

2 release files

0.0.72

2 release files

0.0.71

2 release files

0.0.66

2 release files

0.0.65

2 release files

0.0.64

2 release files

0.0.63

2 release files

0.0.61

2 release files

0.0.58

2 release files

0.0.57

2 release files

0.0.56

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.50

2 release files

0.0.45

2 release files

0.0.43

2 release files

0.0.42

2 release files

0.0.41

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

This release

0.0.22 This release

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page