README.md in nano-bots-0.0.1 vs README.md in nano-bots-0.0.2
- old
+ new
@@ -6,10 +6,11 @@
_Image artificially created by Midjourney through a prompt generated by a Nano Bot specialized in Midjourney._
https://user-images.githubusercontent.com/113217272/237840989-1e29a5cc-6644-48d0-87b4-62798dc6ebd3.mp4
- [Setup](#setup)
+ - [Docker](#docker)
- [Usage](#usage)
- [Command Line](#command-line)
- [Library](#library)
- [Cartridges](#cartridges)
- [Development](#development)
@@ -18,17 +19,17 @@
## Setup
For a system usage:
```sh
-gem install nano-bots -v 0.0.1
+gem install nano-bots -v 0.0.2
```
To use it in a project, add it to your `Gemfile`:
```ruby
-gem 'nano-bots', '~> 0.0.1'
+gem 'nano-bots', '~> 0.0.2'
```
```sh
bundle install
```
@@ -44,72 +45,120 @@
export NANO_BOTS_CARTRIDGES_DIRECTORY=/home/user/.local/share/nano-bots/cartridges
```
Alternatively, if your current directory has a `.env` file with the environment variables, they will be automatically loaded.
+## Docker
+
+Clone the repository and copy the Docker Compose template:
+
+```
+git clone git@github.com:icebaker/ruby-nano-bots.git
+cd ruby-nano-bots
+cp docker-compose.example.yml docker-compose.yml
+```
+
+Set your provider credentials and choose your desired directory for the cartridges files:
+
+```yaml
+version: '3.7'
+
+services:
+ nano-bots:
+ image: ruby:3.2.2-slim-bullseye
+ command: sh -c "gem install nano-bots -v 0.0.2 && bash"
+ environment:
+ OPENAI_API_ADDRESS: https://api.openai.com
+ OPENAI_API_ACCESS_TOKEN: your-token
+ OPENAI_API_USER_IDENTIFIER: your-user
+ volumes:
+ - ./your-cartridges:/cartridges
+```
+
+Enter the container:
+```sh
+docker compose run nano-bots
+```
+
+Start playing:
+```sh
+nb cartridges/assistant.yml - repl
+```
+
## Usage
### Command Line
-After installing the gem, the `rnb` binary command will be available for your project or system.
+After installing the gem, the `nb` binary command will be available for your project or system.
Examples of usage:
```bash
-rnb to-en-us-translator.yml - eval "Salut, comment ça va?"
+nb to-en-us-translator.yml - eval "Salut, comment ça va?"
# => Hello, how are you doing?
-rnb midjourney.yml - eval "happy and friendly cyberpunk robot"
-# => The robot exploring a bustling city, surrounded by neon lights
-# and high-rise buildings. The prompt should include colorful
-# lighting and a sense of excitement in the facial expression.
+nb midjourney.yml - eval "happy cyberpunk robot"
+# => A cheerful and fun-loving robot is dancing wildly amidst a
+# futuristic and lively cityscape. Holographic advertisements
+# and vibrant neon colors can be seen in the background.
-rnb lisp.yml - eval "(+ 1 2)"
+nb lisp.yml - eval "(+ 1 2)"
# => 3
cat article.txt |
- rnb to-en-us-translator.yml - eval |
- rnb summarizer.yml - eval
+ nb to-en-us-translator.yml - eval |
+ nb summarizer.yml - eval
# -> LLM stands for Large Language Model, which refers to an
# artificial intelligence algorithm capable of processing
# and understanding vast amounts of natural language data,
# allowing it to generate human-like responses and perform
# a range of language-related tasks.
```
```bash
-rnb assistant.yml - repl
+nb assistant.yml - repl
```
-All of the commands above are stateless. If you want to preserve the history of your interactions, replace the `-` with a state key. You can use a simple key, such as your username, or a randomly generated one:
+```text
+🤖> Hi, how are you doing?
-```ruby
-require 'securerandom'
+As an AI language model, I do not experience emotions but I am functioning
+well. How can I assist you?
-SecureRandom.hex # => 6ea6c43c42a1c076b1e3c36fa349ac2c
+🤖> |
```
+All of the commands above are stateless. If you want to preserve the history of your interactions, replace the `-` with a state key:
+
```bash
-rnb assistant.yml your-user eval "Salut, comment ça va?"
-rnb assistant.yml your-user repl
+nb assistant.yml your-user eval "Salut, comment ça va?"
+nb assistant.yml your-user repl
-rnb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c eval "Salut, comment ça va?"
-rnb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c repl
+nb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c eval "Salut, comment ça va?"
+nb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c repl
```
+You can use a simple key, such as your username, or a randomly generated one:
+
+```ruby
+require 'securerandom'
+
+SecureRandom.hex # => 6ea6c43c42a1c076b1e3c36fa349ac2c
+```
+
### Library
To use it as a library:
```ruby
-require 'nano-bots/cli' # Equivalent to the `rnb` command.
+require 'nano-bots/cli' # Equivalent to the `nb` command.
```
```ruby
require 'nano-bots'
-NanoBot.cli # Equivalent to the `rnb` command.
+NanoBot.cli # Equivalent to the `nb` command.
NanoBot.repl(cartridge: 'cartridge.yml') # Starts a new REPL.
bot = NanoBot.new(cartridge: 'cartridge.yml')
@@ -126,24 +175,19 @@
Here's what a Nano Bot Cartridge looks like:
```yaml
---
-name: Assistant
-version: 0.0.1
+meta:
+ name: Nano Bot Name
+ author: Your Name
+ version: 0.0.1
behaviors:
interaction:
directive: You are a helpful assistant.
-interfaces:
- repl:
- prompt:
- - text: '🤖'
- - text: '> '
- color: blue
-
provider:
name: openai
settings:
model: gpt-3.5-turbo
credentials:
@@ -167,7 +211,7 @@
```bash
gem build nano-bots.gemspec
gem signin
-gem push nano-bots-0.0.1.gem
+gem push nano-bots-0.0.2.gem
```