Skip to content

kitefishai/python-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python SDK

Official Python SDK for KiteFishAI — sovereign AI models for regulated Indian enterprises.

Installation

pip install kitefishai

Quick Start

import kitefishai

client = kitefishai.Client(api_key="kf-...")

# Or use environment variable: KITEFISH_API_KEY

Chat

# Non-streaming
response = client.chat.complete(
    model="kf-reasoning-10b",
    messages=[
        {"role": "user", "content": "Summarise the DPDP Act 2023."}
    ],
    max_tokens=512,
)
print(response.choices[0].message.content)
print(f"Tokens used: {response.usage.total_tokens}")
# Streaming
with client.chat.stream(
    model="kf-reasoning-10b",
    messages=[{"role": "user", "content": "Explain claim settlement process."}],
) as stream:
    for chunk in stream:
        print(chunk.delta, end="", flush=True)

full_text = stream.get_final_text()
# With system prompt
response = client.chat.complete(
    model="kf-reasoning-10b",
    system="You are a BFSI compliance assistant. Respond in formal English.",
    messages=[{"role": "user", "content": "What are KYC requirements?"}],
)

Embeddings

result = client.embeddings.create(
    model="minnow-em-v1",
    input=["query: insurance renewal process", "passage: Renewal can be done..."],
)

for item in result.data:
    print(f"[{item.index}] dim={len(item.embedding)}")
# MRL — request smaller dimensions (896 / 512 / 256 / 128 / 64)
result = client.embeddings.create(
    model="minnow-em-v1",
    input="query: what is DPDP?",
    dimensions=256,
)

Error Handling

import kitefishai

try:
    response = client.chat.complete(model="kf-reasoning-10b", messages=[...])
except kitefishai.AuthenticationError:
    print("Invalid API key")
except kitefishai.RateLimitError:
    print("Rate limit hit — back off and retry")
except kitefishai.APIError as e:
    print(f"API error {e.status_code}: {e.message}")
except kitefishai.BaseError as e:
    print(f"SDK error: {e}")

Context Manager

with kitefishai.KiteFishAI(api_key="kf-...") as client:
    response = client.chat.complete(...)
# Connection closed automatically

Configuration

Parameter Default Description
api_key KITEFISH_API_KEY env var Your API key
base_url https://api.kitefishai.com/v1 Override for on-prem deployments
timeout 60.0 Request timeout in seconds
max_retries 2 Retries on timeout/network errors
# On-prem / air-gapped deployment
client = kitefishai.KiteFishAI(
    api_key="kf-...",
    base_url="https://your-internal-host/v1",
    timeout=120.0,
)

Requirements

  • Python 3.9+
  • httpx >= 0.25.0

License

MIT — see LICENSE

About

Official Python SDK for KiteFishAI — sovereign AI models for regulated Indian enterprises.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages