تنفيذ مواصفات Bots Nano بدعم من كلود ، Cohere Command ، 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 متاحًا لمشروعك أو نظامك.
أمثلة على الاستخدام:
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' )يمكنك الحصول على مفتاح واجهة برمجة التطبيقات الخاصة بك في Maltitalk.
أرفق بيانات الاعتماد في عروض أسعار واحدة عند استخدام متغيرات البيئة لمنع المشكلات مع حرف $ في مفتاح 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 تحقق من مواصفات Bots Nano لمعرفة المزيد حول كيفية بناء خراطيش.
جرب عيادة Nano Bots (محرر مباشر) للتعرف على إنشاء خراطيش.
إليك ما يبدو عليه خرطوشة روبوت نانو:
---
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 و Model gemini-pro . مقدمي الخدمات الآخرين ليس لديهم الدعم بعد.
تحقق من مواصفات Bots Nano لمعرفة المزيد حول الأدوات (الوظائف).
نحن نستكشف استخدام clojure من خلال Babashka ، مدعوم من Graalvm.
سيكون الدعم التجريبي لـ Clojure مشابهًا ل Lua و Fennel ، باستخدام 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 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يمكنك استكشاف سوق 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 الخاص بك ، فإن الإجراءات التي اتخذت لم تكن خاصة بك.
يمكنك تحديد معرفات المستخدم النهائي المخصص بالطريقة التالية:
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.
استنساخ المستودع ونسخ قالب Docker:
git clone https://github.com/icebaker/ruby-nano-bots.git
cd ruby-nano-bots
cp docker-compose.example.yml docker-compose.yml
قم بتعيين بيانات اعتماد مزودك واختر المسار المطلوب لملفات 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 تذكر أن 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