هویدای

شروع سریع

کلید 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] تمام می‌شود.

Python
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 صبر کنید و دوباره بفرستید.

هر کد، علت و راه‌حلش در صفحهٔ خطاها آمده است.

گام بعدی

این صفحه کمکتان نکرد؟ به ما بگویید.