Skip to content

Commit

Permalink
Add our license draft.
Browse files Browse the repository at this point in the history
  • Loading branch information
scosman committed Nov 4, 2024
1 parent 9d4d0a9 commit 8ec6bdb
Show file tree
Hide file tree
Showing 8 changed files with 134 additions and 40 deletions.
29 changes: 29 additions & 0 deletions CLA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Contributor License Agreement

The following terms are used throughout this agreement:

You - the person or legal entity including its affiliates asked to accept this agreement. An affiliate is any entity that controls or is controlled by the legal entity, or is under common control with it.

Project - is an umbrella term that refers to any and all Chesterfield Laboratories Inc. open source projects.

Contribution - any type of work that is submitted to a Project, including any modifications or additions to existing work.

Submitted - conveyed to a Project via a pull request, commit, issue, or any form of electronic, written, or verbal communication with Chesterfield Laboratories Inc., contributors or maintainers.

## 1. Grant of Copyright License.

Subject to the terms and conditions of this agreement, You grant to the Projects’ maintainers, contributors, users and to Chesterfield Laboratories Inc. a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your contributions and such derivative works. Except for this license, You reserve all rights, title, and interest in your contributions.

## 2. Grant of Patent License.

Subject to the terms and conditions of this agreement, You grant to the Projects’ maintainers, contributors, users and to Chesterfield Laboratories Inc. a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your contributions, where such license applies only to those patent claims licensable by you that are necessarily infringed by your contribution or by combination of your contribution with the project to which this contribution was submitted.

If any entity institutes patent litigation - including cross-claim or counterclaim in a lawsuit - against You alleging that your contribution or any project it was submitted to constitutes or is responsible for direct or contributory patent infringement, then any patent licenses granted to that entity under this agreement shall terminate as of the date such litigation is filed.

## 3. Source of Contribution.

Your contribution is either your original creation, based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, or you have clearly identified the source of the contribution and any license or other restriction (like related patents, trademarks, and license agreements) of which you are personally aware.

## References

Adapted from the Github CLA, under the CC-BY-SA 4.0 license.
58 changes: 58 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Contributing to Kiln

## Issues and Bug Tracking

