شروع سریع
کلید API بسازید، Base URL را تنظیم کنید و اولین درخواست را بفرستید.
ساخت کلید API
وارد پنل شوید، از بخش «کلیدها» گزینهٔ «ساخت کلید» را بزنید و برای کلید نامی بگذارید، مثلاً «اسکریپت گزارش». کلید بهصورت کامل نشان داده میشود، اما قابلیت کپی کردن آن هر زمان برایتان وجود دارد. کلیدها با hvd_ شروع میشوند.
آن را در متغیر محیطی HOVEYDAI_API_KEY نگه دارید. اگر کلیدی لو رفت، از پنل حذفش کنید و کلید تازه بسازید.
به چه چیزی نیاز دارید
به کتابخانهٔ اختصاصی هویدای نیازی نیست. SDK (کتابخانهٔ کلاینت) میتواند اتصال برنامهتان به API را سادهتر کند، اما یک درخواست HTTP ساده هم کافی است: قالب درخواست و پاسخ مانند رایجترین APIهای گفتگو است، پس با ابزارها و کتابخانههای آشنای HTTP هم کار میکند. نمونههای زیر برای پایتون از requests و برای جاوااسکریپت از fetch داخلی استفاده میکنند و تب curl خود درخواست را نشان میدهد.
pip install requestsاولین درخواست
دو مقدار مشخص میکنند به کدام API و با کدام حساب وصل میشوید: Base URL و کلید. بقیه یک درخواست JSON معمولی به POST /chat/completions است.
import os import requests BASE = "https://api.hoveydai.ir/v1"API_KEY = os.environ["HOVEYDAI_API_KEY"] reply = requests.post( f"{BASE}/chat/completions", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "MODEL_ID", "messages": [{"role": "user", "content": "Hello! Introduce yourself in one sentence."}], }, timeout=60,)reply.raise_for_status()print(reply.json()["choices"][0]["message"]["content"])
بهجای MODEL_ID شناسهٔ یکی از مدلها را بگذارید؛ فهرست آن در مدلها و قیمت و مدلها است. اگر پاسخ در خروجی چاپ شد، همهچیز درست کار میکند.
استریم پاسخ
برای نمایش پاسخ همزمان با نوشتهشدنش، "stream": True را به بدنه اضافه کنید، به requests.post آرگومان stream=True بدهید و خطهای data: را بخوانید. استریم با data: [DONE] تمام میشود.
import json payload = { "model": "MODEL_ID", "messages": [{"role": "user", "content": "Write a two-line poem."}], "stream": True,}with requests.post( f"{BASE}/chat/completions", headers={"Authorization": f"Bearer {API_KEY}"}, json=payload, stream=True, timeout=120,) as reply: reply.raise_for_status() for line in reply.iter_lines(decode_unicode=True): if not line.startswith("data: "): continue data = line[len("data: "):] if data == "[DONE]": break chunk = json.loads(data) print(chunk["choices"][0]["delta"].get("content") or "", end="")
مصرف در آخرین قطعه و خطاهایی که وسط استریم میرسند در صفحهٔ استریم پاسخ آمده است.
اگر خطا گرفتید
سه خطای رایج در همان تماس اول:
| وضعیت | یعنی | کار بعدی |
|---|---|---|
401 | کلید نادرست است یا فرستاده نشده. | کلید داخل کد را با کلید پنل مقایسه کنید و هدر Authorization: Bearer ... را ببینید. |
404 | شناسهٔ مدل را نمیشناسیم. | شناسه را از فهرست مدلها کپی کنید. |
429 | در مدت کوتاه درخواست زیادی فرستادهاید. | به اندازهٔ ثانیههای Retry-After صبر کنید و دوباره بفرستید. |
هر کد، علت و راهحلش در صفحهٔ خطاها آمده است.
گام بعدی
- احراز هویت: نگهداری کلید و کلید جدا برای هر برنامه.
- استریم پاسخ: خواندن قطعهها در مرورگر و سرور.
- مرجع نقطههای پایانی: همهٔ پارامترها و پاسخها.
این صفحه کمکتان نکرد؟ به ما بگویید.