Skip to content

Commit 897affe

Browse files
committed
New template for sync open ai agents
1 parent b1d05a6 commit 897affe

File tree

12 files changed

+1033
-2
lines changed

12 files changed

+1033
-2
lines changed

src/agentex/lib/cli/commands/init.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class TemplateType(str, Enum):
2626
TEMPORAL_OPENAI_AGENTS = "temporal-openai-agents"
2727
DEFAULT = "default"
2828
SYNC = "sync"
29+
SYNC_OPENAI_AGENTS = "sync-openai-agents"
2930

3031

3132
def render_template(
@@ -58,6 +59,7 @@ def create_project_structure(
5859
TemplateType.TEMPORAL_OPENAI_AGENTS: ["acp.py", "workflow.py", "run_worker.py", "activities.py"],
5960
TemplateType.DEFAULT: ["acp.py"],
6061
TemplateType.SYNC: ["acp.py"],
62+
TemplateType.SYNC_OPENAI_AGENTS: ["acp.py"],
6163
}[template_type]
6264

6365
# Create project/code files
@@ -155,15 +157,14 @@ def validate_agent_name(text: str) -> bool | str:
155157
choices=[
156158
{"name": "Async - ACP Only", "value": TemplateType.DEFAULT},
157159
{"name": "Async - Temporal", "value": "temporal_submenu"},
158-
{"name": "Sync ACP", "value": TemplateType.SYNC},
160+
{"name": "Sync ACP", "value": "sync_submenu"},
159161
],
160162
).ask()
161163
if not template_type:
162164
return
163165

164166
# If Temporal was selected, show sub-menu for Temporal variants
165167
if template_type == "temporal_submenu":
166-
console.print()
167168
template_type = questionary.select(
168169
"Which Temporal template would you like to use?",
169170
choices=[
@@ -173,6 +174,16 @@ def validate_agent_name(text: str) -> bool | str:
173174
).ask()
174175
if not template_type:
175176
return
177+
elif template_type == "sync_submenu":
178+
template_type = questionary.select(
179+
"Which Sync template would you like to use?",
180+
choices=[
181+
{"name": "Basic Sync ACP", "value": TemplateType.SYNC},
182+
{"name": "Sync ACP + OpenAI Agents SDK (Recommended)", "value": TemplateType.SYNC_OPENAI_AGENTS},
183+
],
184+
).ask()
185+
if not template_type:
186+
return
176187

177188
project_path = questionary.path(
178189
"Where would you like to create your project?", default="."
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.so
6+
.Python
7+
build/
8+
develop-eggs/
9+
dist/
10+
downloads/
11+
eggs/
12+
.eggs/
13+
lib/
14+
lib64/
15+
parts/
16+
sdist/
17+
var/
18+
wheels/
19+
*.egg-info/
20+
.installed.cfg
21+
*.egg
22+
23+
# Environments
24+
.env**
25+
.venv
26+
env/
27+
venv/
28+
ENV/
29+
env.bak/
30+
venv.bak/
31+
32+
# IDE
33+
.idea/
34+
.vscode/
35+
*.swp
36+
*.swo
37+
38+
# Git
39+
.git
40+
.gitignore
41+
42+
# Misc
43+
.DS_Store
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# syntax=docker/dockerfile:1.3
2+
FROM python:3.12-slim
3+
COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/
4+
5+
# Install system dependencies
6+
RUN apt-get update && apt-get install -y \
7+
htop \
8+
vim \
9+
curl \
10+
tar \
11+
python3-dev \
12+
postgresql-client \
13+
build-essential \
14+
libpq-dev \
15+
gcc \
16+
cmake \
17+
netcat-openbsd \
18+
nodejs \
19+
npm \
20+
&& apt-get clean \
21+
&& rm -rf /var/lib/apt/lists/**
22+
23+
RUN uv pip install --system --upgrade pip setuptools wheel
24+
25+
ENV UV_HTTP_TIMEOUT=1000
26+
27+
# Copy just the pyproject.toml file to optimize caching
28+
COPY {{ project_path_from_build_root }}/pyproject.toml /app/{{ project_path_from_build_root }}/pyproject.toml
29+
30+
WORKDIR /app/{{ project_path_from_build_root }}
31+
32+
# Install the required Python packages using uv
33+
RUN uv pip install --system .
34+
35+
# Copy the project code
36+
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
37+
38+
# Set environment variables
39+
ENV PYTHONPATH=/app
40+
41+
# Run the agent using uvicorn
42+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# syntax=docker/dockerfile:1.3
2+
FROM python:3.12-slim
3+
COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/
4+
5+
# Install system dependencies
6+
RUN apt-get update && apt-get install -y \
7+
htop \
8+
vim \
9+
curl \
10+
tar \
11+
python3-dev \
12+
postgresql-client \
13+
build-essential \
14+
libpq-dev \
15+
gcc \
16+
cmake \
17+
netcat-openbsd \
18+
node \
19+
npm \
20+
&& apt-get clean \
21+
&& rm -rf /var/lib/apt/lists/*
22+
23+
RUN uv pip install --system --upgrade pip setuptools wheel
24+
25+
ENV UV_HTTP_TIMEOUT=1000
26+
27+
# Copy just the requirements file to optimize caching
28+
COPY {{ project_path_from_build_root }}/requirements.txt /app/{{ project_path_from_build_root }}/requirements.txt
29+
30+
WORKDIR /app/{{ project_path_from_build_root }}
31+
32+
# Install the required Python packages
33+
RUN uv pip install --system -r requirements.txt
34+
35+
# Copy the project code
36+
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
37+
38+
39+
# Set environment variables
40+
ENV PYTHONPATH=/app
41+
42+
# Run the agent using uvicorn
43+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]

0 commit comments

Comments
 (0)