Official Python SDK for the Codini AI API
Project description
codini
Official Python SDK for the Codini AI API.
Build, manage, and execute AI flows programmatically. Zero dependencies.
Install
pip install codini
Quick Start
from codini import CodiniClient
codini = CodiniClient("your-api-key")
# Execute a flow
result = codini.sync_execute(1, input="Hello")
print(result["data"]["output"])
# Build a flow programmatically
project = codini.projects.create("My App")
flow = codini.flows.create("Chat Agent", project["data"]["id"])
nodes = codini.flows.add_nodes(flow["data"]["id"], [
{"type": "onMessageTrigger", "position": {"x": 0, "y": 200}},
{"type": "create-agent", "position": {"x": 300, "y": 200}, "params": {
"name": "Assistant", "model": "gpt-4o", "type": "auto",
"role description": "Helpful assistant"
}},
{"type": "replyToChat", "position": {"x": 600, "y": 200}},
])
trigger, agent, reply = nodes["data"]["nodes"]
codini.flows.add_edges(flow["data"]["id"], [
{"source": trigger["id"], "target": agent["id"]},
{"source": agent["id"], "target": reply["id"]},
])
API
Execution
codini.create_ticket(flow_id=1, use_websocket=True)
codini.sync_execute(flow_id, input="Hello", variables={"lang": "en"})
codini.async_execute(flow_id, input="Hello")
codini.get_run_status(run_id)
codini.poll_run_status(run_id, interval=2.0, max_attempts=150)
Projects
codini.projects.list()
codini.projects.create("My App", description="Optional")
codini.projects.get(project_id)
codini.projects.update(project_id, name="New Name")
codini.projects.delete(project_id)
Flows
codini.flows.list() # All flows
codini.flows.list(project_id=38) # Flows in a project
codini.flows.get(flow_id)
codini.flows.create("My Flow", project_id=38)
codini.flows.update_details(flow_id, name="New Name")
codini.flows.delete(flow_id)
# Programmatic building
codini.flows.add_nodes(flow_id, [{...}])
codini.flows.add_edges(flow_id, [{...}])
codini.flows.build(flow_id, nodes, edges)
# Node catalog
codini.flows.list_node_types()
codini.flows.get_node_definitions(["create-agent", "chat-memory"])
# Full canvas save
codini.flows.save(flow_id, nodes=[...], edges=[...])
Secrets
codini.secrets.list()
codini.secrets.create("my_key", "my_value")
codini.secrets.get("my_key")
codini.secrets.delete("my_key")
Zero Dependencies
Uses only Python standard library (urllib, json). No requests needed.
Requirements
Python 3.8+
License
ISC
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
codini-0.2.5.tar.gz
(4.8 kB
view details)
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 codini-0.2.5.tar.gz.
File metadata
- Download URL: codini-0.2.5.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3f5fb79897d91263404562a998d5337632a1d70bd5e63575a3bc3d6271ef617
|
|
| MD5 |
ad3270b99f978d95456a13154e50b4ad
|
|
| BLAKE2b-256 |
455d9b22a31a332690e28d4f1802d8d3c8f9c9f61b87668286ba3951174048e9
|
File details
Details for the file codini-0.2.5-py3-none-any.whl.
File metadata
- Download URL: codini-0.2.5-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0725d4acb914085505eb110f4851539ff2cb94eced6a0276c702da681d7099d
|
|
| MD5 |
4fe2715a54e8d70f3e8af3b278b14c6c
|
|
| BLAKE2b-256 |
267128662ad36df82da1e97cd9098c38878e114d942ca91b49f39ffbbe11f7e6
|