Skip to content

Commit e59c713

Browse files
gemma4
1 parent 9c52d63 commit e59c713

10 files changed

Lines changed: 1026 additions & 0 deletions

File tree

gemma4-try/.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

gemma4-try/README.md

Whitespace-only changes.

gemma4-try/agent.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from google.adk import Agent
2+
3+
from dotenv import load_dotenv
4+
5+
from tool import fetch_fruits, greet_user
6+
7+
load_dotenv()
8+
9+
from vars import (
10+
AGENT_NAME,
11+
MODEL,
12+
)
13+
14+
search_agent = Agent(
15+
name=AGENT_NAME,
16+
model=MODEL,
17+
tools=[fetch_fruits, greet_user]
18+
)

gemma4-try/main.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import asyncio
2+
3+
from google.genai import types
4+
5+
from runner import runner
6+
from session_service import session_service
7+
from vars import (
8+
APP_NAME,
9+
SESSION_ID,
10+
USER_ID,
11+
)
12+
13+
async def main():
14+
await session_service.create_session(
15+
app_name=APP_NAME,
16+
user_id=USER_ID,
17+
session_id=SESSION_ID
18+
)
19+
20+
while True:
21+
user_message = input("User: ")
22+
content = types.Content(role='user', parts=[types.Part(text=user_message)])
23+
24+
async for event in runner.run_async(user_id=USER_ID, session_id=SESSION_ID, new_message=content):
25+
if event.is_final_response():
26+
if event.content and event.content.parts:
27+
for part in event.content.parts:
28+
if (not part.thought):
29+
print(part.text)
30+
else:
31+
print(event)
32+
33+
34+
if __name__ == "__main__":
35+
asyncio.run(main())

gemma4-try/pyproject.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[project]
2+
name = "gemma4-try"
3+
version = "0.1.0"
4+
description = "Add your description here"
5+
readme = "README.md"
6+
requires-python = ">=3.13"
7+
dependencies = [
8+
"google-adk>=2.1.0",
9+
"python-dotenv>=1.2.2",
10+
]

gemma4-try/runner.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from google.adk.runners import Runner
2+
3+
from agent import search_agent
4+
from session_service import session_service
5+
from vars import (
6+
APP_NAME,
7+
)
8+
9+
runner = Runner(
10+
agent=search_agent,
11+
app_name=APP_NAME,
12+
session_service=session_service
13+
)

gemma4-try/session_service.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from google.adk.sessions import InMemorySessionService
2+
3+
session_service = InMemorySessionService()

gemma4-try/tool.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import httpx
2+
3+
def fetch_fruits(fruit: str):
4+
url = f"https://api.example.com/api/fruit/{fruit}"
5+
6+
with httpx.Client() as client:
7+
response = client.get(url, timeout=10.0)
8+
response.raise_for_status()
9+
10+
fruits_data = response.json()
11+
return fruits_data
12+
13+
14+
def greet_user(user: str):
15+
return f"Hello {user}"

gemma4-try/uv.lock

Lines changed: 926 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gemma4-try/vars.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
AGENT_NAME="test_agent"
2+
APP_NAME = "test_app"
3+
MODEL="gemma-4-31b-it" # gemma-4-26b-a4b-it is also supported
4+
SESSION_ID = "test_session"
5+
USER_ID = "test_user"

0 commit comments

Comments
 (0)