File size: 2,628 Bytes
b3b7a20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
[project]
name = "puppycompanion-fastapi"
version = "0.2.0"
description = "PuppyCompanion - Assistant IA pour l'éducation canine avec interface FastAPI moderne"
readme = "README.md"
authors = [
    {name = "jthomazo", email = "jthomazo@example.com"},
]
dependencies = [
    # FastAPI et serveur web
    "fastapi>=0.104.1",
    "uvicorn[standard]>=0.24.0",
    "websockets>=12.0",
    "aiofiles>=23.2.1",
    
    # LangChain core
    "langchain>=0.0.300",
    "langchain-community>=0.0.16", 
    "langchain-core>=0.1.0",
    "langchain-openai>=0.0.5",
    "langgraph>=0.0.17",
    
    # Vector databases et embeddings
    "langchain-qdrant>=0.0.1",
    "qdrant-client>=1.6.0",
    "langchain-huggingface>=0.0.1",
    "sentence-transformers>=2.7.0",
    "transformers>=4.40.0",
    "torch>=2.3.0",
    
    # APIs et recherche web
    "openai>=1.6.0",
    "tavily-python>=0.2.4",
    
    # Utilitaires core
    "python-dotenv>=1.0.0",
    "pydantic>=2.7.0",
    "pandas>=2.0.0",
    "numpy>=1.24.0",
    "tiktoken>=0.7.0",
    
    # Processing et évaluation
    "ragas>=0.1.1",
    "scikit-learn>=1.4.0",
    "tqdm>=4.66.0",
    
    # Document processing (si nécessaire pour preprocessing)
    "pymupdf>=1.22.0",
    "pypdf>=3.15.1",
    "unstructured>=0.11.0",
    "pdf2image>=1.16.0",
    "pdfminer.six>=20221105",
    
    # Monitoring et debug
    "nest-asyncio>=1.5.6",
    "matplotlib>=3.7.0",
    "seaborn>=0.12.0",
    
    # Support images (si nécessaire)
    "pillow>=10.0.0",
    "pi-heif>=0.12.0",
    "wrapt>=1.15.0",
]
requires-python = ">=3.9,<4.0"
license = "MIT"

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
py-modules = [
    "main",
    "rag_system",
    "agent_workflow", 
    "embedding_models",
]

[tool.setuptools.packages.find]
exclude = [
    "data*", 
    "metrics*", 
    "venv_dev_312*", 
    "doc*", 
    ".venv*", 
    "__pycache__*", 
    "*.egg-info*",
    "static*",
    "backup_chainlit*"
]

[tool.pytest.ini_options]
testpaths = ["tests"]

[tool.black]
line-length = 100
target-version = ['py39']

[tool.ruff]
line-length = 88
target-version = "py39"
select = ["E", "F", "I"]

[project.optional-dependencies]
dev = [
    "black>=23.10.0",
    "isort>=5.12.0",
    "mypy>=1.6.1",
    "pytest>=7.4.3",
    "ruff>=0.0.270",
    "httpx>=0.25.0",  # Pour tester l'API FastAPI
]

[project.scripts]
puppycompanion = "main:main"

[tool.isort]
profile = "black"
line_length = 100

[tool.mypy]
python_version = "3.9"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true