شروع سریع

نخستین درخواست به هدهد و سنجه با نمونه‌های curl، Python و Node.js

سه قدم تا نخستین پاسخ: کلید بسازید، در متغیر محیطی بگذارید، یک متن انگلیسی برای ترجمه بفرستید. بعد همان کلید را روی سنجه امتحان کنید.

۱. کلید API بسازید

در کنسول دانا روی ساخت کلید بزنید و نامی بگذارید که بشناسیدش. کلید با dn-live- شروع می‌شود و فقط همان یک بار کامل نشان داده می‌شود، پس همان‌جا کپی کنید.

۲. کلید را در محیط بگذارید

export DANA_API_KEY="dn-live-..."

۳. یک متن ترجمه کنید

curl https://api.dana.expert/v1/translate \
  -H "Authorization: Bearer $DANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "The meeting moved to Tuesday."}'
import os

import requests

r = requests.post(
    "https://api.dana.expert/v1/translate",
    headers={"Authorization": f"Bearer {os.environ['DANA_API_KEY']}"},
    json={"text": "The meeting moved to Tuesday."},
    timeout=60,
)
r.raise_for_status()
print(r.json()["text"])
const r = await fetch("https://api.dana.expert/v1/translate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.DANA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ text: "The meeting moved to Tuesday." }),
});
console.log((await r.json()).text);

پاسخ موفق

{
  "text": "جلسه به روز سه‌شنبه موکول شد.",
  "register": "formal",
  "model": "dana-translator",
  "model_version": "hodhod-v2.3",
  "fallback": false,
  "usage": {"prompt_tokens": 6, "completion_tokens": 22, "total_tokens": 28}
}

model_version نسخهٔ مترجمی است که جواب داده: هدهد v2.3. جزئیات لحن و فیلدها در مترجم است.

بعد از ترجمه، سنجه را امتحان کنید

همان کلید روی POST /v1/decide هم کار می‌کند. یک متن و یک پرسش بله یا خیر بفرستید:

curl https://api.dana.expert/v1/decide \
  -H "Authorization: Bearer $DANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "سه روز است سفارشم را پرداخت کرده‌ام ولی هنوز ارسال نشده.",
    "questions": {"complaint": {"type": "noul", "instructions": "آیا این پیام شکایت است؟"}}
  }'

جواب احتمال «بله» را می‌دهد، مثلا "noul": 0.9521، همراه "model": "ghanari" و "model_version": "ghanari-ir-v0.1". سه نوع پرسش و مدل کبوتر در سنجه آمده است.

اگر جواب نگرفتید

کدی که دیدیدمعنایشکار بعدی
401کلید نرسید یا شناخته نشدببینید $DANA_API_KEY واقعا مقدار دارد و فاصلهٔ اضافه ندارد
400بدنهٔ درخواست درست نیستمتن پیام خطا می‌گوید کدام فیلد
429نرخ، ظرفیت، سقف توکن یا اعتبارفیلد type را بخوانید؛ چهار علت جدا دارد
503 با code برابر model_unavailableمدل همین حالا در دسترس نیستچند دقیقه بعد دوباره بفرستید

فهرست کامل کدها و راه‌حل هرکدام در خطاها آمده است. هدر درست Authorization: Bearer <key> است؛ کلید بدون Bearer همان 401 را می‌دهد.

گفت‌وگو با هما

همان کلید روی هما هم کار می‌کند: "model": "homa" را به POST /v1/chat/completions یا POST /v1/messages بفرستید. نمونه و محدودیت‌ها در هما آمده است.

قدم بعدی

  • مترجم: لحن، فیلدهای پاسخ و هزینه
  • سنجه: سه نوع پرسش و دو مدل قناری و کبوتر
  • هما: گفت‌وگو به فارسی، پارامترها و محدودیت‌ها
  • حساب و کلید API: حساب، کلید live و test و نگهداری امن آن‌ها
  • محدودیت‌ها: سقف نرخ و مدیریت 429