mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-03-21 18:11:27 -07:00
update skills
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# AI Search Patterns
|
||||
|
||||
## search() vs aiSearch()
|
||||
|
||||
| Use | Method | Returns |
|
||||
|-----|--------|---------|
|
||||
| Custom UI, analytics | `search()` | Raw chunks only (~100-300ms) |
|
||||
| Chatbots, Q&A | `aiSearch()` | AI response + chunks (~500-2000ms) |
|
||||
|
||||
## rewrite_query
|
||||
|
||||
| Setting | Use When |
|
||||
|---------|----------|
|
||||
| `true` | User input (typos, vague queries) |
|
||||
| `false` | LLM-generated queries (already optimized) |
|
||||
|
||||
## Multitenancy (Folder-Based)
|
||||
|
||||
```typescript
|
||||
const answer = await env.AI.autorag("saas-docs").aiSearch({
|
||||
query: "refund policy",
|
||||
model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
|
||||
filters: {
|
||||
column: "folder",
|
||||
operator: "gte", // "starts with" pattern
|
||||
value: `tenants/${tenantId}/`
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Streaming
|
||||
|
||||
```typescript
|
||||
const stream = await env.AI.autorag("docs").aiSearch({
|
||||
query, model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", stream: true
|
||||
});
|
||||
return new Response(stream, { headers: { "Content-Type": "text/event-stream" } });
|
||||
```
|
||||
|
||||
## Score Threshold
|
||||
|
||||
| Threshold | Use |
|
||||
|-----------|-----|
|
||||
| 0.3 (default) | Broad recall, exploratory |
|
||||
| 0.5 | Balanced, production default |
|
||||
| 0.7 | High precision, critical accuracy |
|
||||
|
||||
## System Prompt Template
|
||||
|
||||
```typescript
|
||||
const systemPrompt = `You are a documentation assistant.
|
||||
- Answer ONLY based on provided context
|
||||
- If context doesn't contain answer, say "I don't have information"
|
||||
- Include code examples from context`;
|
||||
```
|
||||
|
||||
## Compound Filters
|
||||
|
||||
```typescript
|
||||
// OR: Multiple folders
|
||||
filters: {
|
||||
operator: "or",
|
||||
filters: [
|
||||
{ column: "folder", operator: "gte", value: "docs/api/" },
|
||||
{ column: "folder", operator: "gte", value: "docs/auth/" }
|
||||
]
|
||||
}
|
||||
|
||||
// AND: Folder + date
|
||||
filters: {
|
||||
operator: "and",
|
||||
filters: [
|
||||
{ column: "folder", operator: "gte", value: "docs/" },
|
||||
{ column: "timestamp", operator: "gte", value: oneWeekAgoSeconds }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Reranking
|
||||
|
||||
Enable for high-stakes use cases (adds ~300ms latency):
|
||||
|
||||
```typescript
|
||||
reranking: { enabled: true, model: "@cf/baai/bge-reranker-base" }
|
||||
```
|
||||
Reference in New Issue
Block a user