Elektric
Docs

Python SDK

Signatures and examples for the elektric-ai distribution.

#Install

Shell
python -m pip install elektric-ai

#Client

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

Python
client.chat(options): promise<chat_response>
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureChatRequest: 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.

Python
client.conversations.get(input)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureconversationId; 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.

Python
client.memory.update({ user_id, memory_id, summary })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureuserId 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.

Python
client.knowledge.add(input)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signaturefile; 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.

Python
client.files.upload(input)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signaturefile; 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.

Python
client.images.generate({ prompt, size?, format?, signal? })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureGenerate 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.

Python
client.audio.transcribe(input)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureTranscriptionRequest 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.

Python
client.video.generate({ prompt, image?, duration?, aspect_ratio?, idempotency_key?, signal? })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureAnalyze requires file/instruction; generate requires prompt.

Returns: Analysis / Job. Errors: standard errors plus resource-specific not-found/expired codes.

#embeddings.create

input: string|string[].

Python
client.embeddings.create({ input, profile?, signal? })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureinput: string|string[].

Returns: EmbeddingResponse. Errors: standard errors plus resource-specific not-found/expired codes.

#realtime.connect

input/output: text and/or audio arrays.

Python
client.realtime.connect({ input, output, signal? })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureinput/output: text and/or audio arrays.

Returns: RealtimeSession. Errors: standard errors plus resource-specific not-found/expired codes.

#assets.get/download/delete

assetId: string.

Python
client.assets.download(asset_id)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureassetId: string.

Returns: Asset / bytes / void. Errors: standard errors plus resource-specific not-found/expired codes.

#jobs.get/wait/cancel

jobId and optional wait policy.

Python
client.jobs.wait(job_id, { timeout_ms?, signal?, initial_poll_ms?, max_poll_ms? })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signaturejobId 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.

Python
client.requests.list(input?)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureOptional 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.

Python
client.usage.timeseries(input?)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureOptional 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.

Python
client.billing.transactions.list(input?)
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureOptional type, from, to, limit, cursor.

Returns: Billing summary/list. Errors: standard errors plus resource-specific not-found/expired codes.

#limits.get

No parameters.

Python
client.limits.get()
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signatureNo parameters.

Returns: LimitsResponse. Errors: standard errors plus resource-specific not-found/expired codes.

#tool

name and JSON schema; optional description.

Python
client.tool<t>({ name, description?, input_schema })
ParameterTypeRequiredDefaultDescription
inputOperation-specificSee signaturename 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.