ATP - ایجاد گفتگو (POST /api/v1/conversations/)
Endpoint
POST /api/v1/conversations/
هدف آزمون
ایجاد conversation، turn اول کاربر و شروع پاسخ assistant.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ارسال query در discover flow
- دریافت 201 با conversation_id و turn_id
- اتصال SSE به stream_url
- دریافت tokens و recommendations
معرفی ویژگی
این endpoint عملیات «ایجاد گفتگو» را در API Patent Genie انجام میدهد.
- throttle: 60/min per user
- stream_url: مسیر نسبی برای SSE
- recommendations: محصولات گردشکار در turn assistant
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
POST /api/v1/conversations/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: گفتگو با invention_case
- ارسال invention_case_id همراه query
- بررسی لینک conversation به case
- بررسی recommendations متناسب با progress case
سناریو 4: rate limit
- ارسال >۶۰ request در ۱ دقیقه
- دریافت 429
- بررسی Retry-After
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| query | Body | string | بله | متن اولیه کاربر (حداکثر ۸۰۰۰) |
| workspace_id | Body | uuid | خیر | فضای کاری مرتبط |
| invention_case_id | Body | uuid | خیر | پرونده مرتبط |
| file_ids | Body | uuid[] | خیر | اسناد پیوست |
| product_keys | Body | string[] | خیر | محصولات پیشنهادی |
| source | Body | string | خیر | discover |
Swagger
post:
summary: ایجاد گفتگو
responses:
201:
description: منبع ایجاد شد
400:
description: داده ورودی نامعتبر
401:
description: احراز هویت نامعتبر
نمونه ورودی
curl -X POST "http://localhost:8000/api/v1/conversations/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json" \
-d '{"query":"I have an idea for a smart valve in EV cooling","source":"discover"}'
نمونه خروجی
{
"success": true,
"data": {
"conversation_id": "...",
"turn_id": 1,
"stream_url": "/api/v1/conversations/.../stream/?turn_id=1",
"conversation": { "title": "...", "status": "active", "turns": [] }
}
}
Status Codes
- 201: گفتگو ایجاد شد
- 400: validation
- 429: rate limit
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده میشود.
روال صحتسنجی
- بررسی کد وضعیت HTTP
- بررسی فیلد success در بدنه
- بررسی عدم افشای داده حساس
توضیحات
- مسیر باید با پیادهسازی فعلی urls.py همخوان باشد