La API de Nano Bots aprovecha Ruby-nano-bots para crear una API HTTP, lo que le permite integrar sus Nano Bots a través de solicitudes web.
Los Nano Bots son pequeños bots impulsados por IA que se pueden compartir fácilmente como un solo archivo, diseñados para admitir múltiples proveedores como Anthropic Claude, Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT y otros. con soporte para llamadas a herramientas (funciones).
Esta API está disponible de forma gratuita como API pública en: https://api.nbots.io
Se utiliza para alimentar los siguientes proyectos:
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 el archivo .env.example
a .env
, complete los datos necesarios y ejecute el 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
Lea la documentación de Ruby Nano Bots para conocer las funciones de seguridad y privacidad.
Le recomendamos encarecidamente que defina una NANO_BOTS_ENCRYPTION_PASSWORD
para aumentar la seguridad y privacidad de sus usuarios.
La API garantiza que las herramientas (funciones) se ejecuten en modo de espacio aislado cuando la variable de entorno FORCE_SANDBOXED
esté configurada en true
. Puede configurarlo como false
bajo su propia responsabilidad. Obtenga más información sobre lo que significa estar en un espacio aislado en la especificación Nano Bots.
Además, la API no permite herramientas confirmable
; Según la implementación actual, bloquearía las solicitudes sin poder recopilar una respuesta de confirmación de los usuarios.
Verbo | Camino | Descripción |
---|---|---|
CONSEGUIR | / | Obtenga la versión. |
CONSEGUIR | /cartuchos | Obtenga todos los cartuchos disponibles. |
CORREO | /cartuchos/fuente | Mostrar el código fuente de un cartucho. |
CORREO | /cartuchos | Evaluar la entrada. |
CORREO | /cartuchos/flujo | Cree una secuencia para agruparla para una evaluación. |
CONSEGUIR | /cartuchos/flujo/:id | Obtenga el flujo actual de un 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
Las mismas cargas útiles que se utilizaron para POST /cartridges
:
{
"cartridge" : " - " ,
"state" : " - " ,
"input" : " hi "
}
Una vez que haya instalado las dependencias con bundle
, ejecute Rubocop con el indicador -A
para realizar correcciones automáticas.
rubocop -A
Si tiene problemas para actualizar las versiones de gemas:
bundle install --full-index