Nodetool is a no-code development environment for Artificial Intelligence, enabling the simple and intuitive creation of powerful AI workflows and their integration into existing applications.
Project description
nodetool api
Overview
Nodetool is a no-code development environment for Artificial Intelligence, enabling the simple and intuitive creation of powerful AI workflows and their integration into existing applications. Utilizing a node-based user interface, users can construct complex, multimodal applications without any programming knowledge. Nodetool facilitates the seamless integration of state-of-the-art AI models, allowing the generation and editing of multimedia content such as images, texts, audio, and video within a single workflow.
Nodetool opens up a creative and playful access to current technologies, supporting both beginners and experienced developers in the fields of content creation, data analysis, and automation. It enables a broad audience to benefit from the advantages of artificial intelligence by visualizing workflows and simplifying complex installation requirements, making AI application development accessible to novices and seasoned users alike.
Key Features
- No-Code AI Development: Create AI workflows without deep programming knowledge.
- Model Agnostic: Easily integrate new nodes and state-of-the-art AI models from OpenAI, Anthropic, Replicate, HuggingFace, ComfyUI, Llama, Mistral, and more.
- Multimedia Content Handling: Generate and edit images, texts, audio, and video in one workflow.
- Open and Transparent: Aims to make the execution and training of AI models more transparent and accessible.
- Asset management: Manage and organize your assets (images, videos, audio files) within the application
Installation
pip install nodetool
Usage
To get started with Nodetool:
nodetool setup
Execution
- Nodetool Editor: Install the Nodetool Editor for an intuitive, graphical interface to design and manage workflows.
- Command Line Execution: Alternatively, execute workflows directly from the command line for automation and scripting purposes.
Implementing Nodes
New nodes can be added by subclassing BaseNode.
Node properties are defined using class fields with type annotations.
The node operation is defined in the process method, which takes a context object, allowing I/O amongst other operations.
class MyNode(BaseNode):
a: str = ""
b: str = ""
async def process(self, context: ProcessingContext) -> str:
return self.a + self.b
Environment Variables
Configuration can be passes as environment variables, or from configuration
files. A dot env (.env) file will be read if present in the working dirctory.
General Configuration
| Variable | Description | Default |
|---|---|---|
ASSET_BUCKET |
S3 bucket for storing asset files | "images" |
TEMP_BUCKET |
S3 bucket for storing temporary files | "temp" |
COMFY_FOLDER |
Location of ComfyUI folder (optional) | None |
ENV |
Environment mode ("development" or "production") |
"development" |
LOG_LEVEL |
Logging level | "INFO" |
AWS_REGION |
AWS region | "us-east-1" |
NODETOOL_API_URL |
URL of the Nodetool API server | "http://localhost:8000/api" |
Database Configuration
| Variable | Description | Default |
|---|---|---|
DB_PATH |
Path to the SQLite database file | "./data/nodetool.db" |
AWS Configuration
| Variable | Description | Default |
|---|---|---|
AWS_ACCESS_KEY_ID |
AWS access key ID | None |
AWS_SECRET_ACCESS_KEY |
AWS secret access key | None |
DYNAMO_ENDPOINT_URL |
DynamoDB endpoint URL (for local development) | None |
DYNAMO_REGION |
DynamoDB region | AWS_REGION |
DYNAMO_ACCESS_KEY_ID |
DynamoDB access key ID | AWS_ACCESS_KEY_ID |
DYNAMO_SECRET_ACCESS_KEY |
DynamoDB secret access key | AWS_SECRET_ACCESS_KEY |
S3_ENDPOINT_URL |
S3 endpoint URL (for local development) | None |
S3_ACCESS_KEY_ID |
S3 access key ID | AWS_ACCESS_KEY_ID |
S3_SECRET_ACCESS_KEY |
S3 secret access key | AWS_SECRET_ACCESS_KEY |
S3_REGION |
S3 region | AWS_REGION |
API Keys and Tokens
| Variable | Description |
|---|---|
OPENAI_API_KEY |
OpenAI API key (optional) |
HF_TOKEN |
Hugging Face token (optional) |
REPLICATE_API_TOKEN |
Replicate API token (optional) |
CHROMA_TOKEN |
Chroma token |
NGROK_TOKEN |
ngrok token |
OAuth Configuration
| Variable | Description |
|---|---|
GOOGLE_CLIENT_ID |
Google OAuth client ID |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret |
Other Configuration
| Variable | Description |
|---|---|
WORKER_URL |
URL of the worker server |
CHROMA_URL |
URL of the Chroma server |
Setup Files
The following files are used for storing settings and secrets:
settings.yaml: Stores general settingssecrets.yaml: Stores secret values (API keys, tokens, etc.)
The location of these files depends on the operating system:
- Linux/macOS:
~/.config/nodetool/ - Windows:
%APPDATA%\nodetool\
If the files don't exist, default values will be used.
API Endpoints
| Endpoint | Method | Description | Query Key | Query Value | Body Key | Body Value |
|---|---|---|---|---|---|---|
/api/assets/ |
GET | Returns all assets for a given user or workflow. | parent_id |
string, nullable | - | - |
content_type |
string, nullable | - | - | |||
cursor |
string, nullable | - | - | |||
page_size |
number, nullable | - | - | |||
/api/assets/ |
POST | Create a new asset. | - | - | workflow_id |
string, nullable |
| - | - | parent_id |
string, nullable | |||
| - | - | name |
string | |||
| - | - | content_type |
string | |||
/api/assets/{id} |
GET | Returns the asset for the given id. | - | - | - | - |
/api/assets/{id} |
PUT | Updates the asset for the given id. | - | - | name |
string, nullable |
| - | - | parent_id |
string | |||
| - | - | status |
string, nullable | |||
| - | - | content_type |
string, nullable | |||
/api/assets/{id} |
DELETE | Deletes the asset for the given id. | - | - | - | - |
/api/jobs/{id} |
GET | Returns the status of a job. | - | - | - | - |
/api/jobs/ |
GET | Returns all assets for a given user or workflow. | workflow_id |
string, nullable | - | - |
cursor |
string, nullable | - | - | |||
page_size |
number, nullable | - | - | |||
/api/jobs/ |
POST | Run | - | - | job_type |
string, default: 'workflow' |
| - | - | params |
unknown | |||
| - | - | workflow_id |
string | |||
| - | - | user_id |
string | |||
| - | - | auth_token |
string | |||
| - | - | env |
Record<string, never>, nullable | |||
| - | - | graph |
Graph | |||
/api/auth/validate-token |
POST | Checks if the given token is valid. | - | - | token |
string |
/api/auth/login |
POST | Logs a user in with one time passcode. Returns an auth token that can be used for future requests. | - | - | email |
string |
| - | - | passcode |
string | |||
/api/auth/signup |
POST | Creates a new user for given email address. Returns an auth token that can be used for future requests. | - | - | email |
string |
/api/auth/oauth/login |
POST | Oauth Login | - | - | redirect_uri |
string |
| - | - | provider |
OAuthProvider | |||
/api/auth/oauth/callback |
POST | Oauth Callback | - | - | provider |
OAuthProvider |
| - | - | state |
string | |||
| - | - | authorization_response |
string | |||
| - | - | redirect_uri |
string | |||
/api/nodes/dummy |
GET | Returns a dummy node. | - | - | - | - |
/api/nodes/metadata |
GET | Returns a list of all node metadata. | - | - | - | - |
| `/api
Contribution
We welcome contributions from the community! To contribute to Nodetool, please adhere to our contribution guidelines. Your efforts help us improve and evolve this project.
License
Nodetool is made available under the terms of the GPL3 License, promoting open-source collaboration and sharing.
Contact
For inquiries, suggestions, or contributions, please reach out to the core team:
- Matthias Georgi
- David Buerer
- Severin Schwanck
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 nodetool-0.1.27.tar.gz.
File metadata
- Download URL: nodetool-0.1.27.tar.gz
- Upload date:
- Size: 10.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6ae925726b6563a7e38c9b51ba56d57f424df0cae51a7f9f2bc09c84a8922d3
|
|
| MD5 |
1b38dbe3f089454080b3294cad97195e
|
|
| BLAKE2b-256 |
9e4cbba30fe9909985b3d3404d90ed71b72658a199a0dfe802517414eea7813b
|
File details
Details for the file nodetool-0.1.27-py3-none-any.whl.
File metadata
- Download URL: nodetool-0.1.27-py3-none-any.whl
- Upload date:
- Size: 11.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbaa8e1faf0bc21bda8f3b69377e12644111b56fdb11530b7d6fd7259c6b1cc3
|
|
| MD5 |
11aaa1790655492a70064c3ef109a0af
|
|
| BLAKE2b-256 |
ca8d98bf990b7c372eeaa04e271f6872db920ba8c89eeb55c1159d7857b81fc2
|