agent_document_injection.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from __future__ import annotations
  2. from datetime import datetime
  3. from sqlalchemy import BigInteger, Integer, String, Text, func
  4. from sqlalchemy.dialects.mysql import LONGTEXT
  5. from sqlalchemy.orm import Mapped, mapped_column
  6. from supply_infra.db.base import Base
  7. class AgentDocumentInjection(Base):
  8. """Web-managed document content appended to an Agent's base system prompt."""
  9. __tablename__ = "agent_document_injection"
  10. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True)
  11. agent_name: Mapped[str] = mapped_column(
  12. String(128),
  13. nullable=False,
  14. unique=True,
  15. index=True,
  16. comment="Agent name",
  17. )
  18. content: Mapped[str] = mapped_column(
  19. Text().with_variant(LONGTEXT(), "mysql"),
  20. nullable=False,
  21. default="",
  22. comment="Document content injected after the base system prompt",
  23. )
  24. enabled: Mapped[int] = mapped_column(
  25. Integer,
  26. nullable=False,
  27. default=1,
  28. comment="Whether the document injection is active",
  29. )
  30. create_time: Mapped[datetime] = mapped_column(
  31. nullable=False,
  32. server_default=func.now(),
  33. )
  34. update_time: Mapped[datetime] = mapped_column(
  35. nullable=False,
  36. server_default=func.now(),
  37. onupdate=func.now(),
  38. )