[ PROMPT_NODE_23936 ]
AI Search API 参考
[ SKILL_DOCUMENTATION ]
# AI Search API 参考
## Workers 绑定
typescript
const answer = await env.AI.autorag("instance-name").aiSearch(options);
const results = await env.AI.autorag("instance-name").search(options);
const instances = await env.AI.autorag("_").listInstances();
## aiSearch() 选项
typescript
interface AiSearchOptions {
query: string; // 用户查询
model: string; // Workers AI 模型 ID
system_prompt?: string; // LLM 指令
rewrite_query?: boolean; // 修复拼写错误(默认:false)
max_num_results?: number; // 最大分块数(默认:10)
ranking_options?: { score_threshold?: number }; // 0.0-1.0(默认:0.3)
reranking?: { enabled: boolean; model: string };
stream?: boolean; // 流式响应(默认:false)
filters?: Filter; // 元数据过滤器
page?: string; // 分页令牌
}
## 响应
typescript
interface AiSearchResponse {
search_query: string; // 使用的查询(如果启用则为重写后的)
response: string; // AI 生成的答案
data: SearchResult[]; // 检索到的分块
has_more: boolean;
next_page?: string;
}
interface SearchResult {
id: string;
score: number;
content: string;
metadata: { filename: string; folder: string; timestamp: number };
}
## 过滤器
typescript
// 比较
{ column: "folder", operator: "gte", value: "docs/" }
// 复合
{ operator: "and", filters: [
{ column: "folder", operator: "gte", value: "docs/" },
{ column: "timestamp", operator: "gte", value: 1704067200 }
]}
**运算符:** `eq`, `ne`, `gt`, `gte`, `lt`, `lte`
**内置元数据:** `filename`, `folder`, `timestamp` (Unix 秒数)
## 流式传输
typescript
const stream = await env.AI.autorag("docs").aiSearch({ query, model, stream: true });
return new Response(stream, { headers: { "Content-Type": "text/event-stream" } });
## 错误类型
| 错误 | 原因 |
|-------|-------|
| `AutoRAGNotFoundError` | 实例不存在 |
| `AutoRAGUnauthorizedError` | 令牌无效/缺失 |
| `AutoRAGValidationError` | 参数无效 |
## REST API
bash
curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/autorag/rags/{NAME}/ai-search
-H "Authorization: Bearer {TOKEN}"
-d '{"query": "...", "model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast"}'
需要具备 "AI Search" 权限的服务 API 令牌。