Shell commands
All the commands are executed inside backend
container. To enter interactive shell, run:
Then run the command with ./manage.py <command_name> <options>
.
Common arguments
Almost all the commands support (or require) the following arguments:
Company code
Required if more than one company exists.
How to use:
Tenant code
Required if the command is executed for a specific tenant. In other cases, the command is executed for all tenants.
Multiple tenant codes can be specified: -t <tenant_code1> -t <tenant_code2>
.
How to use:
Source code
Source is an alternative name for crawler.
Required if the command is executed for a specific source. In other cases, the command is executed for all sources.
Either company or tenant must be specified.
Multiple source codes can be specified: -s <source_code1> -s <source_code2>
.
How to use:
Django Management Commands
Ask question
command:
ask
How to run:
./manage.py ask <question_text> [options]
Description:
Asks a question to SerenityGPT for the selected tenant and prints the answer.
Required arguments:
- question_text
— The question to ask.
Optional arguments:
- -f, --filters <json>
— Filters in JSON string format.
Documents/chunks stats
command:
num_docs
How to run:
./manage.py num_docs
Description:
Prints a table with the number of documents, chunks, and encoded chunks for each source, tenant, and company.
Optional arguments:
None (other than standard company/tenant selection).
Document info
command:
doc
How to run:
./manage.py doc [options]
Description:
Displays information about documents, filtered by ID, URL, or title. Can show document text and select a random document.
Optional arguments:
- --id <str>
— Filter by document ID.
- --url <str>
— Filter by document URL (supports regex if no exact match).
- --title <str>
— Filter by document title.
- --text
— Show the document text.
- --rand
— Select a random document from the results.
Delete documents
command:
delete
How to run:
./manage.py delete [options]
Description:
Deletes documents, chunks, and embeddings for a given URL or for all sources in the selected scope. Also deletes empty tenants and companies.
Optional arguments:
- --url <str>
— Delete only the document(s) with the given URL.
Question info
command:
question
How to run:
./manage.py question [options]
Description:
Displays information about a question, including its text, status, creation time, filters, and response. Can also show associated messages and context documents.
Optional arguments:
- --id <int>
— Question ID (default: last question).
- -m, --message
— Show all messages for the question.
- -c, --context
— Show context documents for the question.
Run eval
command:
eval
How to run:
./manage.py eval [options]
Description:
Runs evaluation on a set of questions, prints results, and can send results to the evaluation server.
Optional arguments:
- --file <filename>
— Evaluation set filename (default: default
).
- --index <int>
— Evaluate only a specific question by index.
- -d, --description <str>
— Description of the evaluation run.
- --skip-urls-check
— Skip checking if the URLs exist in the database.
Run vector-search eval
command:
eval-rag
How to run:
./manage.py eval-rag [options]
Description:
Evaluates retrieval-augmented generation (RAG) by running search and context-building for evaluation questions, and prints results.
Optional arguments:
- --file <filename>
— Evaluation set filename (default: default
).
- --index <int>
— Evaluate only a specific question by index.
- --skip-urls-check
— Skip checking if the URLs exist in the database.
Run crawler
command:
run_crawler
How to run:
./manage.py run_crawler [options]
Description:
Runs the crawler for the specified company, tenants, and sources. Can run once or in a loop, and can reset state.
Optional arguments:
- --reset
— Delete all documents and chunks before running.
- --infinite
— Run the crawler in a loop.
- --period <minutes>
— Time in minutes to wait between runs (default: 60).
Run answers
command:
run_answers
How to run:
./manage.py run_answers [--reload]
Description:
Starts the answer worker process. Can optionally enable auto-reload when Python files change.
Optional arguments:
- --reload
— Enable auto-reload on code changes.
Run indexer
command:
run_indexer
How to run:
./manage.py run_indexer [options]
Description:
Runs the indexer for the selected sources. Can run in a loop, reset status, or skip encoder/splitter steps.
Optional arguments:
- --infinite
— Run indexer in a loop.
- --reset
— Delete chunks and embeddings for given documents before running.
- --no-encoder
— Do not run encoder, just split documents.
- --no-splitter
— Do not run splitter, just run encoder.
- --gpu
— Use GPU for encoding.
Run script
command:
run_script
How to run:
./manage.py run_script <module>
Description:
Runs a specified Python module as a script.
Required arguments:
- module
— Python module path to run (e.g., myapp.scripts.myscript
).
Company dump
command:
company_dump
How to run:
./manage.py company_dump --output <file> [options]
Description:
Dumps company data (tenants, documents, and optionally chunks) to a JSON file.
Required arguments:
- --output <file>
— Output file to write the JSON data to.
Optional arguments:
- --no-chunks
— Do not dump chunks.
Company load
command:
company_load
How to run:
./manage.py company_load <filename> [options]
Description:
Loads company data (tenants, documents, and chunks) from a JSON file.
Required arguments:
- filename
— Path to the JSON file containing the data.
Optional arguments:
- --reset
— Remove existing documents for that company before loading new data.
Run telemetry
command:
run_telemetry
How to run:
./manage.py run_telemetry
Description:
Collects and sends telemetry data to the Serenity server.
Optional arguments:
None.
Update metadata
command:
update_metadata
How to run:
./manage.py update_metadata <key> <value>
Description:
Updates a metadata key for all documents (and their embeddings) in the selected sources.
Required arguments:
- key
— Key in the metadata JSON field of the document (and embeddings).
- value
— Value to update (can be a string, int, float, or JSON string).
Check client config
command:
check_client_config
How to run:
./manage.py check_client_config <company_code>
Description:
Prints the client configuration for the specified company and checks that the company exists.
Required arguments:
- company_code
— The code of the company to check.