← بازگشت به فهرست ATP
پیش‌نویس ادعا و توصیف

تولید پیش‌نویس ادعاهای اختراع (POST /api/v1/draft/claims)

POST /api/v1/draft/claims مشاهده در Swagger

ATP - تولید پیش‌نویس ادعاهای اختراع (POST /api/v1/draft/claims)

Endpoint

POST /api/v1/draft/claims

هدف آزمون

تولید ادعاهای فارسی ساخت‌یافته و markdown از InventionContext و PriorArtSearchResult.

شرایط آزمون

فرآیند آزمون

  1. آماده‌سازی body با فیلدهای context و prior_art
  2. ارسال POST به /api/v1/draft/claims
  3. دریافت ClaimsDraftResponse یا فایل markdown
  4. بررسی claims، grounding_claims، claim_prose و markdown_fa

معرفی ویژگی

endpoint تولید ادعانامه فارسی: از زمینه اختراع و نتیجه جستجوی پیشینه، لایه‌های grounding/prose/claims و متن markdown ساخته می‌شود.

سناریوی آزمون

سناریو 1: تولید موفق ادعانامه JSON

  1. ارسال body با context و prior_art معتبر
  2. دریافت کد 200
  3. بررسی schema_version برابر claims.v2 و غیرخالی بودن claims و markdown_fa

سناریو 2: خطا — نبود prior_art

  1. ارسال body فقط با context و بدون prior_art
  2. ارسال POST
  3. دریافت کد 400 با پیام الزام prior_art

سناریو 3: دانلود ادعانامه با query parameter

  1. ارسال body معتبر با download=true
  2. دریافت کد 200 و Content-Type برابر text/markdown
  3. بررسی Content-Disposition و پسوند .claims.md
  4. بررسی غیرخالی بودن محتوای فایل

سناریو 4: دانلود ادعانامه با Accept header

  1. ارسال body معتبر با header برابر Accept: text/markdown
  2. دریافت کد 200 و markdown بدون نیاز به download=true

سناریو 5: تولید با verbose

  1. ارسال body معتبر با verbose=true
  2. دریافت کد 200
  3. بررسی ثبت trace در لاگ سرویس

سناریو 6: خطا — کلید LLM تنظیم نشده

  1. حذف کلید فعال LLM
  2. ارسال body معتبر
  3. دریافت کد 503
  4. بررسی اشاره پیام به AVALAI_API_KEY یا OPENAI_API_KEY

سناریو 7: Worker — کلید artifact نامعتبر

  1. انتشار ClaimsDraftRequested با context_artifact_key خارج از prefix workspace
  2. عدم فراخوانی claims runner
  3. دریافت draft.claims.failed با error_code=INVALID_ARTIFACT_KEY
  4. retryable=false

سناریو 8: Worker — ادعا ناقص یا نامعتبر

  1. شبیه‌سازی خروجی بدون claims یا validation.is_valid=false
  2. عدم انتشار ClaimsDraftCompleted
  3. دریافت draft.claims.failed با error_code=CLAIMS_GENERATION_ERROR

قالب API

مولفه نوع نوع داده اجباری توضیحات
context Body object بله InventionContext JSON (یا کل body به‌عنوان context)
prior_art Body object بله PriorArtSearchResult JSON از مرحله search
verbose Query boolean خیر (پیش‌فرض: false) trace تفصیلی در لاگ
download Query boolean خیر (پیش‌فرض: false) دانلود فایل .claims.md

Swagger

post:
  summary: Generate Persian patent claims from invention context and prior-art analysis
  responses:
    200:
      description: Persian claims draft as JSON or downloadable markdown
    400:
      description: Invalid body or claims generation validation error
    503:
      description: LLM API key not configured
    500:
      description: Claims generation failed

نمونه ورودی

curl -X POST "http://127.0.0.1:8000/api/v1/draft/claims" \
  -H "Content-Type: application/json" \
  -d @claims_request.json

نمونه خروجی

{
  "schema_version": "claims.v2",
  "case_id": "case-001",
  "markdown_fa": "ادعانامه\n\nآنچه ادعا می شود:\n\n...",
  "grounding_claims": [],
  "claim_prose": [],
  "claims": [],
  "claim_strategy": {},
  "validation": { "is_valid": true },
  "warnings": [],
  "metrics": { "duration_ms": 1200 }
}

Status Codes

نتیجه مورد انتظار

پاسخ JSON با claims.v2 و markdown_fa فارسی، یا فایل .claims.md قابل دانلود با کد 200.

روال صحت‌سنجی

  1. بررسی کد 200 برای body معتبر
  2. بررسی وجود claims و markdown_fa
  3. بررسی دانلود با download=true و Content-Type برابر text/markdown
  4. بررسی 400 بدون prior_art
  5. بررسی 503 بدون کلید API

توضیحات