---
title: Messages
description: رابط 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:**

```bash
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):**

```python
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):**

```js
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);
```

## ساختار پاسخ

```json
{
  "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

قبل از ارسال درخواست می‌توانید تعداد توکن را تخمین بزنید:

```bash
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": "سلام دانا!"}]
  }'
```

پاسخ:

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