---
title: "Save Config"
method: POST
path: "/api/configs/"
tags: ["configs"]
---

# Save Config

`POST /api/configs/`

Save a new configuration.

## Request body

- ConfigUpdateData — Configuration update - only changed parameters need to be provided with proper validation
  - `QueryLLM` QueryLLMConfig
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `MODEL_NAME` string — The name of the non-reasoning model to be used.
    - `SYSTEM_INSTRUCTION` string — The system instruction string.
    - `MAX_CHAR_SIZE_TO_ANSWER` integer — Maximum character size to answer.
    - `TEMPERATURE` number — Temperature value for randomness.
    - `MAX_TOKENS` integer — Maximum number of tokens allowed.
  - `Agents` AgentsConfig
    - `ENABLED` boolean — Whether to use agents mode for queries.
    - `AGENT_MODEL_NAME` string — The name of the model to be used for the agent.
    - `AGENT_PROMPT` string
    - `LLM_AGENT_TEMPERATURE` number — Temperature value for randomness.
    - `LLM_PAGE_FILTER_MODEL_NAME` string — The name of the model to be used for the llm page filter model.
    - `LLM_PAGE_FILTER_TEMPERATURE` number — Temperature value for randomness.
    - `LLM_PAGE_FILTER_PROMPT` string
    - `LLM_SUMMARISE_MODEL_NAME` string — The name of the model to be used for the llm summarise model.
    - `LLM_SUMMARISE_TEMPERATURE` number — Temperature value for randomness.
    - `LLM_SUMMARISE_PROMPT` string
  - `AgentLLM` AgentLLMConfig
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `MODEL_NAME` string — The name of the model to be used.
    - `ENABLED` boolean — Whether to use agent mode for queries.
    - `MAX_ITERATIONS` integer — Maximum agent loop iterations.
    - `SHOW_INTERIM_STEPS` boolean — Whether to show agent's intermediate steps.
    - `MAX_CONTEXT_TOKENS` integer — Maximum tokens for gathered context (applies to evidence buffer and final query).
    - `SYSTEM_INSTRUCTION` string — The system instruction for agent planning.
    - `TEMPERATURE` number — Temperature for agent decisions.
    - `MAX_TOKENS` integer — Maximum tokens for planning decisions.
    - `MAX_CHAR_SIZE_TO_ANSWER` integer — Maximum character size for history.
  - `EvaluatorLLM` EvaluatorLLMConfig
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `MODEL_NAME` string — The name of the non-reasoning model to be used.
    - `SYSTEM_INSTRUCTION` string — The system instruction for chunk evaluation.
    - `TEMPERATURE` number — Low temperature for consistent evaluation.
    - `MAX_TOKENS` integer — Maximum tokens for evaluation response.
    - `MAX_CHAR_SIZE_TO_ANSWER` integer — Maximum character size for evaluation context.
  - `TitleLLM` TitleLLMConfig
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `MODEL_NAME` string — The name of the non-reasoning model to be used.
    - `SYSTEM_INSTRUCTION` string
    - `MAX_CHAR_SIZE_TO_ANSWER` integer — Maximum character size to answer.
    - `TEMPERATURE` number — Temperature value for randomness.
    - `MAX_TOKENS` integer — Maximum number of tokens allowed.
  - `DoctagLLM` DoctagLLMConfigInput — Configuration for DoctagLLM - extracts information from documents based on tag instructions.
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `MODEL_NAME` string — The name of the non-reasoning model to be used.
    - `SYSTEM_INSTRUCTION` string
    - `MAX_CHAR_CONTEXT_TO_ANSWER` integer — Maximum characters in document for context.
    - `TEMPERATURE` number — Temperature for factual answers.
    - `MAX_TOKENS` integer — Maximum number of tokens allowed for all answers.
    - `MAX_CONCURRENT_DOCS` integer — Maximum concurrent documents for doctag generation.
    - `DEFAULT_METADATA_TAGS` TagTemplate[] — Metadata templates used for automatic document metadata extraction during indexing.
      - `name` string, required
      - `instruction` string, nullable
      - `tag_type` TagFormat — Tag format configuration stored as JSONB. Type-specific fields: - select: options (list of choices, can be single or multi-select) - search: tag name is the query, chunks include relevance scores - checkbox, text, number, folder: type only
        - `type` 'checkbox' | 'text' | 'number' | 'select' | 'folder' | 'search' | 'date'
        - `options` string[]
  - `ModelCitation` ModelCitationConfig
    - `SIM_THREASHOLD` number — How similar does the statement needs to be to be considered as citation.
    - `MIN_CHAR_SIZE_TO_ANSWER` integer — Minimum character length to be considered as a statement for citation.
    - `MAX_NUMB_CITATIONS` integer — Maximum number of citations to return per statement.
  - `Parser` ParserConfig
  - `Chunker` ChunkerConfig
  - `Embedder` EmbedderConfig
    - `MODEL_NAME` string — The name of the embedder model.
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
    - `BATCH_SIZE` integer — Smaller batch size for better parallelization.
    - `MAX_CONCURRENT_REQUESTS` integer — Adjust concurrency level as needed.
    - `EMBED_PREFIX` string — How to embed the sentence for retrieval.
    - `QUERY_PREFIX` string — How to embed the sentence for query.
  - `Retriever` RetrieverConfig
    - `MIN_RETRIEVAL_SIM_SCORE` number — Minimum similarity score for retrieval of a chunk.
    - `MAX_DISTINCT_DOCUMENTS` integer — Maximum number of distinct documents to search for.
    - `MAX_TOTAL_CHUNKS_TO_RETRIEVE` integer — Maximum total number of chunks to retrieve for all documents retrieved.
    - `GROUP_SIZE` integer — Maximum number of chunks per document for retrieval.
    - `SEARCH_MODE` 'semantic' | 'keyword' | 'hybrid' — Search mode for retrieval.
    - `HYBRID_DENSE_WEIGHT` number — Weight for dense vectors in hybrid mode
    - `HYBRID_SPARSE_WEIGHT` number — Weight for sparse vectors in hybrid mode
    - `HYBRID_RERANKER_WEIGHT` number — Weight for reranker score in hybrid mode score blending (0-1). RRF weight = 1 - this value
  - `Reranker` RerankerConfig
    - `MAX_NUMB_OF_CHUNKS` integer — Maximum number of chunks to return after reranking.
    - `MAX_CONCURRENT_REQUESTS` integer — Maximum number of concurrent reranking requests.
    - `MODEL_NAME` string — Name of the reranking model to use.
    - `API_TYPE` 'local' | 'remote' — The inference type (local or remote).
  - `KeywordEmbedder` KeywordEmbedderConfig — Configuration for keyword embedder with BM25 scoring.
    - `DIMENSION_SPACE` integer — Total dimension space for hash trick (1,048,576 dimensions)
    - `FILTER_STOPWORDS` boolean — Remove common stopwords to reduce noise
    - `BM25_K1` number — BM25 term frequency saturation (1.2-2.0). Higher = more weight on term repetition. Default 1.5 works for most cases.
    - `BM25_B` number — BM25 document length normalization (0.0-1.0). 0=ignore length, 1=full penalty for long docs. Default 0.75 is standard.
    - `BM25_AVGDL` number — Average document length in tokens. Adjust based on your documents: chat messages ~20-50, articles ~100-300, papers ~1000+
  - `title` string
  - `parent_message_ext_id` string, nullable

## Response `200`

Successful Response

- ConfigSaveResponse — Response model for configuration save endpoint
  - `external_id` string, required
  - `title` string, nullable, required
  - `created_at` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/arbicity/apis/arbi.md) · [All operations](https://skmtc.net/arbicity/apis/arbi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arbicity/arbi/versions/1f956ac3d1c1/schema)
