A API Nano Bots aproveita ruby-nano-bots para criar uma API HTTP, permitindo integrar seus Nano Bots por meio de solicitações da web.
Nano Bots são pequenos bots alimentados por IA que podem ser facilmente compartilhados como um único arquivo, projetados para oferecer suporte a vários provedores, como Anthropic Claude, Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT e outros. com suporte para chamar ferramentas (funções).
Esta API está disponível gratuitamente como API pública em: https://api.nbots.io
É usado para alimentar os seguintes projetos:
Requisitos:
build-essential libffi-dev libsodium-dev lua5.4-dev
git clone https://github.com/icebaker/nano-bots-api.git
cd nano-bots-api
Copie o arquivo .env.example
para .env
e preencha os dados necessários e execute o servidor:
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
Leia a documentação do Ruby Nano Bots para aprender sobre os recursos de segurança e privacidade.
Recomendamos fortemente que você defina uma NANO_BOTS_ENCRYPTION_PASSWORD
para aumentar a segurança e privacidade de seus usuários.
A API garante que as ferramentas (funções) sejam executadas no modo sandbox quando a variável de ambiente FORCE_SANDBOXED
estiver definida como true
. Você pode defini-lo como false
por sua própria conta e risco. Saiba mais sobre o que significa estar em sandbox na especificação Nano Bots.
Além disso, a API não permite ferramentas confirmable
; de acordo com a implementação atual, bloquearia solicitações sem poder coletar uma resposta de confirmação dos usuários.
Verbo | Caminho | Descrição |
---|---|---|
PEGAR | / | Obtenha a versão. |
PEGAR | /cartuchos | Obtenha todos os cartuchos disponíveis. |
PUBLICAR | /cartuchos/fonte | Mostre o código-fonte de um cartucho. |
PUBLICAR | /cartuchos | Avalie a entrada. |
PUBLICAR | /cartuchos/fluxo | Crie um fluxo a ser agrupado para uma avaliação. |
PEGAR | /cartuchos/fluxo/:id | Obtenha o fluxo atual de um cartucho. |
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
As mesmas cargas usadas para POST /cartridges
:
{
"cartridge" : " - " ,
"state" : " - " ,
"input" : " hi "
}
Depois de instalar as dependências com bundle
, execute Rubocop com o sinalizador -A
para correções automáticas.
rubocop -A
Se você enfrentar problemas ao atualizar as versões do gem:
bundle install --full-index