dotb_ai-platform/pyproject.toml
hungtran24 6577bb74be refactor: simplify scoring service, AI profile revisions and test suite
Phase 2 and 3 of the platform rework.

- Neutral request/response contract: external_id, metadata, X-AI-Key,
  run_id in the response; client-specific fields removed.
- AI profile is a revision table: saving creates an inactive revision,
  activation is separate, try-run does not store a run. One
  chat-completions gateway serves AIHub and OpenAI-compatible profiles.
- Add between and in rule operators.
- Contracts moved to contracts/lead-scoring/ with a score-response fixture.
- Admin Web updated for revisions, runs and the neutral fixture.
- Consolidate tests; remove rewrite_architect.md and the stale handoff doc;
  rewrite spec, CONTEXT and ARCHITECTURE for the current design.

Not verified: live AIHub/OpenAI behavior, Omni/EMS integration.
2026-10-09 08:23:21 +07:00

53 lines
1.0 KiB
TOML

[project]
name = "dotb-ai-platform"
version = "2.0.0"
description = "Shared AI lead scoring service"
requires-python = ">=3.13"
dependencies = [
"fastapi>=0.115,<1",
"uvicorn[standard]>=0.30,<1",
"pydantic>=2.8,<3",
"pydantic-settings>=2.4,<3",
"sqlalchemy[asyncio]>=2.0.30,<3",
"asyncpg>=0.30,<1",
"alembic>=1.13,<2",
"pwdlib[argon2]>=0.2,<1",
"httpx>=0.27",
]
[project.scripts]
ai-platform = "ai_platform.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/ai_platform"]
[dependency-groups]
dev = [
"pytest>=8",
"pytest-asyncio>=0.23",
"ruff>=0.5",
"pyright>=1.1.414",
"import-linter>=2.15",
"pre-commit==4.3.0",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
pythonpath = ["src"]
[tool.ruff]
line-length = 100
target-version = "py313"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F"]
[tool.ruff.lint.per-file-ignores]
"src/ai_platform/presentation/http/*.py" = ["B008"]