mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-04-03 18:02:33 +00:00
97 lines
2.7 KiB
Plaintext
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...", ...}}
|