Nano Bots API 利用 ruby-nano-bots 创建 HTTP API,使您能够通过 Web 请求集成 Nano Bot。
Nano Bot 是小型 AI 驱动的机器人,可以作为单个文件轻松共享,旨在支持多个提供商,例如 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
以提高用户的安全性和隐私性。
当环境变量FORCE_SANDBOXED
设置为true
时,API 确保工具(函数)在沙盒模式下运行。您可以将其设置为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
安装依赖项后,使用-A
标志运行 Rubocop 进行自动修复。
rubocop -A
如果您在升级 gem 版本时遇到问题:
bundle install --full-index