Nano Bots API는 ruby-nano-bots를 활용하여 HTTP API를 생성하므로 웹 요청을 통해 Nano Bots를 통합할 수 있습니다.
Nano Bots는 단일 파일로 쉽게 공유할 수 있는 작은 AI 기반 봇으로, Anthropic Claude, Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT 등과 같은 여러 제공업체를 지원하도록 설계되었습니다. 도구(함수) 호출을 지원합니다.
이 API는 https://api.nbots.io에서 공개 API로 무료로 제공됩니다.
다음 프로젝트에 전력을 공급하는 데 사용됩니다.
요구사항:
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
를 정의하는 것이 좋습니다.
API는 FORCE_SANDBOXED
환경 변수가 true
로 설정된 경우 도구(함수)가 샌드박스 모드에서 실행되도록 합니다. 귀하는 자신의 책임 하에 이를 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