Skip to content

Commit

Permalink
Merge pull request #37 from Kiln-AI/main
Browse files Browse the repository at this point in the history
Docs update for v0.6.0 library releases
  • Loading branch information
scosman authored Nov 19, 2024
2 parents c3714c7 + 064b92f commit 7c62146
Show file tree
Hide file tree
Showing 79 changed files with 3,927 additions and 292 deletions.
11 changes: 1 addition & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,10 @@ To run the API server, Studio server, and Studio Web UI with auto-reload for dev

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

### Running the Desktop App
### Running and Building the Desktop App

See the [desktop README](app/desktop/README.md) instructions for running the desktop app locally.

### 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
```

## Tests, Formatting, and Linting

We have a large test suite, and use [ruff](https://github.com/astral-sh/ruff) for linting and formatting.
Expand Down
87 changes: 56 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,31 @@
| CI | [![Build and Test](https://github.com/Kiln-AI/kiln/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/Kiln-AI/kiln/actions/workflows/build_and_test.yml) [![Format and Lint](https://github.com/Kiln-AI/kiln/actions/workflows/format_and_lint.yml/badge.svg)](https://github.com/Kiln-AI/kiln/actions/workflows/format_and_lint.yml) [![Desktop Apps Build](https://github.com/Kiln-AI/kiln/actions/workflows/build_desktop.yml/badge.svg)](https://github.com/Kiln-AI/kiln/actions/workflows/build_desktop.yml) [![Web UI Build](https://github.com/Kiln-AI/kiln/actions/workflows/web_format_lint_build.yml/badge.svg)](https://github.com/Kiln-AI/kiln/actions/workflows/web_format_lint_build.yml) [![Test Count Badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/scosman/57742c1b1b60d597a6aba5d5148d728e/raw/test_count_kiln.json)](https://github.com/Kiln-AI/kiln/actions/workflows/test_count.yml) [![Test Coverage Badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/scosman/57742c1b1b60d597a6aba5d5148d728e/raw/library_coverage_kiln.json)](https://github.com/Kiln-AI/kiln/actions/workflows/test_count.yml) [![Docs](https://github.com/Kiln-AI/Kiln/actions/workflows/build_docs.yml/badge.svg)](https://github.com/Kiln-AI/Kiln/actions/workflows/build_docs.yml) |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/kiln-ai.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/kiln-ai/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/kiln-ai.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/kiln-ai/) |
| Meta | [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![types - Pyright](https://img.shields.io/badge/types-pyright-blue.svg)](https://github.com/microsoft/pyright) [![Docs](https://img.shields.io/badge/docs-pdoc-blue)](https://kiln-ai.github.io/Kiln/kiln_core_docs/index.html) |
| Apps | [![MacOS](https://img.shields.io/badge/MacOS-black?logo=apple)](https://github.com/Kiln-AI/Kiln/releases/latest) [![Windows](https://img.shields.io/badge/Windows-0067b8.svg?logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2Ljc0MiAxNi43NDJ2MTQuMjUzaDE0LjI1M3YtMTQuMjUzek0xLjAwNCAxNi43NDJ2MTQuMjUzaDE0LjI1NnYtMTQuMjUzek0xNi43NDIgMS4wMDR2MTQuMjU2aDE0LjI1M3YtMTQuMjU2ek0xLjAwNCAxLjAwNHYxNC4yNTZoMTQuMjU2di0xNC4yNTZ6Ij48L3BhdGg+Cjwvc3ZnPg==)](https://github.com/Kiln-AI/Kiln/releases/latest) |

# Kiln AI

> Iteratively Build High Quality AI Products
> Build High Quality AI Products with Datasets
## Key Features

- 🚀 **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.
- 🚀 **Intuitive Desktop Apps**: Apps for Windows and MacOS. Anyone on your team can contribute to your datasets & feedback to improve quality, without code.
- 🤝 **Team Collaboration**: Designed for collaboration, with git-based version control for your AI dataset.
- 📊 **Rapid Evaluation**: Compare various models and data-science techniques with no-code tools.
- 🤖 **Synthetic Data Generation**: Generate data with our no-code visual tooling.
- 🔄 **Iterative Improvement**: Continuous dataset improvement with built-in evaluation, RLHF and QA tooling.
- 🧑‍💻 **Hackers Delight**: An open-source Python library and REST API for data scientists and engineers to deeply integrate where needed.
- 🧑‍💻 **Open-Source Library and API**: Our python library and OpenAPI REST API are MIT open source.
- 🔒 **Privacy-First**: We can't see your data. Bring your own API keys or run locally with Ollama.
- 🗃️ **Structured Data**: Build AI tasks which speak JSON. Build training datasets with validated formats, human feedback, issue tracking, and more.
- 💰 **Free**: Our apps are free and our library is open-source.

## Download Kiln Desktop Apps

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

[<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)

<kbd>
<img width="185" alt="Run Screen" src="https://github.com/user-attachments/assets/158efb43-4991-4c19-9e3a-28f61c919892">
</kbd>
<kbd>
<img width="185" alt="Connect Providers Screen" src="https://github.com/user-attachments/assets/b7b5a3b6-0142-4db2-af2d-3310fc583ea9">
</kbd><kbd>
<img width="185" alt="Dataset Screen" src="https://github.com/user-attachments/assets/c5f15c88-9a27-4d7b-81e6-b6350b3cb92c">
</kbd><kbd>
<img width="185" alt="Prompts screen" src="https://github.com/user-attachments/assets/70544362-8420-4a49-9e9f-34a046c837dd">
</kbd>
![Preview of App](https://github.com/user-attachments/assets/65f7a58f-ed96-461a-9c07-1fa5e1dd6b80)

## Install Python Library

Expand All @@ -50,35 +45,65 @@ Our open-source [python library](https://pypi.org/project/kiln-ai/) allows for d
pip install kiln-ai
```

