一切皆对象
在Olostep中,每个资源都是一个具有唯一标识符的对象。无论你通过API、SDK还是仪表板创建它,你都会得到一个可以引用、更新和查询的对象。单数路径 / 面向动作的API
虽然我们总是愿意在面向对象API设计的理念纯粹性上进行激烈而长久的争论 (在/crawls上进行POST应该创建一个crawl对象,而在/crawls/{crawl_id}上进行GET应该帮助你检索该对象并可能更新它——你总是可以更新元数据),
每个集合也会响应其单数名称:POST /v1/answer的行为与POST /v1/answers完全相同,GET /v1/scrape/{scrape_id}与GET /v1/scrapes/{scrape_id}相同,依此类推,适用于batch、crawl、map、search、schedule、monitor、file和feedback。
复数是规范形式,也是本参考文档记录的形式;单数是当你以动作而非对象思考时的别名。
对象可以有生命周期
一些Olostep对象通过status字段跟踪状态。这种状态机模式让你确切知道每个资源在其生命周期中的位置。
批次
批次有两个级别的状态:批次本身和单个项目。 批次状态:批次级别的失败极为罕见。 批次几乎总是完成的——即使某些URL失败,批次本身也会达到
completed状态。在极少数情况下,灾难性基础设施故障(例如,在丰富过程中LLM服务中断)可能导致批次失败。这影响不到0.01%的批次。
项目可能因以下原因失败:
- URL被阻止或返回错误
- 解析器输出缺失
- 网络/获取错误
error对象,其中包含解释失败的code和message。批次仍然完成——在处理结果时检查每个项目的状态。
抓取
抓取总是完成的。 即使抓取发现0个URL(由于robots.txt阻止或无效的起始URL),抓取状态也将是
completed。检查pages_count字段以验证结果。监控
监控是具有比一次性资源更丰富生命周期的长期存在对象:
创建监控返回HTTP
202,状态为provisioning。一旦计划解决其跟踪目标,监控将变为active——轮询GET /v1/monitors/:monitor_id或使用?stream=1流式传输设置事件。只有active的监控可以暂停,只有paused的监控可以恢复。更新在监控仍然provisioning时返回409。
检索模式
许多对象生成的内容可以稍后检索。retrieve_id模式让你无需重新处理即可获取内容。
- 批次项目 — 每个处理的URL都有一个
retrieve_id - 抓取页面 — 每个抓取的页面都有一个
retrieve_id
/v1/retrieve端点接受formats参数以指定返回哪些内容类型(html、markdown、json、text)。