Messages
رابط Anthropic برای ارسال پیام و شمارش توکن با مدلهای دانا
دانا رابط Anthropic را به صورت translate mode پیادهسازی کرده است. درخواستهای Anthropic به صورت شفاف به موتور OpenAI-compatible دانا منتقل میشوند.
نقطههای پایانی
POST https://api.dana.expert/v1/messages
POST https://api.dana.expert/v1/messages/count_tokensپارامترها - Messages
| پارامتر | نوع | اجباری | توضیح |
|---|---|---|---|
model | string | بله | شناسه مدل: dana-1 یا dana-1-fast |
messages | array | بله | آرایه پیامهای مکالمه |
max_tokens | integer | بله | حداکثر توکن در پاسخ |
system | string | خیر | پیام system |
stream | boolean | خیر | streaming SSE (پیشفرض: false) |
temperature | number | خیر | تنوع خروجی: ۰ تا ۱ |
top_p | number | خیر | nucleus sampling |
stop_sequences | array | خیر | توالیهای توقف |
نمونهها - Messages
curl:
curl https://api.dana.expert/v1/messages \
-H "Authorization: Bearer $DANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dana-1-fast",
"max_tokens": 256,
"system": "دستیار فارسیزبان هستید.",
"messages": [{"role": "user", "content": "سلام دانا!"}]
}'Python (anthropic SDK):
import anthropic
client = anthropic.Anthropic(
api_key="$DANA_API_KEY",
base_url="https://api.dana.expert",
)
message = client.messages.create(
model="dana-1-fast",
max_tokens=256,
system="دستیار فارسیزبان هستید.",
messages=[{"role": "user", "content": "سلام دانا!"}],
)
print(message.content[0].text)Node.js (anthropic SDK):
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.DANA_API_KEY,
baseURL: "https://api.dana.expert",
});
const message = await client.messages.create({
model: "dana-1-fast",
max_tokens: 256,
system: "دستیار فارسیزبان هستید.",
messages: [{ role: "user", content: "سلام دانا!" }],
});
console.log(message.content[0].text);ساختار پاسخ
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "dana-1-fast",
"content": [{"type": "text", "text": "سلام! چطور میتوانم کمکتان کنم؟"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 18, "output_tokens": 14}
}شمارش توکن - count_tokens
قبل از ارسال درخواست میتوانید تعداد توکن را تخمین بزنید:
curl https://api.dana.expert/v1/messages/count_tokens \
-H "Authorization: Bearer $DANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dana-1",
"system": "دستیار فارسیزبان هستید.",
"messages": [{"role": "user", "content": "سلام دانا!"}]
}'پاسخ:
{"input_tokens": 18}از این مقدار برای برآورد هزینه و جلوگیری از خطای max_tokens استفاده کنید.
نکتههای مهم
- رابط Anthropic در translate mode کار میکند: streaming و tool-call streaming حفظ میشوند.
base_urlرا بهhttps://api.dana.expert(بدون/v1) تنظیم کنید؛ SDK خودش/v1/messagesرا اضافه میکند.- هر دو
dana-1وdana-1-fastدر این رابط پشتیبانی میشوند.