Anthropic Claude、Cohere Command、Google Gemini、Maritaca AiSabiá、Mistral Ai、Ollama、Openai Chatgptなどをサポートするナノボット仕様の実装。
gem install nano-bots -v 3.4.0nb - - eval " hello "
# => Hello! How may I assist you today? nb - - repl ?> Hi, how are you doing?
As an AI language model, I do not experience emotions but I am functioning
well. How can I assist you?
?> |
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : openai
credentials :
access-token : ENV/OPENAI_API_KEY
settings :
user : ENV/NANO_BOTS_END_USER
model : gpt-4o nb gpt.yml - eval " hi "
# => Hello! How can I assist you today? gem 'nano-bots' , '~> 3.4.0' require 'nano-bots'
bot = NanoBot . new ( cartridge : 'gpt.yml' )
bot . eval ( 'Hi!' ) do | content , fragment , finished , meta |
print fragment unless fragment . nil?
end
# => Hello! How can I assist you today?GEMをインストールした後、 nbバイナリコマンドがプロジェクトまたはシステムに利用可能になります。
使用の例:
nb - - eval " hello "
# => Hello! How may I assist you today?
nb to-en-us-translator.yml - eval " Salut, comment ça va? "
# => Hello, how are you doing?
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.
nb lisp.yml - eval " (+ 1 2) "
# => 3
cat article.txt |
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. nb - - repl
nb assistant.yml - repl ?> Hi, how are you doing?
As an AI language model, I do not experience emotions but I am functioning
well. How can I assist you?
?> |
exitを入力することでREPLを終了できます。
上記のコマンドはすべて無国籍です。相互作用の歴史を保存したい場合は、 -を状態キーに置き換えます。
nb assistant.yml your-user eval " Salut, comment ça va? "
nb assistant.yml your-user repl
nb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c eval " Salut, comment ça va? "
nb assistant.yml 6ea6c43c42a1c076b1e3c36fa349ac2c replユーザー名などの単純なキーまたはランダムに生成されたキーを使用できます。
require 'securerandom'
SecureRandom . hex # => 6ea6c43c42a1c076b1e3c36fa349ac2cnb - - cartridge
nb cartridge.yml - cartridge
nb - STATE-KEY state
nb cartridge.yml STATE-KEY stateライブラリとして使用するには:
require 'nano-bots/cli' # Equivalent to the `nb` command. require 'nano-bots'
NanoBot . cli # Equivalent to the `nb` command.
NanoBot . repl ( cartridge : 'cartridge.yml' ) # Starts a new REPL.
bot = NanoBot . new ( cartridge : 'cartridge.yml' )
bot = NanoBot . new (
cartridge : YAML . safe_load ( File . read ( 'cartridge.yml' ) , permitted_classes : [ Symbol ] )
)
bot = NanoBot . new (
cartridge : { ... } # Parsed Cartridge Hash
)
bot . eval ( 'Hello' )
bot . eval ( 'Hello' , as : 'eval' )
bot . eval ( 'Hello' , as : 'repl' )
# When stream is enabled and available:
bot . eval ( 'Hi!' ) do | content , fragment , finished , meta |
print fragment unless fragment . nil?
end
bot . repl # Starts a new REPL.
NanoBot . repl ( cartridge : 'cartridge.yml' , state : '6ea6c43c42a1c076b1e3c36fa349ac2c' )
bot = NanoBot . new ( cartridge : 'cartridge.yml' , state : '6ea6c43c42a1c076b1e3c36fa349ac2c' )
bot . prompt # => "?u001b[34m> u001b[0m"
bot . boot
bot . boot ( as : 'eval' )
bot . boot ( as : 'repl' )
bot . boot do | content , fragment , finished , meta |
print fragment unless fragment . nil?
end システムにCLIをインストールするには:
gem install nano-bots -v 3.4.0 Rubyプロジェクトでライブラリとして使用するには、 Gemfileに追加してください。
gem 'nano-bots' , '~> 3.4.0' bundle install資格情報と構成の場合、関連する環境変数を.bashrc 、 .zshrc 、または同等のファイル、およびDockerコンテナまたはシステム環境で設定できます。例:
export NANO_BOTS_ENCRYPTION_PASSWORD=UNSAFE
export NANO_BOTS_END_USER=your-user
# export NANO_BOTS_STATE_PATH=/home/user/.local/state/nano-bots
# export NANO_BOTS_CARTRIDGES_PATH=/home/user/.local/share/nano-bots/cartridgesまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
NANO_BOTS_ENCRYPTION_PASSWORD=UNSAFE
NANO_BOTS_END_USER=your-user
# NANO_BOTS_STATE_PATH=/home/user/.local/state/nano-bots
# NANO_BOTS_CARTRIDGES_PATH=/home/user/.local/share/nano-bots/cartridges人類のコンソールで資格情報を取得できます。
export ANTHROPIC_API_KEY=your-api-keyまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
ANTHROPIC_API_KEY=your-api-key cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : anthropic
credentials :
api-key : ENV/ANTHROPIC_API_KEY
settings :
model : claude-3-5-sonnet-20240620
max_tokens : 4096人類のクロードの完全な仕様を読んでください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Cohereプラットフォームで資格情報を取得できます。
export COHERE_API_KEY=your-api-keyまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
COHERE_API_KEY=your-api-key cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : cohere
credentials :
api-key : ENV/COHERE_API_KEY
settings :
model : commandCohereコマンドの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )MaritalkでAPIキーを取得できます。
環境変数を使用してAPIキー内の$文字の問題を防ぐ場合、単一の引用符で資格情報を囲みます。
export MARITACA_API_KEY= ' 123...$a12... 'または、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
MARITACA_API_KEY= ' 123...$a12... ' cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : maritaca
credentials :
api-key : ENV/MARITACA_API_KEY
settings :
model : sabia-2-mediumミストラルAIの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )ミストラルプラットフォームで資格情報を取得できます。
export MISTRAL_API_KEY=your-api-keyまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
MISTRAL_API_KEY=your-api-key cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : mistral
credentials :
api-key : ENV/MISTRAL_API_KEY
settings :
model : mistral-medium-latestミストラルAIの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )インストールしてセットアップするには、Ollama Webサイトの指示に従ってください。
export OLLAMA_API_ADDRESS=http://localhost:11434または、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
OLLAMA_API_ADDRESS=http://localhost:11434 cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : ollama
credentials :
address : ENV/OLLAMA_API_ADDRESS
settings :
model : llama3オラマの完全な仕様を読んでください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )OpenAIプラットフォームで資格情報を取得できます。
export OPENAI_API_KEY=your-access-tokenまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
OPENAI_API_KEY=your-access-token cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : openai
credentials :
access-token : ENV/OPENAI_API_KEY
settings :
user : ENV/NANO_BOTS_END_USER
model : gpt-4oOpenai Chatgptの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )ここをクリックして、資格情報を取得する方法を学びます。
export GOOGLE_API_KEY=your-api-keyまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
GOOGLE_API_KEY=your-api-key cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : google
credentials :
service : generative-language-api
api-key : ENV/GOOGLE_API_KEY
options :
model : gemini-proGoogle Geminiの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' ) export GOOGLE_CREDENTIALS_FILE_PATH=google-credentials.json
export GOOGLE_REGION=us-east4または、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
GOOGLE_CREDENTIALS_FILE_PATH=google-credentials.json
GOOGLE_REGION=us-east4 cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : google
credentials :
service : vertex-ai-api
file-path : ENV/GOOGLE_CREDENTIALS_FILE_PATH
region : ENV/GOOGLE_REGION
options :
model : gemini-proGoogle Geminiの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' ) export GOOGLE_REGION=us-east4または、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
GOOGLE_REGION=us-east4 cartridge.ymlファイルを作成します:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : google
credentials :
service : vertex-ai-api
region : ENV/GOOGLE_REGION
options :
model : gemini-proGoogle Geminiの完全な仕様をお読みください。
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' ) GoogleプロジェクトIDを手動で設定する必要がある場合:
export GOOGLE_PROJECT_ID=your-project-idまたは、現在のディレクトリに環境変数を備えた.envファイルがある場合、それらは自動的にロードされます。
GOOGLE_PROJECT_ID=your-project-id cartridge.ymlファイルに追加します:
---
provider :
id : google
credentials :
project-id : ENV/GOOGLE_PROJECT_ID ナノボットの仕様を確認して、カートリッジの構築方法の詳細を確認してください。
Nano Bots Clinic(Live Editor)を試して、カートリッジの作成について学びましょう。
これがナノボットカートリッジのように見えるものです:
---
meta :
symbol : ?
name : Nano Bot Name
author : Your Name
version : 1.0.0
license : CC0-1.0
description : A helpful assistant.
behaviors :
interaction :
directive : You are a helpful assistant.
provider :
id : openai
credentials :
access-token : ENV/OPENAI_API_KEY
settings :
user : ENV/NANO_BOTS_END_USER
model : gpt-4oナノボットは、ツール(関数)で駆動することもできます。
---
tools :
- name : random-number
description : Generates a random number between 1 and 100.
fennel : |
(math.random 1 100) ?> please generate a random number
random-number {} [yN] y
random-number {}
59
The randomly generated number is 59.
?> |
ツール(関数)を正常に使用するには、プロバイダーとそれらをサポートするモデルを指定する必要があります。このREADMEの執筆時点では、それらをサポートするプロバイダーはOpenAIであり、モデルgpt-3.5-turbo-1106およびgpt-4o 、およびGoogleがvertex-ai-apiサービスとモデルgemini-pro備えています。他のプロバイダーにはまだサポートがありません。
ツール(関数)の詳細については、Nano Bots仕様を確認してください。
Graalvmを搭載したBabashkaを介したClojureの使用を調査しています。
Clojureの実験的サポートは、 clojure:を使用してLuaとFennelに似ています。
---
clojure : |
(-> (java.time.ZonedDateTime/now)
(.format (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm"))
(clojure.string/trimr)) LuaやFennelとは異なり、Clojureサポートはこの実装に組み込まれていません。ナノボットが実行されている環境で利用できるババシュカバイナリ( bb )を使用できることに依存しています。
これがBabashkaのインストール方法です:
curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | sudo bashこれは、それが利用可能であることを確認するための簡単なチェックです。
bb -e ' {:hello "world"} '
# => {:hello "world"}Clojureのサンドボックスサポートはありません。これは、Clojureコードを実行できるように無効にする必要があることを意味します。
---
safety :
functions :
sandboxed : falseNano Bots Marketplaceを探索して、役立つ新しいカートリッジを発見できます。
各プロバイダーには独自のセキュリティおよびプライバシーポリシー(Openaiポリシーなど)があるため、その意味を理解するには、相談する必要があります。
デフォルトでは、ローカルディスクに保存されているすべての状態が暗号化されています。
暗号化が安全であることを確認するには、 NANO_BOTS_ENCRYPTION_PASSWORD環境変数を介してパスワードを定義する必要があります。それ以外の場合、コンテンツは暗号化されますが、誰でもパスワードなしでそれを解読することができます。
安全な接続(例えば、HTTPS)に送信されているにもかかわらず、プロバイダーと共有されるコンテンツはプロバイダーが読み取ることができることに注意することが重要です。これは、プロバイダーがデータを動作させる必要があるためです。これは、コンテンツがHTTPSを超えて暗号化された場合は不可能です。したがって、システムにローカルに保存されているデータは暗号化されています。これは、プロバイダーと共有するものが読み取られないことを意味しません。
暗号化とパスワードが適切に構成されていることを確認するには、次のコマンドを実行できます。
nb security返すはずです:
✅ Encryption is enabled and properly working.
This means that your data is stored in an encrypted format on your disk.
✅ A password is being used for the encrypted content.
This means that only those who possess the password can decrypt your data.
または、実行時に以下を確認できます。
require 'nano-bots'
NanoBot . security . check
# => { encryption: true, password: true }APIまたは自動化を介して複数のユーザーにNANOボットを展開するための一般的な戦略は、各ユーザーに一意のエンドユーザーIDを割り当てることです。これは、虐待的な行動のためにユーザーのいずれかがプロバイダーのポリシーに違反している場合に役立ちます。エンドユーザーIDを提供することにより、アクティビティがAPIキーから発生したにもかかわらず、実行されたアクションがあなた自身のものではないことを解明できます。
カスタムエンドユーザー識別子を次の方法で定義できます。
NanoBot . new ( environment : { NANO_BOTS_END_USER : 'custom-user-a' } )
NanoBot . new ( environment : { NANO_BOTS_END_USER : 'custom-user-b' } )環境に次のエンドユーザー識別子があると考えてください。
NANO_BOTS_END_USER=your-nameまたはカートリッジの構成:
---
provider :
id : openai
settings :
user : your-nameリクエストは次のように実行されます。
NanoBot . new ( cartridge : '-' )
# { user: 'your-name' }
NanoBot . new ( cartridge : '-' , environment : { NANO_BOTS_END_USER : 'custom-user-a' } )
# { user: 'custom-user-a' }
NanoBot . new ( cartridge : '-' , environment : { NANO_BOTS_END_USER : 'custom-user-b' } )
# { user: 'custom-user-b' }実際、プライバシーを強化するために、ユーザーもユーザーの識別子もこのように共有されません。代わりに、プロバイダーと共有される前に暗号化されます。
'your-name'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZqpsAkPg4j62SeNYlgwq3kn51Ob2wmIehoA==
'custom-user-a'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZJgIXHCBHyADW-rn4IQr-s2RvP7vym8u5tnzYMIs=
'custom-user-b'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZkjUwCcsh9sVppKvYMhd2qGRvP7vym8u5tnzYMIg=このようにして、必要に応じて識別子を所有していますが、実際のコンテンツは、安全なパスワード( NANO_BOTS_ENCRYPTION_PASSWORD )を介してのみ復号化できます。
暗号化されたデータを復号化するには、パスワードを適切に構成したら、単純に実行できます。
require 'nano-bots'
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZqpsAkPg4j62SeNYlgwq3kn51Ob2wmIehoA==' )
# your-name
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZJgIXHCBHyADW-rn4IQr-s2RvP7vym8u5tnzYMIs=' )
# custom-user-a
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZkjUwCcsh9sVppKvYMhd2qGRvP7vym8u5tnzYMIg=' )
# custom-user-bパスワードを紛失した場合、データが失われます。それをまったく回復することはできません。実際に。
01.ai Yi、Lmsys Vicuna、Meta Llama、およびWizardlmは、Ollamaを通じてサポートされているオープンソースモデルです。
リポジトリをクローンし、Dockerコンポーシングテンプレートをコピーします。
git clone https://github.com/icebaker/ruby-nano-bots.git
cd ruby-nano-bots
cp docker-compose.example.yml docker-compose.yml
プロバイダーの資格情報を設定し、カートリッジファイルの目的のパスを選択します。
---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
ANTHROPIC_API_KEY : your-api-key
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
COHERE_API_KEY : your-api-key
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
MARITACA_API_KEY : your-api-key
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
MISTRAL_API_KEY : your-api-key
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-botslocalhostはデフォルトでは内部Dockerからアクセスできないことを忘れないでください。 Ollamaサーバーが実行されている場所と好みに応じて、コンテナー間ネットワーキングを確立するか、ホストのアドレスを使用するか、ホストネットワークを使用する必要があります。
---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
OLLAMA_API_ADDRESS : http://localhost:11434
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots
# If you are running the Ollama server on your localhost:
network_mode : host # WARNING: Be careful, this may be a security risk.---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
OPENAI_API_KEY : your-access-token
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
GOOGLE_API_KEY : your-api-key
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots ---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
GOOGLE_CREDENTIALS_FILE_PATH : /root/.config/google-credentials.json
GOOGLE_REGION : us-east4
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./google-credentials.json:/root/.config/google-credentials.json
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots ---
services :
nano-bots :
image : ruby:3.3.3-slim-bookworm
command : sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.4.0 && bash"
environment :
GOOGLE_REGION : us-east4
NANO_BOTS_ENCRYPTION_PASSWORD : UNSAFE
NANO_BOTS_END_USER : your-user
volumes :
- ./your-cartridges:/root/.local/share/nano-bots/cartridges
- ./your-state-path:/root/.local/state/nano-bots GoogleプロジェクトIDを手動で設定する必要がある場合:
environment :
GOOGLE_PROJECT_ID=your-project-idコンテナを入力してください:
docker compose run nano-bots再生を開始:
nb - - eval " hello "
nb - - repl
nb assistant.yml - eval " hello "
nb assistant.yml - repl exitを入力することでREPLを終了できます。
bundle
rubocop -A
rspec
bundle exec ruby spec/tasks/run-all-models.rb
bundle exec ruby spec/tasks/run-model.rb spec/data/cartridges/models/openai/gpt-4-turbo.yml
bundle exec ruby spec/tasks/run-model.rb spec/data/cartridges/models/openai/gpt-4-turbo.yml stream問題に直面している場合、GEMバージョンのアップグレード:
bundle install --full-indexgem build nano-bots.gemspec
gem signin
gem push nano-bots-3.4.0.gem