curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "my-documents",
"query": "What are the main benefits of Moorcheh?",
"top_k": 5
}'
curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "",
"query": "Explain quantum computing in simple terms",
"temperature": 0.7,
"chat_history": [
{"role": "user", "content": "What is AI?"},
{"role": "assistant", "content": "AI is artificial intelligence..."}
],
"header_prompt": "You are a science teacher.",
"footer_prompt": "Use simple language and examples."
}'
{
"namespace": "my-namespace",
"query": "What are the system requirements?",
"structured_response": { "enabled": true }
}
{
"answer": "Serverless architecture offers several benefits...",
"model": "gpt-4o-mini",
"context_count": 3,
"query": "What are the main benefits of using serverless architecture?"
}
{
"answer": "{ \"answer\": \"...\", \"confidence\": 0.92 }",
"model": "llama3.2",
"context_count": 2,
"query": "What are the system requirements?",
"used_context": true,
"structured_data": {
"answer": "The main answer",
"confidence": 0.92,
"topics": ["requirements", "hardware"]
}
}
{
"status": "error",
"message": "query field is required"
}
{
"status": "error",
"message": "namespace 'my-namespace' not found"
}
{
"status": "failure",
"message": "Internal Server Error generating answer.: ..."
}
AI Generation
Generate AI Answer
Generate AI-powered answers using your data as context or direct LLM calls.
POST
/
answer
curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "my-documents",
"query": "What are the main benefits of Moorcheh?",
"top_k": 5
}'
curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "",
"query": "Explain quantum computing in simple terms",
"temperature": 0.7,
"chat_history": [
{"role": "user", "content": "What is AI?"},
{"role": "assistant", "content": "AI is artificial intelligence..."}
],
"header_prompt": "You are a science teacher.",
"footer_prompt": "Use simple language and examples."
}'
{
"namespace": "my-namespace",
"query": "What are the system requirements?",
"structured_response": { "enabled": true }
}
{
"answer": "Serverless architecture offers several benefits...",
"model": "gpt-4o-mini",
"context_count": 3,
"query": "What are the main benefits of using serverless architecture?"
}
{
"answer": "{ \"answer\": \"...\", \"confidence\": 0.92 }",
"model": "llama3.2",
"context_count": 2,
"query": "What are the system requirements?",
"used_context": true,
"structured_data": {
"answer": "The main answer",
"confidence": 0.92,
"topics": ["requirements", "hardware"]
}
}
{
"status": "error",
"message": "query field is required"
}
{
"status": "error",
"message": "namespace 'my-namespace' not found"
}
{
"status": "failure",
"message": "Internal Server Error generating answer.: ..."
}
Overview
Generate AI-powered answers with two modes:- Search Mode — provide a
namespacename; Moorcheh searches your text namespace and uses retrieved chunks as RAG context - Direct AI Mode — set
namespaceto""(empty string) for a direct LLM call without retrieval
LLM providers: Ollama, OpenAI, or Cohere. Configure once with
moorcheh configure (saved under llm in ~/.moorcheh/config.json). Override the model per request with ai_model.After changing LLM (or embedding) settings, run
moorcheh down then moorcheh up so the running server loads the new config. moorcheh configure does not restart Docker. Check GET /health for llm_provider and llm_model.If you change the embedding provider or model while you already have text data under
~/.moorcheh/data, RAG answers for existing namespaces may be wrong until you re-upload with the new embeddings. Changing only the answer (LLM) model does not require re-uploading.Headers
string
required
Must be
application/jsonBody Parameters
string
required
The user’s question or query to be answered
string
required
Namespace name for Search Mode, or empty string
"" for Direct AI Modenumber
default:"10"
Number of top relevant chunks for your query (Search Mode only). Clamped to 1–100.
number
Minimum relevance score threshold (0–1). Required when
kiosk_mode is true.number
default:"0.7"
AI creativity level (0.0–2.0). Higher = more creative.
string
default:"text"
Search type for RAG. Only
"text" is supported on-prem.string
Override the configured LLM model for this request
boolean
default:"false"
When
true, threshold is required and chunks below the threshold are filtered out (Search Mode).array
default:"[]"
Previous conversation turns:
[{"role":"user"|"assistant","content":"..."}]string
Custom system instruction prepended to the prompt
string
default:"Provide a clear and concise answer."
Custom instruction appended before the user query
object
When set with
enabled: true, the API parses JSON from the model into structured_data. Optional: schema (JSON Schema object).Available LLM models (configure defaults)
| Provider | Example model IDs | Notes |
|---|---|---|
| ollama | qwen2.5, llama3.2, mistral | Local; no API key |
| openai | gpt-5.5, gpt-5, gpt-4o-mini | Requires API key in config |
| cohere | command-a-plus-05-2026, command-r-plus-08-2024, command-r-08-2024 | Requires API key in config |
curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "my-documents",
"query": "What are the main benefits of Moorcheh?",
"top_k": 5
}'
curl -X POST "http://localhost:8080/answer" \
-H "Content-Type: application/json" \
-d '{
"namespace": "",
"query": "Explain quantum computing in simple terms",
"temperature": 0.7,
"chat_history": [
{"role": "user", "content": "What is AI?"},
{"role": "assistant", "content": "AI is artificial intelligence..."}
],
"header_prompt": "You are a science teacher.",
"footer_prompt": "Use simple language and examples."
}'
{
"namespace": "my-namespace",
"query": "What are the system requirements?",
"structured_response": { "enabled": true }
}
{
"answer": "Serverless architecture offers several benefits...",
"model": "gpt-4o-mini",
"context_count": 3,
"query": "What are the main benefits of using serverless architecture?"
}
{
"answer": "{ \"answer\": \"...\", \"confidence\": 0.92 }",
"model": "llama3.2",
"context_count": 2,
"query": "What are the system requirements?",
"used_context": true,
"structured_data": {
"answer": "The main answer",
"confidence": 0.92,
"topics": ["requirements", "hardware"]
}
}
{
"status": "error",
"message": "query field is required"
}
{
"status": "error",
"message": "namespace 'my-namespace' not found"
}
{
"status": "failure",
"message": "Internal Server Error generating answer.: ..."
}
Response Fields
string
The AI-generated answer text
string
The LLM model ID used for generation
number
Number of context chunks retrieved (Search Mode).
0 in Direct AI Mode.string
The original query submitted
boolean
Present when
structured_response is enabled: whether RAG context was used.object
Parsed JSON when
structured_response.enabled is true.Important Notes
- Search Mode requires a text namespace with indexed documents
- Direct AI Mode uses only LLM fields (
namespace,query,temperature,chat_history, prompts,ai_model,structured_response) - Configure LLM provider and default model with
moorcheh configureor edit~/.moorcheh/config.json /healthreportsllm_providerandllm_modelalongside embedding settings
Related
Was this page helpful?