diff --git a/docs/01os/01os-settings.mdx b/docs/01os/01os-settings.mdx new file mode 100644 index 0000000..0703984 --- /dev/null +++ b/docs/01os/01os-settings.mdx @@ -0,0 +1,37 @@ +--- +title: 01OS Settings +description: "Settings when running 01OS" +--- + +### Server + +Runs the server + +```bash Terminal +01 --server +``` + +### Expose + +Expose an 01 server publically + +```bash Terminal +01 --server --expose # This will print a URL that a client can point to. +``` + +### Client + +Runs a specific client + +```bash Terminal +01 --client macos # Options: macos, rpi +``` + +### Local + +The --local flag will install and run the whisper.cpp STT and Piper TTS models. + +```bash Terminal +01 --local # Local client and server +01 --local --server --expose # Expose a local server +``` diff --git a/docs/01os/environment-variables.mdx b/docs/01os/environment-variables.mdx new file mode 100644 index 0000000..53fa808 --- /dev/null +++ b/docs/01os/environment-variables.mdx @@ -0,0 +1,105 @@ +--- +title: "Environment Variables" +description: "Configure 01OS" +--- + +## ALL_LOCAL + +Default:`False` + +If `False`, we'll use OpenAI's services else we use whisper.cpp and piper local models + +## WHISPER_MODEL_NAME + +Default: `ggml-tiny.en.bin` + +## WHISPER_MODEL_URL + +Default: `https://huggingface.co/ggerganov/whisper.cpp/resolve/main/` + +## TEACH_MODE + +Default: `False` + +Teach mode is a mode that allows you to teach 01OS new things. Disclaimer: This is a Developer Preview. + +## OPENAI_API_KEY + +Set your OpenAI API key + +## PIPER_VOICE_URL + +Default: `https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/` + +## PIPER_VOICE_NAME + +Default: `en_US-lessac-medium.onnx` + +For TTS, we use the `en_US-lessac-medium` voice model by default. Please change the voice URL and voice name if you wish to use another voice + +## NGROK_AUTHTOKEN + +Set to your [Ngrok auth token](https://dashboard.ngrok.com/get-started/your-authtoken) + +## SERVER_URL + +Default: `ws://0.0.0.0:8000/` + +## SERVER_START + +Default:`True` +This is where we'll serve the server + +## CLIENT_START + +Default: `True` +This is where the client expects the server to be. + +## CLIENT_TYPE + +Default: `auto` + +Can explicitly set the client type (macos, rpi) + +## CODE_RUNNER + +Default: `server` +Control where various operations happen. Can be `client` or `server`. + +## TTS_RUNNER + +Default: `server` +If client, audio will be sent over websocket. + +## STT_RUNNER + +Default: `client` +If server, audio will be sent over websocket. + +## SERVER_EXPOSE_PUBLICALLY + +Default: `False` + +Expose the server publically and display that URL. + +## CAMERA_ENABLED + +Default: `False` + +## CAMERA_DEVICE_INDEX + +Default: `0` + +Camera device selection (Typically 0 for built-in, 1 for USB) + +## CAMERA_WARMUP_SECONDS + +Default: `0.4` + +Camera warmup time is a workaround for some cameras that don't immediately return a properly exposed picture when they are first turned on + +## LOG_LEVEL + +Default: INFO + +Can be `INFO` or `DEBUG` diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..7e065b0 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,27 @@ +# 01OS + +## Contribute +- Clone this repo +- install mintlify CLI +- run mintlify in project directory to get preview of docs +- make changes +- push changes + +### Development + +Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command + +``` +npm i -g mintlify +``` + +Run the following command at the root of your documentation (where mint.json is) + +``` +mintlify dev +``` + +#### Troubleshooting + +- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies. +- Page loads as a 404 - Make sure you are running in a folder with `mint.json` diff --git a/docs/favicon.png b/docs/favicon.png new file mode 100644 index 0000000..f1a66bf Binary files /dev/null and b/docs/favicon.png differ diff --git a/docs/guides/hardware.mdx b/docs/guides/hardware.mdx new file mode 100644 index 0000000..ef5b094 --- /dev/null +++ b/docs/guides/hardware.mdx @@ -0,0 +1,16 @@ +--- +title: "Hardware Guide" +sidebarTitle: "Hardware" +description: "How to use your Language Model Computer" +--- + +## 01 Light + +- Connect to your 01 Light with the one click installer +- Enter your wifi details +- Follow instructions +- Push button to begin + +## 01 Heavy + +Coming soon diff --git a/docs/guides/software.mdx b/docs/guides/software.mdx new file mode 100644 index 0000000..908b56b --- /dev/null +++ b/docs/guides/software.mdx @@ -0,0 +1,55 @@ +--- +title: "Software Guide" +sidebarTitle: "Software" +description: "Get 01OS up and running" +--- + +## Install dependencies + +```bash +# MacOS +brew install portaudio ffmpeg + +# Ubuntu +sudo apt-get install portaudio19-dev ffmpeg +``` + +## Setup for usage + +```bash +pip install 01OS +``` + +**Run the 01 end-to-end:** + +```bash +01 # This will run a server + attempt to determine and run a client. +# (Behavior can be modified by changing the contents of `.env`) +``` + +**Expose an 01 server publically:** + +```bash +01 --server --expose # This will print a URL that a client can point to. +``` + +**Run a specific client:** + +```bash +01 --client macos # Options: macos, rpi +``` + +**Run locally:** + +The current default uses OpenAI's services. + +The `--local` flag will install and run the [whisper.cpp](https://github.com/ggerganov/whisper.cpp) STT and [Piper](https://github.com/rhasspy/piper) TTS models. + +```bash +01 --local # Local client and server +01 --local --server --expose # Expose a local server +``` + +**Configuration:** + +Copy the `01OS/.env.example` file to `01OS/.env` then configure the environment variables within the file. diff --git a/docs/guides/teach.mdx b/docs/guides/teach.mdx new file mode 100644 index 0000000..7d64524 --- /dev/null +++ b/docs/guides/teach.mdx @@ -0,0 +1,24 @@ +--- +title: Adding Skills +description: "Teach 01OS new skills" +--- + +Sometimes the 01OS will run into a task it doesn't have the skills to do yet. When this happens, you can teach it a new skill using Teach Mode. Teach Mode consists of 3 steps: start teach mode, walk through and confirm each step, then exit teach mode. + +## How To Teach + +- < To start Teach Mode > +- cd ../01/01OS/ (we reccomend starting a virtual environment [would it be good to link to info on setting up a venv?]) +- poetry run 01 --teach +- Enter the name of the skill you want to teach. +- Walk through the first step to show the 01OS what the action looks like. +- The 01OS will attempt to perform the first step. +- Confirm whether or not the 01OS successfully copied your action. +> - If it wasn't performed correctly, select "no" and adjust the prompt for the retrying. +> - If it was performed correctly, select "yes" and the code for that step will be added to the skill's python file +- Once you've finished all steps required to perform the skill, confirm that the skill is complete. +- The skill has been saved as a Python file, which the 01OS can now intelligently execute whenever your prompt would benefit from the skill. + +_Disclaimer:_ We caution against showing any sensitive information on your screen while Teach Mode is running. +The developer preview version of 01OS collects data during Teach Mode that is used to train the 01OS for future versions. +Reach out to partnerships@openinterpreter.com with any questions or concerns. [Thoughs Mike? would it be better to setup privacy@openinterpreter.com or something lol?] diff --git a/docs/introduction.mdx b/docs/introduction.mdx new file mode 100644 index 0000000..0a042c3 --- /dev/null +++ b/docs/introduction.mdx @@ -0,0 +1,25 @@ +--- +title: Introduction +description: "The 01 is a Language Model Computer. 01OS is its operating system" +--- + +thumbnail + +The 01 Operating System (01OS) is open source software that operates computers using language models, powered by Open Interpreter. +This allows computers to understand natural language requests, and execute tasks on your behalf. +These guides will cover the steps for installing, using, and teaching 01OS. + +## Getting Started + +The 01 Light is the interface with 01OS. It connects to your computer or our hosted service via the Internet or directly to an 01 Heavy (coming soon). + +You can order a pre-made device or find instructions for building your own at openinterpreter.com/01OS/guides/hardware-guide. +You will always have the option to build your own device. + +To connect to your device, use the one click installer. + +_Disclaimer:_ The current version of 01OS is a developer preview. diff --git a/docs/logo/Z-icon-black.png b/docs/logo/Z-icon-black.png new file mode 100644 index 0000000..35c39af Binary files /dev/null and b/docs/logo/Z-icon-black.png differ diff --git a/docs/logo/Z-icon-white.png b/docs/logo/Z-icon-white.png new file mode 100644 index 0000000..ddc08dd Binary files /dev/null and b/docs/logo/Z-icon-white.png differ diff --git a/docs/logo/Z.png b/docs/logo/Z.png new file mode 100644 index 0000000..8f14cc1 Binary files /dev/null and b/docs/logo/Z.png differ diff --git a/docs/mint.json b/docs/mint.json new file mode 100644 index 0000000..5bca41e --- /dev/null +++ b/docs/mint.json @@ -0,0 +1,63 @@ +{ + "name": "01", + "logo": { + "dark": "/logo/Z-icon-white.png", + "light": "/logo/Z-icon-black.png" + }, + "favicon": "/favicon.png", + "colors": { + "primary": "#000000", + "light": "#FFFFFF", + "dark": "#000000", + "background": { + "light": "#FFFFFF", + "dark": "#000000" + }, + "anchors": { + "from": "#000000", + "to": "#000000" + } + }, + "topbarLinks": [ + { + "name": "GitHub", + "url": "https://github.com/KillianLucas/01" + } + ], + "topbarCtaButton": { + "name": "Join Discord", + "url": "https://discord.com/invite/Hvz9Axh84z" + }, + "primaryTab": { + "name": "Home" + }, + "navigation": [ + { + "group": "Getting Started", + "pages": ["introduction", "setup"] + }, + { + "group": "Guides", + "pages": ["guides/hardware", "guides/software", "guides/teach"] + }, + { + "group": "01OS", + "pages": ["01os/01os-settings", "01os/environment-variables"] + }, + { + "group": "Technical", + "pages": [ + "technical-instructions/development", + "technical-instructions/build-hardware" + ] + } + ], + "feedback": { + "suggestEdit": true + }, + "footerSocials": { + "twitter": "https://x.com/OpenInterpreter", + "github": "https://github.com/KillianLucas/01", + "discord": "https://discord.gg/E2XTbkj4JF" + } +} diff --git a/docs/setup.mdx b/docs/setup.mdx new file mode 100644 index 0000000..5c51acd --- /dev/null +++ b/docs/setup.mdx @@ -0,0 +1,19 @@ +--- +title: "Setup" +description: "Get your 01 up and running" +--- + +## The 01 + +The 01 is a device that unleashes the power of controlling a Language Model Computer using only natural language. +Just connect it to the Internet and talk to it. + +It's more than just voice control. It's a new way to use computers. + +## One Click Installers + +To connect your 01, select your one click installer: + +- MacOS +- Linux +- Windows diff --git a/docs/snippets/snippet-intro.mdx b/docs/snippets/snippet-intro.mdx new file mode 100644 index 0000000..c57e7c7 --- /dev/null +++ b/docs/snippets/snippet-intro.mdx @@ -0,0 +1,4 @@ +One of the core principles of software development is DRY (Don't Repeat +Yourself). This is a principle that apply to documentation as +well. If you find yourself repeating the same content in multiple places, you +should consider creating a custom snippet to keep your content in sync. diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 0000000..392cac0 --- /dev/null +++ b/docs/style.css @@ -0,0 +1,32 @@ +.rounded-lg { + border-radius: 0; +} + +/* + +.rounded-sm, .rounded-md, .rounded-lg, .rounded-xl, .rounded-2xl, .rounded-3xl { + border-radius: 0.125rem; +} + +.rounded-full { + border-radius: 0.125rem; +} + +*/ + +.font-extrabold { + font-weight: 600; +} + +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-weight: 600; +} + +.body { + font-weight: normal; +} \ No newline at end of file diff --git a/docs/technical-instructions/build-hardware.mdx b/docs/technical-instructions/build-hardware.mdx new file mode 100644 index 0000000..cc6b7d9 --- /dev/null +++ b/docs/technical-instructions/build-hardware.mdx @@ -0,0 +1,29 @@ +--- +title: "Hardware Build Guide" +description: "How to build your Language Model Computer" +--- + +## 01 Light + +### Materials + +- ATOM Echo Smart Speaker Development Kit +- PowerBoost 1000 Charger +- Tactile Switches 12MM TACTILE PB SWITCH +- Slide Switches DPDT THRU HOLE .3A +- Lithium Ion Polymer Battery - 3.7v 500mAh +- Silicone Cover Stranded-Core Wire 26AWG - Black, Red, Yellow +- Premium Male/Male Jumper Wires - 20 x 3" (75mm) + +Optional + +- Adafruit Mono 2.5W Class D Audio Amplifier - PAM8302 + +### Assembly + +1. Gather Materials +2. Shove em together + +## 01 Heavy + +Coming soon diff --git a/docs/technical-instructions/development.mdx b/docs/technical-instructions/development.mdx new file mode 100644 index 0000000..6bbb753 --- /dev/null +++ b/docs/technical-instructions/development.mdx @@ -0,0 +1,16 @@ +--- +title: "Development" +description: "How to work on 01OS" +--- + +## Setup for development: + +```bash +# Clone the repo, cd into the 01OS directory +git clone https://github.com/KillianLucas/01.git +cd 01OS + +# Install dependencies, run the commands above +poetry install +poetry run 01 +```