564 lines
48 KiB
YAML
564 lines
48 KiB
YAML
interactions:
|
||
- request:
|
||
headers:
|
||
accept:
|
||
- application/json
|
||
accept-encoding:
|
||
- gzip, deflate, zstd
|
||
connection:
|
||
- keep-alive
|
||
content-length:
|
||
- '114'
|
||
content-type:
|
||
- application/json
|
||
host:
|
||
- localhost:11434
|
||
method: POST
|
||
parsed_body:
|
||
encoding_format: base64
|
||
input:
|
||
- Python is a high-level programming language.
|
||
model: qwen3-embedding:4b
|
||
uri: http://localhost:11434/v1/embeddings
|
||
response:
|
||
headers:
|
||
content-type:
|
||
- application/json
|
||
transfer-encoding:
|
||
- chunked
|
||
parsed_body:
|
||
data:
|
||
- embedding: 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
|
||
index: 0
|
||
object: embedding
|
||
model: qwen3-embedding:4b
|
||
object: list
|
||
usage:
|
||
prompt_tokens: 9
|
||
total_tokens: 9
|
||
status:
|
||
code: 200
|
||
message: OK
|
||
- request:
|
||
headers:
|
||
accept:
|
||
- application/json
|
||
accept-encoding:
|
||
- gzip, deflate, zstd
|
||
connection:
|
||
- keep-alive
|
||
content-length:
|
||
- '4167'
|
||
content-type:
|
||
- application/json
|
||
host:
|
||
- localhost:11434
|
||
method: POST
|
||
parsed_body:
|
||
messages:
|
||
- content: |-
|
||
You are a helpful research assistant powered by haiku.rag, a knowledge base system.
|
||
|
||
CRITICAL RULES:
|
||
1. For greetings or casual chat: respond directly WITHOUT using any tools
|
||
2. NEVER make up information - always use capabilities to get facts from the knowledge base
|
||
3. When a capability returns citations, always include them in your response
|
||
|
||
# RAG
|
||
|
||
You are a RAG assistant with access to a document knowledge base.
|
||
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
|
||
|
||
## Tools
|
||
|
||
### rag_search
|
||
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
|
||
|
||
Each result includes:
|
||
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
|
||
- Source: document title and section hierarchy
|
||
- Type: content type (paragraph, table, code, list_item, picture)
|
||
- Content: the actual text
|
||
|
||
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
|
||
|
||
### rag_cite
|
||
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `rag_cite`.
|
||
|
||
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
|
||
|
||
## How to answer questions
|
||
|
||
1. Call `rag_search` with relevant keywords from the question
|
||
2. Review the results — they are ordered by relevance (rank 1 = best match)
|
||
3. If needed, search again with different keywords (you have a limited number of searches)
|
||
4. Identify the chunk IDs that support your answer and call `rag_cite` with them
|
||
5. Then write a concise answer based strictly on the cited content
|
||
|
||
You MUST call `rag_cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
|
||
|
||
## Guidelines
|
||
|
||
- Base answers strictly on retrieved content — do not use external knowledge
|
||
- Use the Source and Type metadata to understand context
|
||
- If multiple results are relevant, synthesize them coherently
|
||
- Be concise and direct — avoid elaboration unless asked
|
||
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
|
||
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `rag_cite` — there is nothing to cite.
|
||
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `rag_cite` tool separately to register citations.
|
||
|
||
## When search returns irrelevant results
|
||
|
||
If your first search returns results that clearly don't match the question:
|
||
- Try one more search with different keywords
|
||
- If still irrelevant, report that the knowledge base doesn't contain relevant information
|
||
role: system
|
||
- content: What is Python?
|
||
role: user
|
||
model: gpt-oss
|
||
reasoning_effort: high
|
||
stream: false
|
||
temperature: 0.3
|
||
tool_choice: auto
|
||
tools:
|
||
- function:
|
||
description: Search the knowledge base using hybrid vector and full-text search.
|
||
name: rag_search
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
limit:
|
||
anyOf:
|
||
- type: integer
|
||
- type: 'null'
|
||
default: null
|
||
query:
|
||
type: string
|
||
required:
|
||
- query
|
||
type: object
|
||
type: function
|
||
- function:
|
||
description: Register exact search-result chunk IDs as citations for the answer.
|
||
name: rag_cite
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
chunk_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
required:
|
||
- chunk_ids
|
||
type: object
|
||
type: function
|
||
uri: http://localhost:11434/v1/chat/completions
|
||
response:
|
||
headers:
|
||
content-length:
|
||
- '627'
|
||
content-type:
|
||
- application/json
|
||
parsed_body:
|
||
choices:
|
||
- finish_reason: tool_calls
|
||
index: 0
|
||
message:
|
||
content: ''
|
||
reasoning: 'The user asks: "What is Python?" They want a definition. We should use rag_search to find content about
|
||
Python. Then cite. Let''s do a search.'
|
||
role: assistant
|
||
tool_calls:
|
||
- function:
|
||
arguments: '{"limit":5,"query":"Python programming language definition"}'
|
||
name: rag_search
|
||
id: call_01ojo50i
|
||
index: 0
|
||
type: function
|
||
created: 1784300361
|
||
id: chatcmpl-84
|
||
model: gpt-oss
|
||
object: chat.completion
|
||
system_fingerprint: fp_ollama
|
||
usage:
|
||
completion_tokens: 65
|
||
prompt_tokens: 853
|
||
total_tokens: 918
|
||
status:
|
||
code: 200
|
||
message: OK
|
||
- request:
|
||
headers:
|
||
accept:
|
||
- application/json
|
||
accept-encoding:
|
||
- gzip, deflate, zstd
|
||
connection:
|
||
- keep-alive
|
||
content-length:
|
||
- '108'
|
||
content-type:
|
||
- application/json
|
||
host:
|
||
- localhost:11434
|
||
method: POST
|
||
parsed_body:
|
||
encoding_format: base64
|
||
input:
|
||
- Python programming language definition
|
||
model: qwen3-embedding:4b
|
||
uri: http://localhost:11434/v1/embeddings
|
||
response:
|
||
headers:
|
||
content-type:
|
||
- application/json
|
||
transfer-encoding:
|
||
- chunked
|
||
parsed_body:
|
||
data:
|
||
- embedding: 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
|
||
index: 0
|
||
object: embedding
|
||
model: qwen3-embedding:4b
|
||
object: list
|
||
usage:
|
||
prompt_tokens: 5
|
||
total_tokens: 5
|
||
status:
|
||
code: 200
|
||
message: OK
|
||
- request:
|
||
headers:
|
||
accept:
|
||
- application/json
|
||
accept-encoding:
|
||
- gzip, deflate, zstd
|
||
connection:
|
||
- keep-alive
|
||
content-length:
|
||
- '4711'
|
||
content-type:
|
||
- application/json
|
||
host:
|
||
- localhost:11434
|
||
method: POST
|
||
parsed_body:
|
||
messages:
|
||
- content: |-
|
||
You are a helpful research assistant powered by haiku.rag, a knowledge base system.
|
||
|
||
CRITICAL RULES:
|
||
1. For greetings or casual chat: respond directly WITHOUT using any tools
|
||
2. NEVER make up information - always use capabilities to get facts from the knowledge base
|
||
3. When a capability returns citations, always include them in your response
|
||
|
||
# RAG
|
||
|
||
You are a RAG assistant with access to a document knowledge base.
|
||
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
|
||
|
||
## Tools
|
||
|
||
### rag_search
|
||
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
|
||
|
||
Each result includes:
|
||
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
|
||
- Source: document title and section hierarchy
|
||
- Type: content type (paragraph, table, code, list_item, picture)
|
||
- Content: the actual text
|
||
|
||
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
|
||
|
||
### rag_cite
|
||
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `rag_cite`.
|
||
|
||
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
|
||
|
||
## How to answer questions
|
||
|
||
1. Call `rag_search` with relevant keywords from the question
|
||
2. Review the results — they are ordered by relevance (rank 1 = best match)
|
||
3. If needed, search again with different keywords (you have a limited number of searches)
|
||
4. Identify the chunk IDs that support your answer and call `rag_cite` with them
|
||
5. Then write a concise answer based strictly on the cited content
|
||
|
||
You MUST call `rag_cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
|
||
|
||
## Guidelines
|
||
|
||
- Base answers strictly on retrieved content — do not use external knowledge
|
||
- Use the Source and Type metadata to understand context
|
||
- If multiple results are relevant, synthesize them coherently
|
||
- Be concise and direct — avoid elaboration unless asked
|
||
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
|
||
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `rag_cite` — there is nothing to cite.
|
||
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `rag_cite` tool separately to register citations.
|
||
|
||
## When search returns irrelevant results
|
||
|
||
If your first search returns results that clearly don't match the question:
|
||
- Try one more search with different keywords
|
||
- If still irrelevant, report that the knowledge base doesn't contain relevant information
|
||
role: system
|
||
- content: What is Python?
|
||
role: user
|
||
- content: null
|
||
reasoning: 'The user asks: "What is Python?" They want a definition. We should use rag_search to find content about
|
||
Python. Then cite. Let''s do a search.'
|
||
role: assistant
|
||
tool_calls:
|
||
- function:
|
||
arguments: '{"limit":5,"query":"Python programming language definition"}'
|
||
name: rag_search
|
||
id: call_01ojo50i
|
||
type: function
|
||
- content: |-
|
||
[4731e598-9cb5-490d-ba06-1898dcad1a28] [rank 1 of 1]
|
||
Type: text
|
||
Content:
|
||
Python is a high-level programming language.
|
||
role: tool
|
||
tool_call_id: call_01ojo50i
|
||
model: gpt-oss
|
||
reasoning_effort: high
|
||
stream: false
|
||
temperature: 0.3
|
||
tool_choice: auto
|
||
tools:
|
||
- function:
|
||
description: Search the knowledge base using hybrid vector and full-text search.
|
||
name: rag_search
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
limit:
|
||
anyOf:
|
||
- type: integer
|
||
- type: 'null'
|
||
default: null
|
||
query:
|
||
type: string
|
||
required:
|
||
- query
|
||
type: object
|
||
type: function
|
||
- function:
|
||
description: Register exact search-result chunk IDs as citations for the answer.
|
||
name: rag_cite
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
chunk_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
required:
|
||
- chunk_ids
|
||
type: object
|
||
type: function
|
||
uri: http://localhost:11434/v1/chat/completions
|
||
response:
|
||
headers:
|
||
content-length:
|
||
- '689'
|
||
content-type:
|
||
- application/json
|
||
parsed_body:
|
||
choices:
|
||
- finish_reason: tool_calls
|
||
index: 0
|
||
message:
|
||
content: ''
|
||
reasoning: 'We have one result: chunk_id 4731e598-9cb5-490d-ba06-1898dcad1a28, content: "Python is a high-level
|
||
programming language." That seems to answer the question. We need to cite it. Use rag_cite with that chunk ID.'
|
||
role: assistant
|
||
tool_calls:
|
||
- function:
|
||
arguments: '{"chunk_ids":["4731e598-9cb5-490d-ba06-1898dcad1a28"]}'
|
||
name: rag_cite
|
||
id: call_79yns9oq
|
||
index: 0
|
||
type: function
|
||
created: 1784300365
|
||
id: chatcmpl-435
|
||
model: gpt-oss
|
||
object: chat.completion
|
||
system_fingerprint: fp_ollama
|
||
usage:
|
||
completion_tokens: 111
|
||
prompt_tokens: 975
|
||
total_tokens: 1086
|
||
status:
|
||
code: 200
|
||
message: OK
|
||
- request:
|
||
headers:
|
||
accept:
|
||
- application/json
|
||
accept-encoding:
|
||
- gzip, deflate, zstd
|
||
connection:
|
||
- keep-alive
|
||
content-length:
|
||
- '5219'
|
||
content-type:
|
||
- application/json
|
||
host:
|
||
- localhost:11434
|
||
method: POST
|
||
parsed_body:
|
||
messages:
|
||
- content: |-
|
||
You are a helpful research assistant powered by haiku.rag, a knowledge base system.
|
||
|
||
CRITICAL RULES:
|
||
1. For greetings or casual chat: respond directly WITHOUT using any tools
|
||
2. NEVER make up information - always use capabilities to get facts from the knowledge base
|
||
3. When a capability returns citations, always include them in your response
|
||
|
||
# RAG
|
||
|
||
You are a RAG assistant with access to a document knowledge base.
|
||
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
|
||
|
||
## Tools
|
||
|
||
### rag_search
|
||
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
|
||
|
||
Each result includes:
|
||
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
|
||
- Source: document title and section hierarchy
|
||
- Type: content type (paragraph, table, code, list_item, picture)
|
||
- Content: the actual text
|
||
|
||
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
|
||
|
||
### rag_cite
|
||
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `rag_cite`.
|
||
|
||
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
|
||
|
||
## How to answer questions
|
||
|
||
1. Call `rag_search` with relevant keywords from the question
|
||
2. Review the results — they are ordered by relevance (rank 1 = best match)
|
||
3. If needed, search again with different keywords (you have a limited number of searches)
|
||
4. Identify the chunk IDs that support your answer and call `rag_cite` with them
|
||
5. Then write a concise answer based strictly on the cited content
|
||
|
||
You MUST call `rag_cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
|
||
|
||
## Guidelines
|
||
|
||
- Base answers strictly on retrieved content — do not use external knowledge
|
||
- Use the Source and Type metadata to understand context
|
||
- If multiple results are relevant, synthesize them coherently
|
||
- Be concise and direct — avoid elaboration unless asked
|
||
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
|
||
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `rag_cite` — there is nothing to cite.
|
||
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `rag_cite` tool separately to register citations.
|
||
|
||
## When search returns irrelevant results
|
||
|
||
If your first search returns results that clearly don't match the question:
|
||
- Try one more search with different keywords
|
||
- If still irrelevant, report that the knowledge base doesn't contain relevant information
|
||
role: system
|
||
- content: What is Python?
|
||
role: user
|
||
- content: null
|
||
reasoning: 'The user asks: "What is Python?" They want a definition. We should use rag_search to find content about
|
||
Python. Then cite. Let''s do a search.'
|
||
role: assistant
|
||
tool_calls:
|
||
- function:
|
||
arguments: '{"limit":5,"query":"Python programming language definition"}'
|
||
name: rag_search
|
||
id: call_01ojo50i
|
||
type: function
|
||
- content: |-
|
||
[4731e598-9cb5-490d-ba06-1898dcad1a28] [rank 1 of 1]
|
||
Type: text
|
||
Content:
|
||
Python is a high-level programming language.
|
||
role: tool
|
||
tool_call_id: call_01ojo50i
|
||
- content: null
|
||
reasoning: 'We have one result: chunk_id 4731e598-9cb5-490d-ba06-1898dcad1a28, content: "Python is a high-level programming
|
||
language." That seems to answer the question. We need to cite it. Use rag_cite with that chunk ID.'
|
||
role: assistant
|
||
tool_calls:
|
||
- function:
|
||
arguments: '{"chunk_ids":["4731e598-9cb5-490d-ba06-1898dcad1a28"]}'
|
||
name: rag_cite
|
||
id: call_79yns9oq
|
||
type: function
|
||
- content: Registered 1 citation(s).
|
||
role: tool
|
||
tool_call_id: call_79yns9oq
|
||
model: gpt-oss
|
||
reasoning_effort: high
|
||
stream: false
|
||
temperature: 0.3
|
||
tool_choice: auto
|
||
tools:
|
||
- function:
|
||
description: Search the knowledge base using hybrid vector and full-text search.
|
||
name: rag_search
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
limit:
|
||
anyOf:
|
||
- type: integer
|
||
- type: 'null'
|
||
default: null
|
||
query:
|
||
type: string
|
||
required:
|
||
- query
|
||
type: object
|
||
type: function
|
||
- function:
|
||
description: Register exact search-result chunk IDs as citations for the answer.
|
||
name: rag_cite
|
||
parameters:
|
||
additionalProperties: false
|
||
properties:
|
||
chunk_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
required:
|
||
- chunk_ids
|
||
type: object
|
||
type: function
|
||
uri: http://localhost:11434/v1/chat/completions
|
||
response:
|
||
headers:
|
||
content-length:
|
||
- '332'
|
||
content-type:
|
||
- application/json
|
||
parsed_body:
|
||
choices:
|
||
- finish_reason: stop
|
||
index: 0
|
||
message:
|
||
content: Python is a high‑level programming language.
|
||
role: assistant
|
||
created: 1784300366
|
||
id: chatcmpl-961
|
||
model: gpt-oss
|
||
object: chat.completion
|
||
system_fingerprint: fp_ollama
|
||
usage:
|
||
completion_tokens: 13
|
||
prompt_tokens: 1105
|
||
total_tokens: 1118
|
||
status:
|
||
code: 200
|
||
message: OK
|
||
version: 1
|