Skip to main content

Overview

The Document class provides methods for creating, retrieving, updating, and deleting documents. Documents can be embedded for use with the retrieval system and can be created from existing ESS or Sequence objects.

Methods

create(data: DocumentInsert)

Create a new document.
data
DocumentInsert
required
The document data to create
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
from avenieca.api.model import DocumentInsert

document = DocumentInsert(
    doc_id="001",
    text="testing 123",
    embed=True
)

res, status = eca.document.create(data=document)
if status == 201:
    print(f"Created document with ID: {res.id}")
    print(f"Status: {res.status}")

create_from_ess(module_id: str, ess_id: int)

Create a new document from an existing ESS.
module_id
str
required
The module identifier of the ESS
ess_id
int
required
The database ID of the ESS
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
res, status = eca.document.create_from_ess(
    module_id="air_conditioner",
    ess_id=8
)
if status == 201:
    print(f"Created document from ESS: {res.doc_id}")

create_from_sequence(module_id: str, sequence_id: int)

Create a new document from an existing sequence.
module_id
str
required
The module identifier of the sequence
sequence_id
int
required
The database ID of the sequence
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
res, status = eca.document.create_from_sequence(
    module_id="air_conditioner",
    sequence_id=4
)
if status == 201:
    print(f"Created document from sequence: {res.doc_id}")

get_all()

Get all documents.
response
tuple
Returns a tuple of (List[DocumentResponse] | Error, status_code)
Example:
res, status = eca.document.get_all()
if status == 200:
    for doc in res:
        print(f"Document {doc.doc_id}: {doc.text[:50]}...")

get_one(db_id: int)

Get a specific document by its database ID.
db_id
int
required
The database ID of the document
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
res, status = eca.document.get_one(db_id=20)
if status == 200:
    print(f"Document: {res.doc_id}")
    print(f"Text: {res.text}")
    print(f"Status: {res.status}")

update(db_id: int, data: DocumentInsert)

Update an existing document.
db_id
int
required
The database ID of the document to update
data
DocumentInsert
required
The updated document data
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
from avenieca.api.model import DocumentInsert

document = DocumentInsert(
    doc_id="001",
    text="updated text content",
    embed=False
)

res, status = eca.document.update(db_id=20, data=document)
if status == 200:
    print(f"Updated document: {res.doc_id}")

embed(db_id: int)

Embed an existing document for use with the retrieval system.
db_id
int
required
The database ID of the document to embed
response
tuple
Returns a tuple of (DocumentResponse | Error, status_code)
Example:
res, status = eca.document.embed(db_id=20)
if status == 200:
    print(f"Document embedding status: {res.status}")

delete(db_id: int)

Delete a document.
db_id
int
required
The database ID of the document to delete
response
tuple
Returns a tuple of (response | Error, status_code)
Example:
res, status = eca.document.delete(db_id=100)
if status == 200:
    print("Document deleted successfully")

Complete Workflow Example

import os
from avenieca.api.eca import ECA
from avenieca.api.model import Config, DocumentInsert

# Initialize client
config = Config(
    uri="http://localhost:2580/v1",
    username=os.getenv("USERNAME"),
    password=os.getenv("PASSWORD")
)
eca = ECA(config)

# Create a document
document = DocumentInsert(
    doc_id="user_guide_001",
    text="This is a comprehensive guide on using the air conditioner system.",
    embed=False  # We'll embed it separately
)

res, status = eca.document.create(data=document)
print(f"Created document with DB ID: {res.id}")

# Embed the document
embed_res, embed_status = eca.document.embed(db_id=res.id)
print(f"Document embedding status: {embed_res.status}")

# Retrieve the document
get_res, get_status = eca.document.get_one(db_id=res.id)
print(f"Retrieved document: {get_res.doc_id}")

# Update the document
updated_doc = DocumentInsert(
    doc_id="user_guide_001",
    text="This is an updated comprehensive guide on using the air conditioner system.",
    embed=True
)

update_res, update_status = eca.document.update(
    db_id=res.id,
    data=updated_doc
)
print(f"Updated document: {update_res.doc_id}")

# List all documents
all_docs, all_status = eca.document.get_all()
print(f"\nTotal documents: {len(all_docs)}")
for doc in all_docs:
    print(f"  - {doc.doc_id}: {doc.text[:40]}...")

Build docs developers (and LLMs) love