Aisberg SDK for Python - A simple and powerful SDK to interact with the Aisberg API
Project description
Aisberg Python SDK
Aisberg SDK for Python is a robust and easy-to-use library for interacting with the Aisberg API.
It provides synchronous and asynchronous clients, advanced module abstractions, and built-in support for
conversational LLM workflows, collections, embeddings, and more.
Features
- Sync & Async clients: Use with regular scripts or async frameworks
- Auto tool execution for LLM flows (tool calls, results integration)
- Modular architecture: Collections, chat, models, workflows, embeddings, and more
- Strong typing via Pydantic models
- Environment-based configuration (supports
.envfiles and system environment variables) - Context manager support for easy resource management
- Custom tool registration: Easily extend LLM capabilities with your own functions
- Document Parsing: Parse documents into structured data (e.g., JSON, CSV, PNG, PDF, etc.)
Installation
pip install aisberg
Or, for local development:
git clone https://your.git.repo/aisberg.git
cd aisberg
pip install -e .
Quickstart
1. Configure your API key and base URL
You can set them as environment variables, or in a .env file:
AISBERG_API_KEY=...
AISBERG_BASE_URL=https://url
AISBERG_TIMEOUT=... # Optional, default is 180 seconds (3 minutes)
In order to use the Document Parsing feature, you also need to set the S3 credentials - ask the FreePro team for
these:
S3_ACCESS_KEY_ID=...
S3_SECRET_ACCESS_KEY=...
S3_ENDPOINT=https://s3.endpoint
2. Synchronous Usage
from aisberg import AisbergClient
with AisbergClient() as client:
me = client.me.info()
print(me)
chat_response = client.chat.complete(
input="Bonjour, qui es-tu ?",
model="llm-aisberg",
)
print(chat_response.choices[0].message.content)
3. Asynchronous Usage
import asyncio
from aisberg import AisbergAsyncClient
async def main():
async with AisbergAsyncClient() as client:
await client.initialize()
me = await client.me.info()
print(me)
chat_response = await client.chat.complete(
input="Hello, who are you?",
model="llm-aisberg",
)
print(chat_response.choices[0].message.content)
asyncio.run(main())
Modules
client.me— User/account infoclient.chat— Conversational LLM completions and streamingclient.collections— Manage data collectionsclient.embeddings— Encode texts to embeddingsclient.models— Model discovery & infoclient.workflows— Workflow management & executionclient.tools— Register and execute tools for LLM tool callsclient.documents— Document parsing and management
Each module is available both in the sync and async clients with similar APIs.
Tool Calls and Automatic Execution
The SDK supports tool-augmented LLM workflows. Register your own functions for use in chat:
def my_tool(args):
# Custom business logic
return {"result": "tool output"}
client.tools.register("my_tool", my_tool)
response = client.chat.complete(
input="Use the tool please.",
model="llm-aisberg",
tools=[{"name": "my_tool", ...}],
auto_execute_tools=True,
)
Advanced Usage
Custom Configuration
You can override configuration when instantiating the client:
client = AisbergClient(
api_key="...",
base_url="https://url",
timeout=60,
)
Environment Variables Supported
AISBERG_API_KEYAISBERG_BASE_URLAISBERG_TIMEOUT(optional)S3_ACCESS_KEY_ID(for document parsing)(optional)S3_SECRET_ACCESS_KEY(for document parsing)(optional)S3_ENDPOINT(for document parsing)(optional)
Using in a Context Manager
Both clients are context manager compatible:
with AisbergClient() as client:
# Sync usage
...
async with AisbergAsyncClient() as client:
# Async usage
...
License
Private License — Not for public distribution or resale.
For enterprise/commercial use, please contact Mathis Lambert or Free Pro.
Authors
- Mathis Lambert
- Free Pro
Support
For support, bug reports, or feature requests, please contact your technical representative.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aisberg-0.3.1.tar.gz.
File metadata
- Download URL: aisberg-0.3.1.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a7f60e26088e4c7c185d1e3843dcfc3744336824a23d5cb9904ec4c764df1b9
|
|
| MD5 |
9fe26e6922664d2b882f1f207e6c6301
|
|
| BLAKE2b-256 |
cca4d82a5d45d2c2366c40a808efc2188f9d132875c4c3a7701a08f1487fe16d
|
File details
Details for the file aisberg-0.3.1-py3-none-any.whl.
File metadata
- Download URL: aisberg-0.3.1-py3-none-any.whl
- Upload date:
- Size: 41.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2111d0933daa32eae78e93070ee7c207ff4acbd84f3ff27f13568c8a838cb09a
|
|
| MD5 |
f11abf05176195694b05e256d9c9e7d0
|
|
| BLAKE2b-256 |
4cbab5e02fa2bd17e09e5e2391c78b67c749866d0681e1e9e77bf12445cdb8f4
|