Реализация спецификации Nano Bots с поддержкой антропного Клода, Команда Cohere, Google Gemini, Maritaca Ai Sabiá, 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? После установки драгоценного камня бинарная команда 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 .
Все приведенные выше команды не имеют состояния. Если вы хотите сохранить историю ваших взаимодействий, замените - ключом состояния:
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 : commandПрочитайте полную спецификацию для команды COHERE.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Вы можете получить свой ключ API в Maritalk.
Приложить учетные данные в отдельные кавычки при использовании переменных среды, чтобы предотвратить проблемы с символом $ в ключе 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Прочитайте полную спецификацию для Mistral AI.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Вы можете получить свои учетные данные на платформе Mistral.
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Прочитайте полную спецификацию для Mistral AI.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Чтобы установить и настроить, следуйте инструкциям на веб -сайте Ollama.
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-4oПрочитайте полную спецификацию для Openai 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-proПрочитайте полную спецификацию для Google 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-proПрочитайте полную спецификацию для Google 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-proПрочитайте полную спецификацию для Google Gemini.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' ) Если вам нужно вручную установить идентификатор проекта Google:
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, чтобы узнать больше о том, как построить картриджи.
Попробуйте клинику Nano Bots (живой редактор), чтобы узнать о создании картриджей.
Вот как выглядит картридж Nano Bot:
---
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, чтобы узнать больше о инструментах (функциях).
Мы исследуем использование Clojure через Babashka, питаемое Graalvm.
Экспериментальная поддержка Clojure была бы похожа на Lua и Fennel, используя clojure: Ключ:
---
clojure : |
(-> (java.time.ZonedDateTime/now)
(.format (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm"))
(clojure.string/trimr)) В отличие от Lua и Fennel, поддержка Clojure не встроена в эту реализацию. Он полагается на то, чтобы в вашей среде было доступно бинар Babashka ( bb ), где работает Nano Bot.
Вот как установить Бабашку:
curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | sudo bashЭто быстрая проверка, чтобы убедиться, что он доступен и работает:
bb -e ' {:hello "world"} '
# => {:hello "world"}У нас нет поддержки песочницы для Clojure; Это означает, что вам нужно отключить его, чтобы иметь возможность запускать код Clojure, который вы делаете на свой страх и риск:
---
safety :
functions :
sandboxed : falseВы можете исследовать рынок Nano Bots, чтобы открыть новые картриджи, которые могут вам помочь.
Каждый провайдер будет иметь свою собственную политику безопасности и конфиденциальности (например, политика 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 или автоматизаций является назначение уникального идентификатора конечного пользователя для каждого пользователя. Это может быть полезно, если кто -либо из ваших пользователей нарушает политику поставщика из -за оскорбительного поведения. Предоставляя идентификатор конечного пользователя, вы можете раскрыть, что, хотя деятельность возникла из вашего ключа 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-это модели с открытым исходным кодом, которые поддерживаются через Олламу.
Клонировать хранилище и скопируйте шаблон Docker Compose:
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-bots Помните, что ваш localhost по умолчанию недоступен из 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:
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 .
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Если вы столкнетесь с проблемами обновления версий драгоценных камней:
bundle install --full-indexgem build nano-bots.gemspec
gem signin
gem push nano-bots-3.4.0.gem