Implementasi spesifikasi Nano Bots dengan dukungan untuk Antropik Claude, Cohere Command, Google Gemini, Maritaca AI Sabiá, Mistral AI, Ollama, Openai Chatgpt, dan lainnya, dengan dukungan untuk alat panggilan (fungsi).
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? Setelah menginstal permata, perintah biner nb akan tersedia untuk proyek atau sistem Anda.
Contoh Penggunaan:
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?
?> |
Anda dapat keluar dari replikan dengan mengetik exit .
Semua perintah di atas adalah stateless. Jika Anda ingin melestarikan sejarah interaksi Anda, ganti - dengan kunci negara:
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 replAnda dapat menggunakan kunci sederhana, seperti nama pengguna Anda, atau yang dihasilkan secara acak:
require 'securerandom'
SecureRandom . hex # => 6ea6c43c42a1c076b1e3c36fa349ac2cnb - - cartridge
nb cartridge.yml - cartridge
nb - STATE-KEY state
nb cartridge.yml STATE-KEY stateUntuk menggunakannya sebagai perpustakaan:
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 Untuk menginstal CLI di sistem Anda:
gem install nano-bots -v 3.4.0 Untuk menggunakannya dalam proyek Ruby sebagai perpustakaan, tambahkan ke Gemfile Anda:
gem 'nano-bots' , '~> 3.4.0' bundle install Untuk kredensial dan konfigurasi, variabel lingkungan yang relevan dapat diatur dalam file .bashrc , .zshrc , atau setara Anda, serta dalam wadah Docker atau lingkungan sistem Anda. Contoh:
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 Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
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/cartridgesAnda dapat memperoleh kredensial Anda di konsol antropik.
export ANTHROPIC_API_KEY=your-api-key Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
ANTHROPIC_API_KEY=your-api-key Buat file 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 : 4096Baca spesifikasi lengkap untuk Claude antropik.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Anda dapat memperoleh kredensial Anda di platform Cohere.
export COHERE_API_KEY=your-api-key Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
COHERE_API_KEY=your-api-key Buat file 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 : commandBaca spesifikasi lengkap untuk perintah cohere.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Anda dapat memperoleh kunci API Anda di maritalk.
Lampirkan kredensial dalam kutipan tunggal saat menggunakan variabel lingkungan untuk mencegah masalah dengan karakter $ di kunci API:
export MARITACA_API_KEY= ' 123...$a12... ' Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
MARITACA_API_KEY= ' 123...$a12... ' Buat file 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-mediumBaca spesifikasi lengkap untuk Mistral AI.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Anda dapat memperoleh kredensial Anda di platform Mistral.
export MISTRAL_API_KEY=your-api-key Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
MISTRAL_API_KEY=your-api-key Buat file 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-latestBaca spesifikasi lengkap untuk Mistral AI.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Untuk menginstal dan mengatur, ikuti instruksi di situs web Ollama.
export OLLAMA_API_ADDRESS=http://localhost:11434 Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
OLLAMA_API_ADDRESS=http://localhost:11434 Buat file 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 : llama3Baca spesifikasi lengkap untuk Ollama.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Anda dapat memperoleh kredensial di platform OpenAI.
export OPENAI_API_KEY=your-access-token Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
OPENAI_API_KEY=your-access-token Buat file 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-4oBaca spesifikasi lengkap untuk OpenAI Chatgpt.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' )Klik di sini untuk mempelajari cara mendapatkan kredensial Anda.
export GOOGLE_API_KEY=your-api-key Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
GOOGLE_API_KEY=your-api-key Buat file 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-proBaca spesifikasi lengkap untuk 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 Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
GOOGLE_CREDENTIALS_FILE_PATH=google-credentials.json
GOOGLE_REGION=us-east4 Buat file 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-proBaca spesifikasi lengkap untuk 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 Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
GOOGLE_REGION=us-east4 Buat file 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-proBaca spesifikasi lengkap untuk Google Gemini.
nb cartridge.yml - eval " Hello "
nb cartridge.yml - repl bot = NanoBot . new ( cartridge : 'cartridge.yml' )
puts bot . eval ( 'Hello' ) Jika Anda perlu mengatur ID Proyek Google secara manual:
export GOOGLE_PROJECT_ID=your-project-id Atau, jika direktori Anda saat ini memiliki file .env dengan variabel lingkungan, mereka akan dimuat secara otomatis:
GOOGLE_PROJECT_ID=your-project-id Tambahkan ke file cartridge.yml Anda:
---
provider :
id : google
credentials :
project-id : ENV/GOOGLE_PROJECT_ID Periksa spesifikasi nano bot untuk mempelajari lebih lanjut tentang cara membangun kartrid.
Cobalah Klinik Bot Nano (Live Editor) untuk belajar tentang membuat kartrid.
Beginilah rupa kartrid 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-4oBot nano juga dapat ditenagai oleh alat (fungsi):
---
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.
?> |
Untuk berhasil menggunakan alat (fungsi), Anda perlu menentukan penyedia dan model yang mendukungnya. Pada penulisan readme ini, penyedia yang mendukung mereka adalah OpenAi, dengan model gpt-3.5-turbo-1106 dan gpt-4o , dan Google, dengan layanan vertex-ai-api dan model gemini-pro . Penyedia lain belum mendapat dukungan.
Periksa spesifikasi nano bot untuk mempelajari lebih lanjut tentang alat (fungsi).
Kami sedang menjelajahi penggunaan Clojure melalui Babashka, ditenagai oleh GraAlvm.
Dukungan eksperimental untuk Clojure akan mirip dengan Lua dan Fennel, menggunakan clojure: Key:
---
clojure : |
(-> (java.time.ZonedDateTime/now)
(.format (java.time.format.DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm"))
(clojure.string/trimr)) Tidak seperti Lua dan adas, dukungan Clojure tidak tertanam dalam implementasi ini. Ini bergantung pada memiliki Babashka Binary ( bb ) yang tersedia di lingkungan Anda di mana Bot Nano sedang berjalan.
Inilah cara menginstal Babashka:
curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | sudo bashIni adalah pemeriksaan cepat untuk memastikan bahwa itu tersedia dan berfungsi:
bb -e ' {:hello "world"} '
# => {:hello "world"}Kami tidak memiliki dukungan kotak pasir untuk Clojure; Ini berarti bahwa Anda perlu menonaktifkannya untuk dapat menjalankan kode clojure, yang Anda lakukan dengan risiko sendiri:
---
safety :
functions :
sandboxed : falseAnda dapat menjelajahi Nano Bots Marketplace untuk menemukan kartrid baru yang dapat membantu Anda.
Setiap penyedia akan memiliki kebijakan keamanan dan privasi sendiri (mis. Kebijakan OpenAI), jadi Anda harus berkonsultasi dengan mereka untuk memahami implikasinya.
Secara default, semua negara bagian yang disimpan di disk lokal Anda dienkripsi.
Untuk memastikan bahwa enkripsi aman, Anda perlu mendefinisikan kata sandi melalui variabel lingkungan NANO_BOTS_ENCRYPTION_PASSWORD . Kalau tidak, meskipun konten akan dienkripsi, siapa pun akan dapat mendekripsi tanpa kata sandi.
Penting untuk dicatat bahwa konten yang dibagikan dengan penyedia, meskipun ditransmisikan melalui koneksi yang aman (misalnya, HTTPS), akan dapat dibaca oleh penyedia. Ini karena penyedia perlu beroperasi pada data, yang tidak mungkin jika konten dienkripsi di luar https. Jadi, data yang disimpan secara lokal pada sistem Anda dienkripsi, yang tidak berarti bahwa apa yang Anda bagikan dengan penyedia tidak dapat dibaca oleh mereka.
Untuk memastikan bahwa enkripsi dan kata sandi Anda dikonfigurasi dengan benar, Anda dapat menjalankan perintah berikut:
nb securityYang harus kembali:
✅ 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.
Atau, Anda dapat memeriksanya saat runtime dengan:
require 'nano-bots'
NanoBot . security . check
# => { encryption: true, password: true }Strategi umum untuk menggunakan bot nano ke banyak pengguna melalui API atau otomatisasi adalah menetapkan ID pengguna akhir yang unik untuk setiap pengguna. Ini bisa berguna jika ada pengguna Anda yang melanggar kebijakan penyedia karena perilaku kasar. Dengan memberikan ID pengguna akhir, Anda dapat mengungkap bahwa meskipun aktivitas tersebut berasal dari kunci API Anda, tindakan yang diambil bukan milik Anda.
Anda dapat mendefinisikan pengidentifikasi pengguna akhir khusus dengan cara berikut:
NanoBot . new ( environment : { NANO_BOTS_END_USER : 'custom-user-a' } )
NanoBot . new ( environment : { NANO_BOTS_END_USER : 'custom-user-b' } )Pertimbangkan bahwa Anda memiliki pengidentifikasi pengguna akhir berikut di lingkungan Anda:
NANO_BOTS_END_USER=your-nameAtau konfigurasi di kartrid Anda:
---
provider :
id : openai
settings :
user : your-namePermintaan akan dilakukan sebagai berikut:
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' }Sebenarnya, untuk meningkatkan privasi, baik pengguna maupun pengidentifikasi pengguna Anda tidak akan dibagikan dengan cara ini. Sebaliknya, mereka akan dienkripsi sebelum dibagikan dengan penyedia:
'your-name'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZqpsAkPg4j62SeNYlgwq3kn51Ob2wmIehoA==
'custom-user-a'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZJgIXHCBHyADW-rn4IQr-s2RvP7vym8u5tnzYMIs=
'custom-user-b'
# _O7OjYUESagb46YSeUeSfSMzoO1Yg0BZkjUwCcsh9sVppKvYMhd2qGRvP7vym8u5tnzYMIg= Dengan cara ini, Anda memiliki pengidentifikasi jika diperlukan, bagaimanapun, konten mereka yang sebenarnya hanya dapat didekripsi oleh Anda melalui kata sandi aman Anda ( NANO_BOTS_ENCRYPTION_PASSWORD ).
Untuk mendekripsi data terenkripsi Anda, setelah Anda mengkonfigurasi kata sandi Anda dengan benar, Anda cukup menjalankan:
require 'nano-bots'
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZqpsAkPg4j62SeNYlgwq3kn51Ob2wmIehoA==' )
# your-name
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZJgIXHCBHyADW-rn4IQr-s2RvP7vym8u5tnzYMIs=' )
# custom-user-a
NanoBot . security . decrypt ( '_O7OjYUESagb46YSeUeSfSMzoO1Yg0BZkjUwCcsh9sVppKvYMhd2qGRvP7vym8u5tnzYMIg=' )
# custom-user-bJika Anda kehilangan kata sandi, Anda kehilangan data. Tidak mungkin memulihkannya sama sekali. Benar -benar.
01.ai Yi, LMSys Vicuna, Meta Llama, dan Wizardlm adalah model open-source yang didukung melalui Ollama.
Klon Repositori dan Salin Template Compose Docker:
git clone https://github.com/icebaker/ruby-nano-bots.git
cd ruby-nano-bots
cp docker-compose.example.yml docker-compose.yml
Tetapkan kredensial penyedia Anda dan pilih jalur yang Anda inginkan untuk file cartridges:
---
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 Ingatlah bahwa localhost Anda secara default tidak dapat diakses dari dalam Docker. Anda perlu membangun jaringan antar-kontainer, menggunakan alamat host, atau menggunakan jaringan host, tergantung di mana server ollama berjalan dan preferensi Anda.
---
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 Jika Anda perlu mengatur ID Proyek Google secara manual:
environment :
GOOGLE_PROJECT_ID=your-project-idMasukkan wadah:
docker compose run nano-botsMulailah Bermain:
nb - - eval " hello "
nb - - repl
nb assistant.yml - eval " hello "
nb assistant.yml - repl Anda dapat keluar dari replikan dengan mengetik 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 streamJika Anda menghadapi masalah peningkatan versi permata:
bundle install --full-indexgem build nano-bots.gemspec
gem signin
gem push nano-bots-3.4.0.gem