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