Python SDK
Signatures and examples for the elektric-ai distribution.
#Install
python -m pip install elektric-ai#Client
from elektric import Elektric
client = Elektric(api_key=os.environ["ELEKTRIC_API_KEY"])#Methods
#chat / chat.stream
ChatRequest: message/messages; optional userId, conversationId, tools, signal.
client.chat(options): promise<chat_response>| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | ChatRequest: message/messages; optional userId, conversationId, tools, signal. |
Returns: ChatResponse / stream events. Errors: standard errors plus resource-specific not-found/expired codes.
#conversations.get/list/delete
conversationId; list requires userId; optional cursor and limits.
client.conversations.get(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | conversationId; list requires userId; optional cursor and limits. |
Returns: Conversation / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#memory.list/get/update/delete
userId and memoryId; update requires summary.
client.memory.update({ user_id, memory_id, summary })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | userId and memoryId; update requires summary. |
Returns: Memory / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#knowledge.add/list/get/delete
file; optional name/mediaType; get/delete use sourceId.
client.knowledge.add(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | file; optional name/mediaType; get/delete use sourceId. |
Returns: KnowledgeSource / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#files.upload/get/delete
file; optional mediaType/filename; get/delete use fileId.
client.files.upload(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | file; optional mediaType/filename; get/delete use fileId. |
Returns: ElektricFile / void. Errors: standard errors plus resource-specific not-found/expired codes.
#images.generate/edit
Generate requires prompt; edit requires image and instruction.
client.images.generate({ prompt, size?, format?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Generate requires prompt; edit requires image and instruction. |
Returns: Image response. Errors: standard errors plus resource-specific not-found/expired codes.
#audio.transcribe/speech
TranscriptionRequest or SpeechRequest.
client.audio.transcribe(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | TranscriptionRequest or SpeechRequest. |
Returns: Audio response. Errors: standard errors plus resource-specific not-found/expired codes.
#video.analyze/generate
Analyze requires file/instruction; generate requires prompt.
client.video.generate({ prompt, image?, duration?, aspect_ratio?, idempotency_key?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Analyze requires file/instruction; generate requires prompt. |
Returns: Analysis / Job. Errors: standard errors plus resource-specific not-found/expired codes.
#embeddings.create
input: string|string[].
client.embeddings.create({ input, profile?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | input: string|string[]. |
Returns: EmbeddingResponse. Errors: standard errors plus resource-specific not-found/expired codes.
#realtime.connect
input/output: text and/or audio arrays.
client.realtime.connect({ input, output, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | input/output: text and/or audio arrays. |
Returns: RealtimeSession. Errors: standard errors plus resource-specific not-found/expired codes.
#assets.get/download/delete
assetId: string.
client.assets.download(asset_id)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | assetId: string. |
Returns: Asset / bytes / void. Errors: standard errors plus resource-specific not-found/expired codes.
#jobs.get/wait/cancel
jobId and optional wait policy.
client.jobs.wait(job_id, { timeout_ms?, signal?, initial_poll_ms?, max_poll_ms? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | jobId and optional wait policy. |
Returns: ElektricJob. Errors: standard errors plus resource-specific not-found/expired codes.
#requests.get/list
Optional status, userId, conversationId, from, to, limit, cursor.
client.requests.list(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional status, userId, conversationId, from, to, limit, cursor. |
Returns: Request log/list. Errors: standard errors plus resource-specific not-found/expired codes.
#usage.get/timeseries
Optional half-open from/to range.
client.usage.timeseries(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional half-open from/to range. |
Returns: Usage summary/timeseries. Errors: standard errors plus resource-specific not-found/expired codes.
#billing.get/transactions.list
Optional type, from, to, limit, cursor.
client.billing.transactions.list(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional type, from, to, limit, cursor. |
Returns: Billing summary/list. Errors: standard errors plus resource-specific not-found/expired codes.
#limits.get
No parameters.
client.limits.get()| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | No parameters. |
Returns: LimitsResponse. Errors: standard errors plus resource-specific not-found/expired codes.
#tool
name and JSON schema; optional description.
client.tool<t>({ name, description?, input_schema })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | name and JSON schema; optional description. |
Returns: ElektricTool<T>. Errors: standard errors plus resource-specific not-found/expired codes.
#Defaults and errors
The client reads ELEKTRIC_API_KEY and defaults to https://elektric.ai. Retain Request IDs and branch on typed codes.