نسخه بتا · دانا به‌زودی عرضه می‌شود
مستندات

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

پارامترنوعاجباریتوضیح
modelstringبلهشناسه مدل: dana-1 یا dana-1-fast
messagesarrayبلهآرایه پیام‌های مکالمه
max_tokensintegerبلهحداکثر توکن در پاسخ
systemstringخیرپیام system
streambooleanخیرstreaming SSE (پیش‌فرض: false)
temperaturenumberخیرتنوع خروجی: ۰ تا ۱
top_pnumberخیرnucleus sampling
stop_sequencesarrayخیرتوالی‌های توقف

نمونه‌ها - 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 در این رابط پشتیبانی می‌شوند.