شروع سریع
از صفر تا نخستین پاسخ موفق API دانا در سه قدم، با نمونه curl و Python و Node.js
سه قدم تا نخستین پاسخ: کلید بسازید، در متغیر محیطی بگذارید، درخواست بفرستید.
۱. کلید API بسازید
در کنسول دانا روی ساخت کلید بزنید و نامی بگذارید که بعدا بشناسیدش. کلید با dn-live- شروع میشود و فقط همان یک بار کامل نشان داده میشود، پس همانجا کپی کنید.
۲. کلید را در محیط بگذارید
export DANA_API_KEY="dn-live-..."۳. درخواست بفرستید
curl:
curl https://api.dana.expert/v1/chat/completions \
-H "Authorization: Bearer $DANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"dana-1","messages":[{"role":"user","content":"سلام دانا!"}]}'Python (openai SDK):
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DANA_API_KEY"],
base_url="https://api.dana.expert/v1",
)
response = client.chat.completions.create(
model="dana-1",
messages=[{"role": "user", "content": "سلام دانا!"}],
)
print(response.choices[0].message.content)Node.js (openai SDK):
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DANA_API_KEY,
baseURL: "https://api.dana.expert/v1",
});
const response = await client.chat.completions.create({
model: "dana-1",
messages: [{ role: "user", content: "سلام دانا!" }],
});
console.log(response.choices[0].message.content);پاسخ موفق
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"model": "dana-1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "سلام! چطور میتوانم کمکتان کنم؟"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 14,
"total_tokens": 22
}
}اگر جواب نگرفتید
| کدی که دیدید | معنایش | کار بعدی |
|---|---|---|
401 | کلید نرسید یا شناخته نشد | ببینید $DANA_API_KEY واقعا مقدار دارد و فاصله اضافه ندارد |
429 | نرخ، ظرفیت، سقف توکن یا اعتبار | فیلد type را بخوانید؛ چهار علت جدا دارد |
503 با code برابر coming_soon | سرویسدهی مدل هنوز روشن نشده | صبر کنید؛ تلاش مجدد جواب را عوض نمیکند |
فهرست کامل کدها و راهحل هرکدام در خطاها آمده است.
دو نکته که بیشتر از همه وقت میگیرند:
- برای رابط OpenAI مقدار
base_urlباید/v1داشته باشد. برای رابط Anthropic نباید داشته باشد. - هدر درست
Authorization: Bearer <key>است. کلید خالی و بدونBearerهمان401را میدهد.
قدم بعدی
- احراز هویت - کلید
liveوtestو نگهداری امن آنها - Chat Completions - همه پارامترها و streaming
- Messages - رابط Anthropic و شمارش توکن
- محدودیتها - سقف نرخ و مدیریت
429