EmbeddingΒΆ

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

Base class for embedding services

async embed_one(db: Session, db_obj: TextEmbeddingMixin)ΒΆ

Embed a single object in the database

Parameters:
  • db (Session) – Database session

  • db_obj (TextEmbeddingMixin) – Database object

Returns:

Embedded database object

Return type:

TextEmbeddingMixin

async 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[TextEmbeddingMixin]

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

Create a new object in the database

Parameters:
  • db (Session) – Database session

  • obj_in – Pydantic schema

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

get_by_tag(db: Session, tag: str)ΒΆ

Get object by tag

Parameters:
  • db (Session) – Database session

  • tag (str) – Object text

Returns:

Database object

Return type:

Base

async 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