We use [GitHub issues](https://github.com/Kiln-AI/Kiln/issues) for tracking issues, bugs, and feature requests.

## Contributing

Contributors must agree to the [contributor license agreement](CLA.md).

## Development Environment Setup

We use [uv](https://github.com/astral-sh/uv) to manage the Python environment and dependencies, and npm to manage the web UI.

```
# First install uv: https://github.com/astral-sh/uv
uv sync
cd app/web_ui
# install Node if you don't have it already
npm install
```

### Running Development Servers

Running the web-UI and Python servers separately is useful for development, as both can hot-reload.

To run the API server, Studio server, and Studio Web UI with auto-reload for development:

1. In your first terminal:

```bash
uv run python -m app.desktop.dev_server
```

2. In a second terminal, navigate to the web UI directory and start the dev server:

```bash
cd app/web_ui
npm run dev --
```

3. Open the app: http://localhost:5173/run

### Running the Desktop App

Running the desktop app without building an executable:

- First, build the web UI from the `app/web_ui` directory: `npm run build`
- Then run the desktop app: `uv run python -m app.desktop.desktop`

### Building the Desktop App

Typically building desktop apps are done in a CI/CD pipeline, but if you need to build the desktop app locally, you can do so with:

```bash
cd app/desktop
uv run ./build_desktop_app.sh
```
54 changes: 19 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@

# Kiln AI

> Iteratively Build High Quality ML Agents with Data
> Iteratively Build High Quality AI Products
Kiln includes:
## Key Features

- A data platform for teams to collaborate on tasks, goals, evaluations, training data, and more. Designed for Git, providing familiar and rich tooling.
- Easy-to-use desktop apps, enabling everyone to continuously contribute to your dataset and improve quality (QA, PM, labelers, subject matter experts, etc.). One-click launch, no command line or GPU required.
- No-code data-science tools to quickly evaluate a variety of foundation models and AI techniques. Currently, we support about a dozen models and a variety of prompting solutions (few-shot, multi-shot, chain of thought), with plans for more (fine-tuning, RAG).
- An open-source Python library and REST API for data scientists and engineers to deeply integrate where needed.
- Completely private: Kiln runs locally, and we never have access to your dataset. Bring your own keys, or run locally with Ollama.
- 🚀 **One-Click Desktop Apps**: Apps for Windows and MacOS. Anyone on your team can contribute to your datasets and improve quality.
- 🔒 **Privacy-First**: Your data stays local - bring your own API keys or run locally with Ollama.
- 🤝 **Team Collaboration**: Designed for collaboration, with git-based version control for your ML dataset.
- 📊 **Rapid Evaluation**: Compare various models and data-science techniques with no-code tools.
- 🔄 **Iterative Development**: Continuous dataset improvement with built-in QA tools
- 🧑‍💻 **Hackers Delight**: An open-source Python library and REST API for data scientists and engineers to deeply integrate where needed.

<kbd>
<img width="185" alt="Run Screen" src="https://github.com/user-attachments/assets/158efb43-4991-4c19-9e3a-28f61c919892">
Expand All @@ -33,12 +34,11 @@ Kiln includes:
<img width="185" alt="Prompts screen" src="https://github.com/user-attachments/assets/70544362-8420-4a49-9e9f-34a046c837dd">
</kbd>

## Download Kiln Studio App

## Download Kiln Desktop Apps

[<img width="190" alt="Download button" src="https://github.com/user-attachments/assets/09874d7a-4873-4bb7-81c8-c3939206dc81">](https://github.com/Kiln-AI/Kiln/releases/latest)

The Kiln Studio desktop app is a free download, available on [MacOS and Windows](https://github.com/Kiln-AI/Kiln/releases/latest).
The Kiln desktop app is a free download, available on [MacOS and Windows](https://github.com/Kiln-AI/Kiln/releases/latest).

## Install Python Library

Expand All @@ -48,7 +48,7 @@ The Kiln Studio desktop app is a free download, available on [MacOS and Windows]

## What is this for?

Kiln AI is for building high quality ML agents for products. What makes product development different than standard data science is that isn’t not static; no perfect dataset exists to learn from. Products are constantly evolving; bugs emerge from users, product goals change, new use-cases are added.
Kiln AI is for building high quality ML agents for products. What makes product development different than standard data science is that it's not static; no perfect dataset exists to learn from. Products are constantly evolving; bugs emerge from users, product goals change, new use-cases are added.

To solve this, Kiln makes it easy for teams to iteratively collaborate on high quality datasets, and quickly evaluate a range of AI foundation models and techniques.

Expand Down Expand Up @@ -76,31 +76,15 @@ We also offer [a REST API package](https://pypi.org/project/kiln-server/) for in

Kiln is currently in alpha with plans to enter beta soon.

## License

We’re working out our license and will have it sorted soon. The plan is that the core library and REST API will be open source, so there’s zero lock-in. The desktop app will be source-available and free (as in beer).

## Development Commands

These are only needed if you want to contribute to Kiln. If you just want to use Kiln, see the instructions above for downloading the desktop app or installing the Python library.

We use [uv](https://github.com/astral-sh/uv) to manage the Python environment and dependencies, and npm to manage the web UI.

```
# First install uv: https://github.com/astral-sh/uv
uv sync
cd app/web_ui
# install Node if you don't have it already
npm install
```
## Contributing & Development

Run the API server, Studio server, and Studio Web UI with auto-reload for development:
See [CONTRIBUTING.md](CONTRIBUTING.md) for information on how to setup a development environment and contribute to Kiln.

- Run the Python server: `uv run python -m app.desktop.dev_server`
- Run the Web UI from the `app/web_ui` directory: `npm run dev --`
- Open the app: http://localhost:5173/run
## Licenses & Trademarks

Running the desktop app without building an executable:
- Python Library: [MIT License](libs/core/LICENSE.txt)
- Python REST Server/API: [MIT License](libs/server/LICENSE.txt)
- Desktop App: Available as a free download under our EULA. The source code is source-available, and under a [proprietary license](app/LICENSE.txt).
- The Kiln names and logos are trademarks of Chesterfield Laboratories Inc.

- First, build the web UI from the `app/web_ui` directory: `npm run build`
- Then run the desktop app: `uv run python -m app.desktop.desktop`
Copyright 2024 - Chesterfield Laboratories Inc.
6 changes: 5 additions & 1 deletion app/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

Copyright 2024 - Chesterfield Laboratories Inc.

All rights reserved.

Copyright (c) Steve Cosman, Chesterfield Laboratories Inc.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13 changes: 11 additions & 2 deletions libs/core/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@

All rights reserved.

Copyright (c) Steve Cosman, Chesterfield Laboratories Inc.
This license applies only to the software in the libs/core directory.

=======================================================

Copyright 2024 - Chesterfield Laboratories Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1 change: 1 addition & 0 deletions libs/core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ authors = [
{name = "Steve Cosman, Chesterfield Laboratories Inc", email = "[email protected]"}
]
classifiers = [
"License :: OSI Approved :: MIT License",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
12 changes: 10 additions & 2 deletions libs/server/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@

All rights reserved.
This license applies only to the software in the libs/server directory.

Copyright (c) Steve Cosman, Chesterfield Laboratories Inc.
=======================================================

Copyright 2024 - Chesterfield Laboratories Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1 change: 1 addition & 0 deletions libs/server/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ authors = [
]
classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand Down

0 comments on commit 8ec6bdb

Please sign in to comment.