agent-starter-pack 0.7.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_starter_pack-0.7.0.dist-info → agent_starter_pack-0.8.0.dist-info}/METADATA +5 -5
- {agent_starter_pack-0.7.0.dist-info → agent_starter_pack-0.8.0.dist-info}/RECORD +57 -55
- agents/README.md +7 -0
- agents/adk_base/notebooks/adk_app_testing.ipynb +8 -6
- agents/adk_base/template/.templateconfig.yaml +3 -1
- agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +8 -6
- agents/adk_gemini_fullstack/template/.templateconfig.yaml +2 -1
- agents/agentic_rag/notebooks/adk_app_testing.ipynb +8 -6
- agents/agentic_rag/template/.templateconfig.yaml +2 -1
- agents/crewai_coding_crew/template/.templateconfig.yaml +1 -1
- llm.txt +22 -9
- src/base_template/.gitignore +0 -1
- src/base_template/README.md +5 -2
- src/base_template/deployment/cd/deploy-to-prod.yaml +1 -16
- src/base_template/deployment/cd/staging.yaml +4 -19
- src/base_template/deployment/terraform/apis.tf +2 -2
- src/base_template/deployment/terraform/build_triggers.tf +5 -5
- src/base_template/deployment/terraform/dev/apis.tf +8 -1
- src/base_template/deployment/terraform/dev/variables.tf +3 -1
- src/base_template/deployment/terraform/iam.tf +8 -8
- src/base_template/deployment/terraform/locals.tf +9 -2
- src/base_template/deployment/terraform/log_sinks.tf +2 -2
- src/base_template/deployment/terraform/service_accounts.tf +3 -3
- src/base_template/deployment/terraform/storage.tf +7 -7
- src/base_template/deployment/terraform/variables.tf +3 -0
- src/base_template/pyproject.toml +4 -3
- src/cli/commands/create.py +38 -0
- src/cli/commands/setup_cicd.py +2 -2
- src/cli/utils/cicd.py +6 -3
- src/cli/utils/template.py +34 -9
- src/deployment_targets/agent_engine/app/agent_engine_app.py +7 -7
- src/deployment_targets/agent_engine/tests/load_test/README.md +1 -6
- src/deployment_targets/agent_engine/tests/load_test/load_test.py +13 -3
- src/deployment_targets/cloud_run/Dockerfile +3 -0
- src/deployment_targets/cloud_run/app/server.py +18 -0
- src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +231 -0
- src/deployment_targets/cloud_run/deployment/terraform/service.tf +360 -0
- src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +8 -5
- src/deployment_targets/cloud_run/tests/load_test/README.md +2 -2
- src/deployment_targets/cloud_run/tests/load_test/load_test.py +21 -17
- src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +2 -3
- src/resources/docs/adk-cheatsheet.md +1 -1
- src/resources/locks/uv-adk_base-agent_engine.lock +805 -200
- src/resources/locks/uv-adk_base-cloud_run.lock +1085 -234
- src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +805 -200
- src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +1085 -234
- src/resources/locks/uv-agentic_rag-agent_engine.lock +386 -283
- src/resources/locks/uv-agentic_rag-cloud_run.lock +513 -349
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +492 -497
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +671 -613
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock +500 -391
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock +682 -510
- src/resources/locks/uv-live_api-cloud_run.lock +686 -486
- src/resources/setup_cicd/github.tf +2 -2
- src/deployment_targets/cloud_run/uv.lock +0 -6952
- {agent_starter_pack-0.7.0.dist-info → agent_starter_pack-0.8.0.dist-info}/WHEEL +0 -0
- {agent_starter_pack-0.7.0.dist-info → agent_starter_pack-0.8.0.dist-info}/entry_points.txt +0 -0
- {agent_starter_pack-0.7.0.dist-info → agent_starter_pack-0.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -12,7 +12,6 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import json
|
16
15
|
import os
|
17
16
|
import time
|
18
17
|
{%- if "adk" in cookiecutter.tags %}
|
@@ -44,15 +43,19 @@ class ChatStreamUser(HttpUser):
|
|
44
43
|
{%- if "adk" in cookiecutter.tags %}
|
45
44
|
# Create session first
|
46
45
|
user_id = f"user_{uuid.uuid4()}"
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
session_data = {"state": {"preferred_language": "English", "visit_count": 1}}
|
47
|
+
|
48
|
+
session_url = f"{self.client.base_url}/apps/app/users/{user_id}/sessions"
|
49
|
+
session_response = requests.post(
|
50
|
+
session_url,
|
51
51
|
headers=headers,
|
52
52
|
json=session_data,
|
53
53
|
timeout=10,
|
54
54
|
)
|
55
55
|
|
56
|
+
# Get session_id from response
|
57
|
+
session_id = session_response.json()["id"]
|
58
|
+
|
56
59
|
# Send chat message
|
57
60
|
data = {
|
58
61
|
"app_name": "app",
|
@@ -60,7 +63,7 @@ class ChatStreamUser(HttpUser):
|
|
60
63
|
"session_id": session_id,
|
61
64
|
"new_message": {
|
62
65
|
"role": "user",
|
63
|
-
"parts": [{"text": "
|
66
|
+
"parts": [{"text": "Hello! Weather in New york?"}],
|
64
67
|
},
|
65
68
|
"streaming": True,
|
66
69
|
}
|
@@ -93,24 +96,25 @@ class ChatStreamUser(HttpUser):
|
|
93
96
|
events = []
|
94
97
|
for line in response.iter_lines():
|
95
98
|
if line:
|
96
|
-
{%- if "adk" in cookiecutter.tags %}
|
97
|
-
# SSE format is "data: {json}"
|
98
99
|
line_str = line.decode("utf-8")
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
events.
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
100
|
+
events.append(line_str)
|
101
|
+
|
102
|
+
if "429 Too Many Requests" in line_str:
|
103
|
+
self.environment.events.request.fire(
|
104
|
+
request_type="POST",
|
105
|
+
name=f"{ENDPOINT} rate_limited 429s",
|
106
|
+
response_time=0,
|
107
|
+
response_length=len(line),
|
108
|
+
response=response,
|
109
|
+
context={},
|
110
|
+
)
|
107
111
|
end_time = time.time()
|
108
112
|
total_time = end_time - start_time
|
109
113
|
self.environment.events.request.fire(
|
110
114
|
request_type="POST",
|
111
115
|
name=f"{ENDPOINT} end",
|
112
116
|
response_time=total_time * 1000, # Convert to milliseconds
|
113
|
-
response_length=len(
|
117
|
+
response_length=len(events),
|
114
118
|
response=response,
|
115
119
|
context={},
|
116
120
|
)
|
@@ -81,12 +81,11 @@ export default function App() {
|
|
81
81
|
};
|
82
82
|
|
83
83
|
const createSession = async (): Promise<{userId: string, sessionId: string, appName: string}> => {
|
84
|
-
const
|
85
|
-
const response = await fetch(`/api/apps/app/users/u_999/sessions/${generatedSessionId}`, {
|
84
|
+
const response = await fetch(`/api/apps/app/users/u_999/sessions`, {
|
86
85
|
method: "POST",
|
87
86
|
headers: {
|
88
87
|
"Content-Type": "application/json"
|
89
|
-
}
|
88
|
+
},
|
90
89
|
});
|
91
90
|
|
92
91
|
if (!response.ok) {
|
@@ -994,7 +994,7 @@ Serverless container platform for custom web applications.
|
|
994
994
|
# Ensure your agent_folder (e.g., 'my_first_agent') is in the same directory as main.py
|
995
995
|
app: FastAPI = get_fast_api_app(
|
996
996
|
agents_dir=os.path.dirname(os.path.abspath(__file__)),
|
997
|
-
|
997
|
+
session_service_uri="sqlite:///./sessions.db", # In-container SQLite, for simple cases
|
998
998
|
# For production: use a persistent DB (Cloud SQL) or VertexAiSessionService
|
999
999
|
allow_origins=["*"],
|
1000
1000
|
web=True # Serve ADK UI
|