nucliadb Protos
raw JSON → 6.13.0.post6185 verified Fri May 01 auth: no python
Official protobuf definitions for NucliaDB, the AI-powered search engine. Version 6.13.0.post6185. High release cadence (weekly+).
pip install nucliadb-protos Common errors
error ModuleNotFoundError: No module named 'nucliadb' ↓
cause Trying to import from nucliadb instead of nucliadb_protos.
fix
Use correct package: pip install nucliadb-protos, then import nucliadb_protos.*
error AttributeError: module 'nucliadb_protos' has no attribute 'resources_pb2' ↓
cause Importing the package directly instead of submodule.
fix
Use: from nucliadb_protos.resources_pb2 import Resource
error TypeError: Parameter to MergeFrom() must be instance of same class ↓
cause Trying to copy between incompatible protobuf message types.
fix
Ensure you are using the exact same protobuf class for CopyFrom/MergeFrom.
Warnings
breaking Version 6.13.x may have introduced breaking changes to some message fields. Check CHANGELOG before upgrading from 6.x or earlier. ↓
fix Review release notes for field renames or removals; regenerate dependent code.
gotcha Protobuf messages are immutable after mutation? No, but repeated fields require assignment of list or append(). Direct assignment like resource.fields = {...} on a map field may fail. ↓
fix Use .CopyFrom() or field-specific setters for complex sub-messages.
deprecated Some old enum values (e.g., in WriterOp) have been deprecated. Use new enum names from v6.11+. ↓
fix Replace deprecated enum values with the new ones (see changelog).
Install
pip install nucliadb-protos==6.13.0.post6185 Imports
- Resource wrong
from nucliadb.protos.resources import Resourcecorrectfrom nucliadb_protos.resources_pb2 import Resource - KnowledgeBox wrong
from nucliadb_protos.knowledgebox_pb2 import KBcorrectfrom nucliadb_protos.knowledgebox_pb2 import KnowledgeBox - TrainSet
from nucliadb_protos.train_pb2 import TrainSet
Quickstart
from nucliadb_protos.resources_pb2 import Resource
# Create a basic Resource message
resource = Resource()
resource.slug = "my-doc"
resource.title = "Hello, NucliaDB!"
# Access fields
print(resource.slug, resource.title)