You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
01/README.md

167 lines
7.0 KiB

10 months ago
<h1 align="center"></h1>
<p align="center">
10 months ago
<a href="https://discord.gg/Hvz9Axh84z"><img alt="Discord" src="https://img.shields.io/discord/1146610656779440188?logo=discord&style=social&logoColor=black"/></a>
10 months ago
<br>
<br>
<strong>The open-source language model computer.</strong><br>
<br><a href="https://changes.openinterpreter.com">Get Updates</a> | <a href="https://01.openinterpreter.com/">Documentation</a><br>
10 months ago
</p>
10 months ago
<div align="center">
| [中文版](docs/README_CN.md) | [日本語](docs/README_JA.md) | [English](README.md) |
10 months ago
</div>
10 months ago
<br>
10 months ago
![OI-O1-BannerDemo-2](https://www.openinterpreter.com/OI-O1-BannerDemo-3.jpg)
10 months ago
10 months ago
We want to help you build. [Apply for 1-on-1 support.](https://0ggfznkwh4j.typeform.com/to/kkStE8WF)
10 months ago
<br>
9 months ago
> [!IMPORTANT]
9 months ago
> This experimental project is under rapid development and lacks basic safeguards. Until a stable `1.0` release, only run this repository on devices without sensitive information or access to paid services.
9 months ago
>
9 months ago
> **A substantial rewrite to address these concerns and more, including the addition of [RealtimeTTS](https://github.com/KoljaB/RealtimeTTS) and [RealtimeSTT](https://github.com/KoljaB/RealtimeSTT), is occurring [here](https://github.com/KillianLucas/01-rewrite/tree/main).**
10 months ago
<br>
**The 01 Project** is building an open-source ecosystem for AI devices.
10 months ago
Our flagship operating system can power conversational devices like the Rabbit R1, Humane Pin, or [Star Trek computer](https://www.youtube.com/watch?v=1ZXugicgn6U).
10 months ago
10 months ago
We intend to become the GNU/Linux of this space by staying open, modular, and free.
10 months ago
<br>
# Software
10 months ago
```shell
10 months ago
git clone https://github.com/OpenInterpreter/01 # Clone the repository
cd 01/software # CD into the source directory
10 months ago
```
10 months ago
<!-- > Not working? Read our [setup guide](https://docs.openinterpreter.com/getting-started/setup). -->
10 months ago
```shell
10 months ago
brew install portaudio ffmpeg cmake # Install Mac OSX dependencies
poetry install # Install Python dependencies
export OPENAI_API_KEY=sk... # OR run `poetry run 01 --local` to run everything locally
poetry run 01 # Runs the 01 Light simulator (hold your spacebar, speak, release)
10 months ago
```
12 months ago
<!-- > For a Windows installation, read our [setup guide](https://docs.openinterpreter.com/getting-started/setup#windows). -->
12 months ago
<br>
**The [RealtimeTTS](https://github.com/KoljaB/RealtimeTTS) and [RealtimeSTT](https://github.com/KoljaB/RealtimeSTT) libraries in the incoming 01-rewrite are thanks to the state-of-the-art voice interface work of [Kolja Beigel](https://github.com/KoljaB). Please star those repos and consider contributing to / utilizing those projects!**
10 months ago
# Hardware
10 months ago
- The **01 Light** is an ESP32-based voice interface. Build instructions are [here](https://github.com/OpenInterpreter/01/tree/main/hardware/light). A list of what to buy [here](https://github.com/OpenInterpreter/01/blob/main/hardware/light/BOM.md).
- It works in tandem with the **01 Server** ([setup guide below](https://github.com/OpenInterpreter/01/blob/main/README.md#01-server)) running on your home computer.
- **Mac OSX** and **Ubuntu** are supported by running `poetry run 01` (**Windows** is supported experimentally). This uses your spacebar to simulate the 01 Light.
10 months ago
10 months ago
**We need your help supporting & building more hardware.** The 01 should be able to run on any device with input (microphone, keyboard, etc.), output (speakers, screens, motors, etc.), and an internet connection (or sufficient compute to run everything locally). [Contribution Guide →](https://github.com/OpenInterpreter/01/blob/main/CONTRIBUTING.md)
10 months ago
10 months ago
<br>
10 months ago
# What does it do?
10 months ago
The 01 exposes a speech-to-speech websocket at `localhost:10001`.
10 months ago
If you stream raw audio bytes to `/` in [Streaming LMC format](https://docs.openinterpreter.com/guides/streaming-response), you will receive its response in the same format.
10 months ago
Inspired in part by [Andrej Karpathy's LLM OS](https://twitter.com/karpathy/status/1723140519554105733), we run a [code-interpreting language model](https://github.com/OpenInterpreter/open-interpreter), and call it when certain events occur at your computer's [kernel](https://github.com/OpenInterpreter/01/blob/main/software/source/server/utils/kernel.py).
10 months ago
The 01 wraps this in a voice interface:
10 months ago
10 months ago
<br>
<img width="100%" alt="LMC" src="https://github.com/OpenInterpreter/01/assets/63927363/52417006-a2ca-4379-b309-ffee3509f5d4"><br><br>
10 months ago
# Protocols
10 months ago
10 months ago
## LMC Messages
10 months ago
To communicate with different components of this system, we introduce [LMC Messages](https://docs.openinterpreter.com/protocols/lmc-messages) format, which extends OpenAIs messages format to include a "computer" role:
https://github.com/OpenInterpreter/01/assets/63927363/8621b075-e052-46ba-8d2e-d64b9f2a5da9
10 months ago
## Dynamic System Messages
10 months ago
Dynamic System Messages enable you to execute code inside the LLM's system message, moments before it appears to the AI.
10 months ago
```python
# Edit the following settings in Profiles
10 months ago
interpreter.system_message = r" The time is {{time.time()}}. " # Anything in double brackets will be executed as Python
10 months ago
interpreter.chat("What time is it?") # It will know, without making a tool/API call
10 months ago
```
10 months ago
# Guides
## 01 Server
To run the server on your Desktop and connect it to your 01 Light, run the following commands:
```shell
brew install ngrok/ngrok/ngrok
ngrok authtoken ... # Use your ngrok authtoken
poetry run 01 --server --expose
```
The final command will print a server URL. You can enter this into your 01 Light's captive WiFi portal to connect to your 01 Server.
10 months ago
## Local Mode
10 months ago
```
10 months ago
poetry run 01 --local
10 months ago
```
10 months ago
If you want to run local speech-to-text using Whisper, you must install Rust. Follow the instructions given [here](https://www.rust-lang.org/tools/install).
10 months ago
## Customizations
To customize the behavior of the system, edit the [system message, model, skills library path,](https://docs.openinterpreter.com/settings/all-settings) etc. in the `profiles` directory under the `server` directory. This file sets up an interpreter, and is powered by Open Interpreter.
To specify the text-to-speech service for the 01 `base_device.py`, set `interpreter.tts` to either "openai" for OpenAI, "elevenlabs" for ElevenLabs, or "coqui" for Coqui (local) in a profile. For the 01 Light, set `SPEAKER_SAMPLE_RATE` in `client.ino` under the `esp32` client directory to 24000 for Coqui (local) or 22050 for OpenAI TTS. We currently don't support ElevenLabs TTS on the 01 Light.
10 months ago
10 months ago
## Ubuntu Dependencies
10 months ago
```bash
sudo apt-get install portaudio19-dev ffmpeg cmake
11 months ago
```
# Contributors
10 months ago
[![01 project contributors](https://contrib.rocks/image?repo=OpenInterpreter/01&max=2000)](https://github.com/OpenInterpreter/01/graphs/contributors)
Please see our [contributing guidelines](CONTRIBUTING.md) for more details on how to get involved.
10 months ago
<br>
# Roadmap
10 months ago
Visit [our roadmap](/ROADMAP.md) to see the future of the 01.
<br>
12 months ago
## Background
### [Context ↗](https://github.com/KillianLucas/01/blob/main/CONTEXT.md)
12 months ago
12 months ago
The story of devices that came before the 01.
12 months ago
### [Inspiration ↗](https://github.com/KillianLucas/01/tree/main/INSPIRATION.md)
12 months ago
12 months ago
Things we want to steal great ideas from.
<br>
10 months ago