diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..69ac776 --- /dev/null +++ b/.env.example @@ -0,0 +1,28 @@ +# OpenAI API authentication (required) +OPENAI_API_KEY=sk-... + +# Qdrant configuration +QDRANT_URL=http://localhost:6333 +QDRANT_API_KEY= + +# Fixed models (not configurable per strategy) +EMBEDDING_MODEL=text-embedding-3-small +LLM_MODEL=gpt-4o-mini + +# Retrieval defaults +TOP_K=5 + +# LLM generation parameters +TEMPERATURE=0.0 +MAX_TOKENS=1024 + +# Chunking defaults +CHUNK_SIZE=512 +CHUNK_OVERLAP=50 + +# Semantic chunking parameters +SEMANTIC_THRESHOLD=0.3 +SEMANTIC_MIN_CHUNK_SIZE=3 + +# SQLite database path +DATABASE_URL=sqlite:///./data/chunking_benchmark.db \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0dd70ff --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,31 @@ +[build-system] +requires = ["setuptools>=68.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "chunking-strategies-evaluation" +version = "0.1.0" +description = "Benchmarking application comparing chunking strategies on regulatory documents" +requires-python = ">=3.11" +dependencies = [ + "fastapi>=0.109.0", + "uvicorn[standard]>=0.25.0", + "pydantic>=2.5.0", + "pydantic-settings>=2.1.0", + "python-docx>=1.0.0", + "openai>=1.6.0", + "qdrant-client>=1.7.0", + "tiktoken>=0.5.0", + "jinja2>=3.1.0", + "python-multipart>=0.0.6", +] + +[project.optional-dependencies] +dev = [ + "pytest>=7.4.0", + "pytest-asyncio>=0.23.0", + "httpx>=0.25.0", +] + +[tool.setuptools.packages.find] +where = ["src"] \ No newline at end of file