Skip to main content

Python client for SeekrAI

Project description

The Seekr Python Library is the official Python client for SeekrFlow's API platform, providing a convenient way for interacting with the REST APIs and enables easy integrations with Python 3.9+ applications with easy to use synchronous and asynchronous clients.

Installation

To install Seekr Python Library from PyPi, simply run:

pip install --upgrade seekrai

Setting up API Key

🚧 You will need to create an account with Seekr.com to obtain a SeekrFlow API Key.

Setting environment variable

export SEEKR_API_KEY=xxxxx

Using the client

from seekrai import SeekrFlow

client = SeekrFlow(api_key="xxxxx")

RBAC Team Routing

Every API key currently resolves to a personal team. We do not currently have application-level or shared team-level API keys.

The SDK can send the RBAC context header x-team-id when provided. This header does not grant access by itself.

Authorization is enforced server-side using the authenticated identity (API key/JWT). A request is only allowed if that identity has access to the requested team. If no team context is provided, the backend defaults to the personal team resolved from authentication.

You can set team context in either of these ways:

  1. Set SEEKR_TEAM_ID and let the SDK populate x-team-id automatically.
  2. Pass supplied_headers={"x-team-id": "..."} explicitly.

If both are provided, supplied_headers["x-team-id"] takes precedence.

import os
from seekrai import SeekrFlow

client = SeekrFlow(
    api_key=os.environ.get("SEEKR_API_KEY"),
)
import os
from seekrai import AsyncSeekrFlow

async_client = AsyncSeekrFlow(
    api_key=os.environ.get("SEEKR_API_KEY"),
    supplied_headers={"x-team-id": os.environ.get("SEEKR_TEAM_ID")},
)

Usage – Python Client

Chat Completions

import os
from seekrai import SeekrFlow

client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))

response = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "tell me about new york"}],
)
print(response.choices[0].message.content)

Streaming

import os
from seekrai import SeekrFlow

client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
stream = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "tell me about new york"}],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Async usage

import os, asyncio
from seekrai import AsyncSeekrFlow

async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
messages = [
    "What are the top things to do in San Francisco?",
    "What country is Paris in?",
]


async def async_chat_completion(messages):
    async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
    tasks = [
        async_client.chat.completions.create(
            model="meta-llama/Llama-3.1-8B-Instruct",
            messages=[{"role": "user", "content": message}],
        )
        for message in messages
    ]
    responses = await asyncio.gather(*tasks)

    for response in responses:
        print(response.choices[0].message.content)


asyncio.run(async_chat_completion(messages))

Files

The files API is used for fine-tuning and allows developers to upload data to fine-tune on. It also has several methods to list all files, retrieve files, and delete files

import os
from seekrai import SeekrFlow

client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))

client.files.upload(file="somedata.parquet")  # uploads a file
client.files.list()  # lists all uploaded files
client.files.delete(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815")  # deletes a file

Fine-tunes

The finetune API is used for fine-tuning and allows developers to create finetuning jobs. It also has several methods to list all jobs, retrieve statuses and get checkpoints.

import os
from seekrai import SeekrFlow

client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))

client.fine_tuning.create(
    training_file='file-d0d318cb-b7d9-493a-bd70-1cfe089d3815',
    model='meta-llama/Llama-3.1-8B-Instruct',
    n_epochs=3,
    n_checkpoints=1,
    batch_size=4,
    learning_rate=1e-5,
    suffix='my-demo-finetune',
)
client.fine_tuning.list()  # lists all fine-tuned jobs
client.fine_tuning.retrieve(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b")  # retrieves information on finetune event

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seekrai-0.18.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seekrai-0.18.0-py3-none-any.whl (94.9 kB view details)

Uploaded Python 3

File details

Details for the file seekrai-0.18.0.tar.gz.

File metadata

  • Download URL: seekrai-0.18.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for seekrai-0.18.0.tar.gz
Algorithm Hash digest
SHA256 fa85334ac9b725f1ae3f4bbb59e4b927e787f1a79003def7cc16a6bc8c8eeaa6
MD5 b3d698a01421d80a43741938c3f67bde
BLAKE2b-256 824cbd00631b0e6cb70564cbecd40a72178a9a0ca5bca3d128803971308b1138

See more details on using hashes here.

File details

Details for the file seekrai-0.18.0-py3-none-any.whl.

File metadata

  • Download URL: seekrai-0.18.0-py3-none-any.whl
  • Upload date:
  • Size: 94.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for seekrai-0.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71b44a89911b0ac2a746cd76fee1e2bb9f6cb3acd4607a9374edbeb120590a7d
MD5 5b1c129c489d0593887229a5c9880837
BLAKE2b-256 2d46814ffbbc186a9396740fde56f952d325e2a5f76d24636c32f5224b0e4eae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page