Skip to content

Ingest files into a topic

Topics usually hold vectorized text chunks, but they can also contain registered files. Files can be read through search_mode="direct" or embedded into a vector collection.

  • A running Alquimia Platform runtime master.
  • An API token with write access.
  • A knowledge provider configured (qdrant, redis, or in_memory).
Terminal window
curl -X POST http://localhost:8080/knowledge/topics \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"topic_id": "product-docs",
"description": "Product documentation and release notes",
"connector": { "provider_id": "qdrant" }
}'
Terminal window
curl -X POST http://localhost:8080/knowledge/files/upload \
-H "Authorization: Bearer $API_TOKEN" \
-F "file=@release-notes-v2.pdf"

The response contains a file_id.

Terminal window
curl -X PUT http://localhost:8080/knowledge/topics/product-docs/add/<file_id> \
-H "Authorization: Bearer $API_TOKEN"

For rag or on_demand modes, parse and index the file contents into the topic’s vector collection. The CLI can do this in one step:

Terminal window
alquimia registry topics add-file product-docs release-notes-v2.pdf \
--namespace default \
--provider qdrant

This uploads the file, registers it, and indexes chunks into the topic’s collection.

If the agent uses search_mode: "direct", it gets list_files and read_file tools over the topic instead of vector search.

{
"knowledge_base": [
{
"topic_id": "product-docs",
"search_mode": "direct",
"tier_ceiling": ["reader", "editor"]
}
]
}
  • connector must be omitted.
  • The topic’s access_policy is still enforced by the KnowledgeAuthzPolicy.
OperationEndpoint
List filesGET /knowledge/files
DownloadGET /knowledge/files/download/{file_id}
DeleteDELETE /knowledge/files/delete/{file_id}
Remove from topicPUT /knowledge/topics/{topic_id}/remove/{file_id}
Tag/untag filePUT /knowledge/files/{file_id}/tag / untag

Files are stored outside the registry according to ALQUIMIA_FILE_STORAGE_PROVIDER:

ProviderKey variables
localALQUIMIA_FILE_STORAGE_LOCAL_DIR
s3ALQUIMIA_FILE_STORAGE_S3_ENDPOINT_URL, ACCESS_KEY, SECRET_KEY, BUCKET

See Runtime configuration for details.