[AI66-2]FTO Search - Refine Proposal
Refines the technical proposal description, with optional downloadable image URLs for multimodal refinement. task_id may be omitted and is auto-generated. POST returns running immediately; poll GET /fto_steps/proposal_refine/{task_id} for the result. result.refined_proposal is persisted, so later steps under the same task_id may omit technical_proposal.
Request Parameters
List of parameters supported by this API endpoint
| Name | Type | Example | Description |
|---|---|---|---|
| string | fto-20260928-a1b2c3d4 | Task ID, auto-generated as fto-{yyyymmdd}-{8-hex} when omitted. Usually left unset here since this is typically the first step, and later steps reuse the generated value. |
| string | cn | Input language: cn / en / tw / jp. This step does not currently use this field (kept for compatibility, safe to ignore). |
| string | 一种折叠屏电子设备的转轴结构,包含同步旋转机构与快拆锁定件…… | Raw technical proposal description. Returns 422 when omitted and no historical proposal can be found by task_id. |
| array | [
"https://static.zhihuiya.com/upload/figure-1.png"
] | Optional list of image URLs. The server downloads and converts them to base64 for multimodal refinement (unlike the MCP side's image_files, this takes downloadable URLs, not base64 strings). When omitted, reads back the image_file_keys persisted by create_task and exchanges them for time-limited signed download URLs; falls back to text-only refinement when neither is available. |
Response Schema
Structure of the API response data
| Field Name | Type | Example | Description |
|---|---|---|---|
statusRequired | string | running | Status right after submission, always running; the actual execution happens in the background, poll with GET for the terminal state. |
task_idRequired | string | fto-20260928-a1b2c3d4 | Task ID; when the request body omits it, this is the value generated for this call. Later steps must carry it to continue the chain. |
step_nameRequired | string | proposal_refine | The submitted step name, matching the URL path. |
Success Response Example
Example of a successful API response
JSON
{
"status": true,
"task_id": "fto-20260928-a1b2c3d4",
"step_name": "proposal_refine",
"error_code": 0
}Error Codes
List of possible error codes returned by this endpoint
Business Errors
| Error Code | Description |
|---|---|
68300004 | Invalid parameter! |
68300005 | Search api failure! |
68300006 | Analytic basic access error! |
68300007 | Bad request! |
68300008 | Service error, please try again later! |
68300010 | The file does not comply with upload specifications! |
Platform Errors
| Error Code | Description |
|---|---|
67200000 | API call exceeds the total limit set by the platform! |
67200001 | API call exceeds the total limit set by the platform! |
67200002 | The current call rate is too fast, exceeding the current configuration limit QPS! |
67200003 | The key and secret parameters for applying for the token are incorrect or the client has been disabled! |
67200004 | The requested api does not have permission. Please contact our support personnel! |
67200005 | Insufficient account balance/number of calls! |
67200006 | The client has exceeded the activation validity period! |
67200007 | The current call exceeds the configured usage limit of the day! |
67200008 | Please check if the required apikey in the query parameter has been transmitted! |
67200009 | The apikey does not match the passed bearerToken. Please check if a valid token is being used! |
67200012 | The request is illegal! |
67200100 | The current server status is busy, request response timeout! |
67200101 | The API requested currently does not exist. Please check the request path! |
HTTP Status Codes
| Status Code | Description |
|---|---|
0 | Success |
422 | Validation Error |
409 | 同一 task_id 已有步骤正在运行 |