EmbeddingΒΆ

class database.service.base.EmbeddingService(model=typing.Type[sqlalchemy.orm.decl_api.Base])ΒΆ

Base class for embedding services

embed_one(db: Session, db_obj: EmbeddedMixin)ΒΆ

Embed a single object in the database

Parameters:
  • db (Session) – Database session

  • db_obj (EmbeddedMixin) – Database object

Returns:

Embedded database object

Return type:

EmbeddedMixin

embed_many(db: Session, embed_empty_only: bool = True, k: int = 0)ΒΆ

Embed multiple objects in the database

Parameters:
  • db (Session) – Database session

  • embed_empty_only (bool, optional) – Whether to embed only objects with empty embeddings (set to None) or all objects without distinction, default to True

  • k (int, optional) – Number of objects to embed, with 0 meaning all objects, default to 0

Returns:

List of embedded database objects

Return type:

list[EmbeddedMixin]

create(db: Session, obj_in: BaseModel, embed=False)ΒΆ

Create a new object in the database

Parameters:
  • db (Session) – Database session

  • obj_in (BaseModel) – Pydantic schema

  • embed (bool, optional) – Whether to embed the object, default to False

Returns:

Database object

Return type:

Base

create_all(db: Session, objs_in: BaseModel, embed=False)ΒΆ

Create multiple objects in the database

Parameters:
  • db (Session) – Database session

  • objs_in (BaseModel) – Pydantic schema with list of objects to create

  • embed (bool, optional) – Whether to embed the objects to create, default to False

Returns:

List of database objects

Return type:

list[Base]

get_by_text(db: Session, text: str)ΒΆ

Get object by text

Parameters:
  • db (Session) – Database session

  • text (str) – Object text

Returns:

Database object

Return type:

Base

update(db: Session, db_obj, obj_in: BaseModel, embed=False)ΒΆ

Update db object

Parameters:
  • db (Session) – Database session

  • db_obj – Database object

  • obj_in (BaseModel) – Pydantic schema

  • embed (bool, optional) – Whether to embed the object to update, default to False

Returns:

Updated database object

Return type:

Base

upsert(db: Session, obj_in: BaseModel, embed=False)ΒΆ

Upsert object in the database

Parameters:
  • db (Session) – Database session

  • obj_in (BaseModel) – Pydantic schema

  • embed (bool, optional) – Whether to embed the object to upsert, default to False

Returns:

Upserted database object

Return type:

Base