wolf1997 commited on
Commit
f3722c5
·
verified ·
1 Parent(s): 62836ae

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +37 -0
  2. pyproject.toml +107 -0
  3. uv.lock +0 -0
Dockerfile ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use Python 3.13 slim image as base
2
+ FROM python:3.13.2-slim
3
+
4
+ # Set working directory
5
+ WORKDIR /app
6
+
7
+ # Set environment variables
8
+ ENV PYTHONDONTWRITEBYTECODE=1 \
9
+ PYTHONUNBUFFERED=1 \
10
+ STREAMLIT_SERVER_PORT=8501 \
11
+ STREAMLIT_SERVER_ADDRESS=0.0.0.0 \
12
+ UV_CACHE_DIR=/tmp/uv-cache
13
+
14
+ # Install system dependencies and uv
15
+ RUN apt-get update && apt-get install -y \
16
+ build-essential \
17
+ curl \
18
+ && rm -rf /var/lib/apt/lists/* \
19
+ && curl -LsSf https://astral.sh/uv/install.sh | sh
20
+
21
+ # Add uv to PATH
22
+ ENV PATH="/root/.cargo/bin:$PATH"
23
+
24
+ # Copy project files
25
+ COPY pyproject.toml uv.lock* ./
26
+
27
+ # Install dependencies using uv
28
+ RUN uv sync --frozen --no-dev
29
+
30
+ # Copy the rest of the application
31
+ COPY . .
32
+
33
+ # Expose the port Streamlit runs on
34
+ EXPOSE 8501
35
+
36
+ # Command to run the application using uv
37
+ CMD ["uv", "run", "streamlit", "run", "app.py"]
pyproject.toml ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ name = "deep-research-agent"
3
+ version = "0.1.0"
4
+ description = "A deep research agent built with Streamlit and Pydantic AI"
5
+ authors = [
6
+ {name = "Tristan Padiou", email = "Padioutristan@gmail.com"}
7
+ ]
8
+ #hide readme for huggingface spaces'
9
+ #readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.13.2"
12
+ classifiers = [
13
+ "Development Status :: 3 - Alpha",
14
+ "Intended Audience :: Developers",
15
+ "License :: OSI Approved :: MIT License",
16
+ "Programming Language :: Python :: 3",
17
+ "Programming Language :: Python :: 3.13",
18
+ "Framework :: Streamlit",
19
+ ]
20
+ keywords = ["research", "ai", "agent", "streamlit", "pydantic"]
21
+
22
+ dependencies = [
23
+ "ipython==9.0.2",
24
+ "Pillow==11.3.0",
25
+ "pydantic==2.11.2",
26
+ "pydantic_ai==0.0.52",
27
+ "pydantic_graph==0.0.52",
28
+ "python-dotenv==1.1.0",
29
+ "Requests==2.32.3",
30
+ "Spire.Doc.Free==12.12.0",
31
+ "tavily_python==0.5.1",
32
+ "tabulate==0.9.0",
33
+ "pandas==2.2.3",
34
+ "streamlit==1.44.1",
35
+ "nest_asyncio==1.6.0",
36
+ ]
37
+
38
+ [project.optional-dependencies]
39
+ dev = [
40
+ "pytest>=7.0.0",
41
+ "black>=22.0.0",
42
+ "flake8>=4.0.0",
43
+ "mypy>=0.991",
44
+ ]
45
+
46
+ [project.urls]
47
+ Homepage = "https://github.com/yourusername/deep-research-agent"
48
+ Repository = "https://github.com/yourusername/deep-research-agent"
49
+ Documentation = "https://github.com/yourusername/deep-research-agent#readme"
50
+ Issues = "https://github.com/yourusername/deep-research-agent/issues"
51
+
52
+ #[project.scripts]
53
+ #deep-research-agent = "deep_research_agent.app:main"
54
+
55
+ # uv configuration
56
+ [tool.uv]
57
+ dev-dependencies = [
58
+ "pytest>=7.0.0",
59
+ "black>=22.0.0",
60
+ "flake8>=4.0.0",
61
+ "mypy>=0.991",
62
+ ]
63
+
64
+ [tool.uv.sources]
65
+
66
+ # Black configuration
67
+ [tool.black]
68
+ line-length = 88
69
+ target-version = ['py313']
70
+ include = '\.pyi?$'
71
+ extend-exclude = '''
72
+ /(
73
+ # directories
74
+ \.eggs
75
+ | \.git
76
+ | \.hg
77
+ | \.mypy_cache
78
+ | \.tox
79
+ | \.venv
80
+ | build
81
+ | dist
82
+ )/
83
+ '''
84
+
85
+ # MyPy configuration
86
+ [tool.mypy]
87
+ python_version = "3.13"
88
+ warn_return_any = true
89
+ warn_unused_configs = true
90
+ disallow_untyped_defs = true
91
+ disallow_incomplete_defs = true
92
+ check_untyped_defs = true
93
+ disallow_untyped_decorators = true
94
+ no_implicit_optional = true
95
+ warn_redundant_casts = true
96
+ warn_unused_ignores = true
97
+ warn_no_return = true
98
+ warn_unreachable = true
99
+ strict_equality = true
100
+
101
+ # Pytest configuration
102
+ [tool.pytest.ini_options]
103
+ testpaths = ["tests"]
104
+ python_files = ["test_*.py", "*_test.py"]
105
+ python_classes = ["Test*"]
106
+ python_functions = ["test_*"]
107
+ addopts = "-v --tb=short"
uv.lock ADDED
The diff for this file is too large to render. See raw diff