API Nano Bots использует Ruby-nano-bots для создания HTTP API, что позволяет интегрировать ваших Nano Bots через веб-запросы.
Nano Bots — это небольшие боты на базе искусственного интеллекта, которыми можно легко поделиться в виде одного файла, предназначенные для поддержки нескольких поставщиков, таких как Anthropic Claude, Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT и других. с поддержкой вызова инструментов (функций).
Этот API доступен бесплатно как общедоступный API по адресу: https://api.nbots.io.
Он используется для питания следующих проектов:
Требования:
build-essential libffi-dev libsodium-dev lua5.4-dev
git clone https://github.com/icebaker/nano-bots-api.git
cd nano-bots-api
Скопируйте файл .env.example
в .env
, заполните необходимые данные и запустите сервер:
cp .env.example .env
bundle
./init.sh
git clone https://github.com/icebaker/nano-bots-api.git
cd nano-bots-api
./build.sh
cp docker-compose.example.yml docker-compose.yml # Provide your credentials.
docker-compose up -d
# http://localhost:3048
Прочтите документацию Ruby Nano Bots, чтобы узнать о функциях безопасности и конфиденциальности.
Мы настоятельно рекомендуем вам определить NANO_BOTS_ENCRYPTION_PASSWORD
, чтобы повысить безопасность и конфиденциальность ваших пользователей.
API гарантирует, что инструменты (функции) будут работать в изолированном режиме, если для переменной среды FORCE_SANDBOXED
установлено значение true
. Вы можете установить значение false
на свой страх и риск. Узнайте больше о том, что означает «песочница», в спецификации Nano Bots.
Кроме того, API не поддерживает confirmable
инструменты; согласно текущей реализации, он будет блокировать запросы, не имея возможности получить подтверждающий ответ от пользователей.
Глагол | Путь | Описание |
---|---|---|
ПОЛУЧАТЬ | / | Получите версию. |
ПОЛУЧАТЬ | /картриджи | Соберите все доступные картриджи. |
ПОЧТА | /картриджи/источник | Покажите исходник картриджа. |
ПОЧТА | /картриджи | Оцените вводимые данные. |
ПОЧТА | /картриджи/поток | Создайте поток, который будет объединен для оценки. |
ПОЛУЧАТЬ | /картриджи/поток/:id | Получите текущий поток картриджа. |
POST /cartridges/source
{
"id" : " - "
}
POST /cartridges
{
"cartridge" : " - " ,
"state" : " - " ,
"input" : " hi "
}
POST /cartridges
{
"cartridge" : {
"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. "
}
},
"interfaces" : {
"repl" : {
"prompt" : [
{ "text" : " ? " },
{ "text" : " > " , "color" : " blue " }
]
}
},
"provider" : {
"id" : " openai " ,
"credentials" : {
"access-token" : " ENV/OPENAI_API_KEY "
},
"settings" : {
"user" : " ENV/NANO_BOTS_END_USER " ,
"model" : " gpt-3.5-turbo "
}
}
},
"state" : " - " ,
"input" : " hi "
}
POST /cartridges
{
"as" : " repl " ,
"action" : " boot " ,
"cartridge" : " - " ,
"state" : " a21179b6104703af19328485101be839 "
}
POST /cartridges
{
"as" : " repl " ,
"action" : " eval " ,
"cartridge" : " - " ,
"state" : " a21179b6104703af19328485101be839 "
}
POST /cartridges
{
"as" : " eval " ,
"action" : " boot " ,
"cartridge" : " - " ,
"state" : " 5677e56bbff1e8137c8eb1f60d2623ac "
}
POST /cartridges
{
"as" : " eval " ,
"action" : " eval " ,
"cartridge" : " - " ,
"state" : " 5677e56bbff1e8137c8eb1f60d2623ac "
}
POST /cartridges/stream
Те же полезные данные, которые использовались для POST /cartridges
:
{
"cartridge" : " - " ,
"state" : " - " ,
"input" : " hi "
}
После установки зависимостей с помощью bundle
запустите Rubocop с флагом -A
для автоматического исправления.
rubocop -A
Если у вас возникли проблемы с обновлением версий Gem:
bundle install --full-index