## What is this for?
## Learn More

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.
### Build High Quality AI Products with Datasets

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.
Products don’t naturally have “datasets”, but Kiln helps you create one.

#### Kiln helps your whole team continuously improve your dataset.
Every time you use Kiln, we capture the inputs, outputs, human ratings, feedback, and repairs needed to build high quality models for use in your product. The more you use it, the more data you have.

Our apps make it easy to continuously iterate and improve your dataset. When using the app, it automatically captures all the inputs/outputs/model parameters and everything else you need to reproduce an issue, repair the result, and capture high-quality data for multi-shot prompting or fine-tuning. QA and PM can easily identify issues sooner and help generate the dataset needed to fix the issue.
Your model quality improves automatically as the dataset grows, by giving the models more examples of quality content (and mistakes).

Our apps are extremely user-friendly and designed for non-technical users. This includes one-click to launch, no command line required, no GPU required, and a consumer-grade UI.
If your product goals shift or new bugs are found (as is almost always the case), you can easily iterate the dataset to address issues.

#### Kiln makes it easier to try new models and techniques.
### Collaborate Across Technical and Non-Technical Teams

For experimentation, Kiln includes no-code data-science tools to quickly try a variety of approaches and models in a few clicks.
When building AI products, there’s usually a subject matter expert who knows the problem you are trying to solve, and a different technical team assigned to build the model. Kiln bridges that gap as a collaboration tool.

These tools leverage your dataset, and the quality gets better the more you use Kiln. For example, multi-shot prompting finds the highest-rated results to use as examples.
Subject matter experts can use our easy to use desktop apps to generate structured datasets and ratings, without coding or using technical tools. No command line or GPU required.

Currently, we support about a dozen models and a variety of prompting solutions (few-shot, multi-shot, chain of thought), with plans for more models and complex techniques (fine-tuning, RAG).
Data-scientists can consume the dataset created by subject matter experts, using the UI, or dive deep with our python library.

#### Deep integrations with our library and REST APIs.
QA and PM can easily identify issues sooner and help generate the dataset content needed to fix the issue at the model layer.

If you have a data science team and want to go deeper, our Python library has everything you need. Ingest the Kiln data format into your pipeline. Create custom evaluations. Use Kiln data in notebooks. Build fine-tunes. Extend or replace any part of the pipeline.
The dataset file format is designed to be be used with Git for powerful collaboration and attribution. Many people can contribute in parallel; collisions are avoided using UUIDs, and attribution is captured inside the dataset files. You can even share a dataset on a shared drive, letting completely non-technical team members contribute data and evals without knowing Git.

We also offer [a REST API package](https://pypi.org/project/kiln-server/) for integrating Kiln into your own tools and workflows.
### Compare Models and Techniques Without Code

## Status
There are new models and techniques emerging all the time. Kiln makes it easy to try a variety of approaches, and compare them in a few clicks, without writing code. These can result in higher quality, or improved performance (smaller/cheaper/faster models at the same quality).

Kiln is currently in alpha with plans to enter beta soon.
Our current beta supports:

- Various prompting techniques: basic, few-shot, multi-shot, repair & feedback
- Many models: GPT, Llama, Claude, Gemini, Mistral, Gemma, Phi
- Chain of thought prompting, with optional custom “thinking” instructions

In the future, we plan to add more powerful no-code options like fine tuning, lora, evals, and RAG. For experienced data-scientists, you can create these techniques today using Kiln datasets and our python library.

### Structured Data

We prioritize data correctness, which makes integrating into AI products easier. No data gets into the dataset without first passing validation, which keeps the dataset clean.

Our easy to use schema UI lets you create and use structured schemas, without knowing JSON-schema formating. For technical users, we support any valid JSON-schema for inputs and outputs.

### Powerful Open-source Library and REST API

We have an open-source [python library](https://pypi.org/project/kiln-ai/), and an open-source [REST API](https://pypi.org/project/kiln-server/). You can easily integrate Kiln datasets into your own workflows, build fine tunes, use Kiln in Notebooks, build custom tools, and much more!

The REST API supports OpenAPI, so you can generate client libraries for almost [any](https://github.com/swagger-api/swagger-codegen) [language](https://openapi-generator.tech/docs/generators).

### Privacy

Your data stays completely private and local to your machine. We never collect or have access to:

- Datasets / Training Data
- API keys
- Model inputs/outputs (runs)

You can run completely locally using Ollama, or bring your own keys for OpenAI, OpenRouter, Groq, AWS, etc.

_Note: We collect anonymous usage metrics via Posthog analytics (never including dataset content or PII). This can be blocked with standard ad-blockers._

## Contributing & Development

Expand All @@ -88,7 +113,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for information on how to setup a develop

- 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).
- Desktop App: free to download and use under our [EULA](app/EULA.md), and [source-available](/app). [License](app/LICENSE.txt)
- The Kiln names and logos are trademarks of Chesterfield Laboratories Inc.

Copyright 2024 - Chesterfield Laboratories Inc.
Loading

0 comments on commit 7c62146

Please sign in to comment.