-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
executable file
·105 lines (96 loc) · 4.95 KB
/
pyproject.toml
File metadata and controls
executable file
·105 lines (96 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
[project]
name = "openapi-chatbotui"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10,<3.14" # Restricted upper bound to avoid future Python 3.14+ compatibility issues with some wheels
dependencies = [
"fastapi>=0.128.0",
"ipykernel>=7.1.0",
"langchain==0.3.27",
"langchain-community>=0.3.31",
"langchain-openai>=0.3.35",
"langchain-qdrant>=0.2.1",
"langfuse>=3.6.2",
"langgraph>=0.6.10",
"lark>=1.3.0",
"llama-index>=0.13.6",
"llama-index-llms-openai>=0.5.4",
"markitdown>=0.1.3",
"openai>=1.106.1",
"pydantic>=2.12.5",
"python-dotenv>=1.1.1",
"qdrant-client>=1.15.1",
"streamlit>=1.50.0",
"tiktoken>=0.11.0",
"uvicorn>=0.40.0",
# Machine Learning - PyTorch family (will be resolved from specific indexes below)
"torch>=2.4.0",
"torchvision>=0.19.0",
"torchaudio>=2.4.0",
"beautifulsoup4>=4.14.3",
"markdown>=3.10.1",
"langchain-huggingface>=0.3.1",
"sentence-transformers>=5.2.2",
]
# ────────────────────────────────────────────────────────────────
# PyTorch index configuration
# We use explicit indexes to avoid dependency confusion attacks
# and prevent old versions of 'requests' from the PyTorch wheel index
# from conflicting with langchain-community requirements.
# ────────────────────────────────────────────────────────────────
# CUDA 12.4 index (for Linux/Windows with NVIDIA GPU + CUDA 12.4)
[[tool.uv.index]]
name = "pytorch-cu124"
url = "https://download.pytorch.org/whl/cu124"
explicit = true # Only packages explicitly mapped to this index will use it
# CPU fallback index (for macOS or machines without CUDA)
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
# ────────────────────────────────────────────────────────────────
# Source mapping: tell uv exactly where to fetch torch packages from
# This isolates PyTorch resolution and keeps the rest (requests, langchain, etc.)
# coming from PyPI only.
# ────────────────────────────────────────────────────────────────
[tool.uv.sources]
torch = [
{ index = "pytorch-cu124", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
{ index = "pytorch-cpu", marker = "sys_platform == 'darwin'" }
]
torchvision = [
{ index = "pytorch-cu124", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
{ index = "pytorch-cpu", marker = "sys_platform == 'darwin'" }
]
torchaudio = [
{ index = "pytorch-cu124", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
{ index = "pytorch-cpu", marker = "sys_platform == 'darwin'" }
]
# [tool.uv.workspace]
# members = [
# "."
# ]
# ────────────────────────────────────────────────────────────────
# Build system configuration
# Required for proper package discovery with src/ layout.
# This enables clean editable installs so imports work reliably
# (e.g. from app.graph.rag_graph import ... or whatever your modules are).
# ────────────────────────────────────────────────────────────────
[build-system]
requires = ["setuptools>=77.0.3"]
build-backend = "setuptools.build_meta"
# ────────────────────────────────────────────────────────────────
# Setuptools configuration for src/ layout
# Tells setuptools where to find the packages (src/app in your case).
# This makes `uv sync` and `uv pip install -e .` create correct .pth files
# for imports.
# ────────────────────────────────────────────────────────────────
[tool.setuptools.packages.find]
where = ["src"] # look for packages inside the src/ folder
# namespaces = false # set to true only if you use namespace packages (rare)
# include = ["app*"] # uncomment if you want to be more explicit (optional)
# Optional: if you ever want the package name to match the project name
# (import openapi_chatbotui.xxx instead of import app.xxx), just rename
# the folder src/app → src/openapi_chatbotui later. For now this config
# works perfectly with your current src/app structure.