纳米机器人规范的实施,并支持人类的Claude,Cohere Command,Google Gemini,Maritaca aiSabiá,Mistral AI,Ollama,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来退出重复。
上面的所有命令都是无状态的。如果您想保留互动的历史记录,请用状态-替换:
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 Project作为库中使用它,请添加到您的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阅读人类克劳德(Claude)的完整规范。
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' )您可以在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阅读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阅读Ollama的完整规范。
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项目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诊所(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.
?> |
要成功使用工具(功能),您需要指定一个提供者和支持它们的模型。在撰写此读数时,支持他们的提供商是OpenAI,Models gpt-3.5-turbo-1106和gpt-4o以及Google,以及vertex-ai-api服务和模型gemini-pro 。其他提供商尚无支持。
检查纳米机器人规范以了解有关工具(功能)的更多信息。
我们正在通过Graalvm提供动力的Babashka探索Clojure的使用。
使用clojure: key:
---
clojure : |
(-> (java.time.ZonedDateTime/now)
(.format (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm"))
(clojure.string/trimr))与Lua和Fennel不同,Clojure支持并未嵌入此实现中。它依赖于在纳米机器人运行的环境中提供Babashka二进制( 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 : false您可以探索纳米机器人市场,以发现可以帮助您的新墨盒。
每个提供商都会有自己的安全和隐私政策(例如OpenAI政策),因此您必须咨询它们以了解其含义。
默认情况下,存储在您本地磁盘中的所有状态均已加密。
为了确保加密是安全的,您需要通过NANO_BOTS_ENCRYPTION_PASSWORD环境变量定义密码。否则,尽管内容将被加密,但任何人都可以在没有密码的情况下解密它。
重要的是要注意,尽管通过安全连接(例如HTTP)传输了与提供商共享的内容,但提供商将可以阅读。这是因为提供商需要在数据上操作,如果内容已超过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或自动化向多个用户部署纳米机器人的常见策略是为每个用户分配一个唯一的最终用户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-bots请记住,默认情况下,您的localhost是从内部Docker无法访问的。您需要根据Ollama Server运行的位置和您的首选项来建立跨域网络,使用主机的地址或使用主机网络。
---
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来退出重复。
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