L'API Nano Bots exploite les ruby-nano-bots pour créer une API HTTP, vous permettant d'intégrer vos Nano Bots via des requêtes Web.
Les Nano Bots sont de petits robots alimentés par l'IA qui peuvent être facilement partagés sous forme de fichier unique, conçus pour prendre en charge plusieurs fournisseurs tels que Anthropic Claude, Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT et autres. avec prise en charge des outils d'appel (fonctions).
Cette API est disponible gratuitement en tant qu'API publique sur : https://api.nbots.io
Il est utilisé pour alimenter les projets suivants :
Exigences:
build-essential libffi-dev libsodium-dev lua5.4-dev
git clone https://github.com/icebaker/nano-bots-api.git
cd nano-bots-api
Copiez le fichier .env.example
dans .env
, remplissez les données nécessaires et exécutez le serveur :
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
Lisez la documentation Ruby Nano Bots pour en savoir plus sur les fonctionnalités de sécurité et de confidentialité.
Nous vous recommandons fortement de définir un NANO_BOTS_ENCRYPTION_PASSWORD
pour augmenter la sécurité et la confidentialité de vos utilisateurs.
L'API garantit que les outils (fonctions) s'exécutent en mode sandbox lorsque la variable d'environnement FORCE_SANDBOXED
est définie sur true
. Vous pouvez le définir sur false
à vos propres risques. Apprenez-en davantage sur ce que signifie être mis en bac à sable dans la spécification Nano Bots.
De plus, l'API n'autorise pas les outils confirmable
; selon la mise en œuvre actuelle, il bloquerait les demandes sans pouvoir recueillir une réponse de confirmation des utilisateurs.
Verbe | Chemin | Description |
---|---|---|
OBTENIR | / | Obtenez la version. |
OBTENIR | /cartouches | Obtenez toutes les cartouches disponibles. |
POSTE | /cartouches/source | Afficher le code source d'une cartouche. |
POSTE | /cartouches | Évaluez la contribution. |
POSTE | /cartouches/flux | Créez un flux à regrouper pour une évaluation. |
OBTENIR | /cartouches/flux/:id | Obtenez le flux actuel d’une cartouche. |
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
Les mêmes charges utiles qui ont été utilisées pour POST /cartridges
:
{
"cartridge" : " - " ,
"state" : " - " ,
"input" : " hi "
}
Une fois que vous avez installé les dépendances avec bundle
, exécutez Rubocop avec l'indicateur -A
pour les correctifs automatiques.
rubocop -A
Si vous rencontrez des problèmes lors de la mise à niveau des versions de gem :
bundle install --full-index