nanobot/examples/curl.txt

97 lines
2.7 KiB
Plaintext

# =============================================================================
# nanobot OpenAI-Compatible API — curl examples
# =============================================================================
#
# Prerequisites:
# pip install nanobot-ai[api] # installs aiohttp
# nanobot serve --port 8900 # start the API server
#
# The x-session-key header is REQUIRED for every request.
# Convention:
# Private chat: wx:dm:{sender_id}
# Group @: wx:group:{group_id}:user:{sender_id}
# =============================================================================
# --- 1. Basic chat completion (private chat) ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-session-key: wx:dm:user_alice" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "Hello, who are you?"}
]
}'
# --- 2. Follow-up in the same session (context is remembered) ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-session-key: wx:dm:user_alice" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "What did I just ask you?"}
]
}'
# --- 3. Different user — isolated session ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-session-key: wx:dm:user_bob" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "What did I just ask you?"}
]
}'
# ↑ Bob gets a fresh context — he never asked anything before.
# --- 4. Group chat — per-user session within a group ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-session-key: wx:group:group_abc:user:user_alice" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "Summarize our discussion"}
]
}'
# --- 5. List available models ---
curl http://localhost:8900/v1/models
# --- 6. Health check ---
curl http://localhost:8900/health
# --- 7. Missing header — expect 400 ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "hello"}
]
}'
# ↑ Returns: {"error": {"message": "Missing required header: x-session-key", ...}}
# --- 8. Stream not yet supported — expect 400 ---
curl -X POST http://localhost:8900/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-session-key: wx:dm:user_alice" \
-d '{
"model": "nanobot",
"messages": [
{"role": "user", "content": "hello"}
],
"stream": true
}'
# ↑ Returns: {"error": {"message": "stream=true is not supported yet...", ...}}