| [build-system] |
| requires = ["hatchling>=1.21"] |
| build-backend = "hatchling.build" |
|
|
| [project] |
| name = "korean-privacy-ai-assistant" |
| version = "0.1.0" |
| description = "Korean Privacy Law (개인정보보호법) consultation chatbot for individuals, SMBs, and small clinics" |
| readme = "README.md" |
| license = "MIT" |
| requires-python = ">=3.11" |
| keywords = ["korean-law", "privacy", "개인정보보호법", "rag", "chatbot", "gemma"] |
| classifiers = [ |
| "Development Status :: 3 - Alpha", |
| "Intended Audience :: End Users/Desktop", |
| "License :: OSI Approved :: MIT License", |
| "Natural Language :: Korean", |
| "Operating System :: OS Independent", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| ] |
| dependencies = [ |
| "httpx[http2]>=0.27", |
| "pydantic>=2.6", |
| "pydantic-settings>=2.2", |
| "lxml>=5", |
| "diskcache>=5.6", |
| "tenacity>=8", |
| "platformdirs>=4", |
| "fastapi>=0.110", |
| "uvicorn[standard]>=0.27", |
| "python-dotenv>=1", |
| "pyyaml>=6", |
| "huggingface-hub>=0.23", |
| "tqdm>=4.66", |
| "sse-starlette>=2.1", |
| "truststore>=0.10", |
| ] |
|
|
| [project.optional-dependencies] |
| llm = ["llama-cpp-python>=0.3"] |
| |
| |
| hf = [ |
| "gradio>=5.0", |
| "transformers>=4.45", |
| "torch>=2.4", |
| "accelerate>=0.34", |
| "spaces>=0.30", |
| ] |
| |
| |
| |
| |
| rag = [ |
| "sentence-transformers>=3.0", |
| "sqlite-vec>=0.1.6", |
| "torch>=2.4", |
| |
| |
| |
| |
| ] |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| pipc-ocr = ["docling>=2.0", "easyocr>=1.7"] |
| dev = [ |
| "pytest>=8", |
| "pytest-asyncio>=0.23", |
| "vcrpy>=6", |
| "ruff>=0.4", |
| "invoke>=2.2", |
| ] |
|
|
| [project.scripts] |
| kpaa = "kpaa.cli:main" |
|
|
| [project.urls] |
| Homepage = "https://github.com/sz1-kca/korean-privacy-ai-assistant" |
| Issues = "https://github.com/sz1-kca/korean-privacy-ai-assistant/issues" |
|
|
| [tool.hatch.build.targets.wheel] |
| packages = ["src/kpaa"] |
|
|
| [tool.ruff] |
| line-length = 100 |
| target-version = "py311" |
|
|
| [tool.ruff.lint] |
| select = ["E", "F", "W", "I", "B", "UP"] |
| ignore = ["E501"] |
| |
|
|
| [tool.pytest.ini_options] |
| asyncio_mode = "auto" |
| testpaths = ["tests"] |
|
|