인류 클로드, 코셔 사령부, 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? GEM을 설치하면 nb Binary 명령을 프로젝트 또는 시스템에 사용할 수 있습니다.
사용의 예 :
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 루비 프로젝트에서 라이브러리로 사용하려면 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 : 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-mediumMistral 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-latestMistral 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 : llama3Ollama의 전체 사양을 읽으십시오.
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 카트리지를 만드는 방법에 대한 자세한 내용은 나노 봇 사양을 확인하십시오.
나노 봇 클리닉 (라이브 편집기)을 사용하여 카트리지 제작에 대해 알아보십시오.
나노 봇 카트리지의 모습은 다음과 같습니다.
---
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의 글을 쓰는 시점에서, 그들을 지원하는 제공자는 vertex-ai-api 서비스와 모델 gemini-pro 와 함께 gpt-3.5-turbo-1106 및 gpt-4o 및 Google과 함께 OpenAI입니다. 다른 공급자는 아직 지원이 없습니다.
도구 (기능)에 대한 자세한 내용은 Nano Bots 사양을 확인하십시오.
우리는 Graalvm에 의해 구동되는 Babashka를 통해 Clojure의 사용을 탐구하고 있습니다.
Clojure에 대한 실험적 지원은 clojure: 키 :
---
clojure : |
(-> (java.time.ZonedDateTime/now)
(.format (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm"))
(clojure.string/trimr)) LUA 및 회향과 달리 Clojure 지원은이 구현에 포함되지 않습니다. 나노 봇이 실행중인 환경에서 Babashka Binary ( 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 환경 변수를 통해 암호를 정의해야합니다. 그렇지 않으면 콘텐츠가 암호화되지만 누구나 암호없이 해독 할 수 있습니다.
보안 연결 (예 : 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 또는 자동화를 통해 여러 사용자에게 나노 봇을 배포하는 일반적인 전략은 각 사용자에 대해 고유 한 최종 사용자 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 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 프로젝트 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 streamGEM 버전 업그레이드 문제에 직면하는 경우 :
bundle install --full-indexgem build nano-bots.gemspec
gem signin
gem push nano-bots-3.4.0.gem