ADK, Gemini & Javelit = ๐
Source: Dev.to
์ปจํ ์คํธ
์ฐ๋ฆฌ ํ์บ์คํธ Zenikast ์ํผ์๋๊ฐ ์ฐ์ํด์ ๊ณต๊ฐ๋๋ ๋์, ๊ฐ ์ํผ์๋์ ์ ์ฌ๋ณธ์ ๋ง๋๋ ์์
์ ์ฌ์ ํ ํ์์ ์
๋๋ค(์ด์ ๊ธ ์ฐธ๊ณ ).
Vertex AI ๋ก ์ฒซ ๋ฒ์งธ ์ฑ๊ณต์ ์ธ ์๋๋ฅผ ํ ๋ค, ์ฐ๋ฆฌ๋ ์ ์ฌ๋ณธ์ Zenika ์ ์ง์์ด Vertex AI๋ Google Cloud Platform์ ๋ํ ์ง์ ์์ด๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ทธ๋ํฝ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ ๊ณตํ๊ณ ์ ํ์ต๋๋ค.
Gemini์ ADK ํตํฉ
์ธ์ด ์ ํ
ํ์ฐฝ ์์ ๋ถํฐ Java ๊ฐ๋ฐ์์๊ธฐ์, ์์ฐ์ค๋ฝ๊ฒ ์ด ์๋ก์ด ํ๋ก์ ํธ๋ Java๋ก ๋ง๋ค๊ธฐ๋ก ํ์ต๋๋ค.
์ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Gemini๋ฅผ ํธ์ถํ๊ธฐ ์ํด Google์ java-genai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ API ํธ์ถ ์๊ตฌ๋ฅผ ์ถฉ์กฑํฉ๋๋ค.
Agent Development Kit (ADK)
์ฐ๋ฆฌ๋ ์ต์ข ์ ์ผ๋ก Agent Development Kit (ADK) ๋ฅผ ์ ํํ์ต๋๋ค. ์ด๋ Google์ด ์ ๊ณตํ๋ ์์ด์ ํธ ์ ์์ ๋๋ ํ๋ ์์ํฌ์ด๋ฉฐ, ์ฒ์์ Python ์ ์ฉ์ด์์ง๋ง ํ์ฌ๋ Java(๋ฐ Go) ๋ฒ์ ๋ ์ ๊ณตํฉ๋๋ค.
Maven ์์กด์ฑ
<!-- ADK core -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
โฆ
</dependency>
<!-- ADK development utilities (runtime) -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-dev</artifactId>
โฆ
<scope>runtime</scope>
</dependency>
์ฃผ์ ํด๋์ค
| ํด๋์ค | ์ญํ |
|---|---|
BaseAgent | ๋ชจ๋ ์์ด์ ํธ์ ๊ธฐ๋ณธ ํด๋์ค. |
LlmAgent | ์์ด์ ํธ ๋น๋โฏ: ์ด๋ฆ, ์ค๋ช , ๋ชจ๋ธ(Gemini ๋ฑ) ๋ฐ ์ง์๋ฌธ ์ค์ . |
InMemoryRunner | ์์ด์ ํธ์ ๋ผ์ดํ์ฌ์ดํด ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ. |
์์ด์ ํธ ์์ฑ ์์
LlmAgent agent = LlmAgent.builder()
.name("Transcriber")
.description("Transcrit les podcasts avec Gemini")
.model("gemini-1.5-pro") // le modรจle est configurable
.instruction("Transcris le texte de faรงon lisible.")
.build();
InMemoryRunner runner = new InMemoryRunner(agent);
Session session = runner.startSession();
์คํ ๋ฐ ๊ฒฐ๊ณผ ๊ฐ์ ธ์ค๊ธฐ
runner.run(session, "Voici le texte ร transcrire.");
List events = session.getEvents(); // les rรฉponses sont dans les events
String transcription = events.stream()
.filter(e -> e instanceof TextResponseEvent)
.map(e -> ((TextResponseEvent) e).getText())
.findFirst()
.orElse("Aucune rรฉponse");
System.out.println(transcription);
์๋ต์ด ๋์ฐฉํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ณ , ์์ด์ ํธ๊ฐ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค ๐.
ADK์ ํจ๊ปํ๋ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค
google-adk-dev ์์กด์ฑ์ ์์ด์ ํธ๋ฅผ ํ
์คํธยท์ฌ์ฉยท๋๋ฒ๊น
ํ ์ ์๋ ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฃผ์โฏ: ์ด ์์กด์ฑ์ ๊ฐ๋ฐ ๋จ๊ณ์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์น ์๋ฒ ์คํ
mvn exec:java -Dexec.mainClass=com.google.adk.dev.AdkWebServer
์ธํฐํ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์ข์ธก ๋ฉ๋ด โ ์ด๋ฒคํธ, ๋ก๊ทธ, ์ธ์ ์ํ ๋ฐ ์์ด์ ํธ๊ฐ ์ฌ์ฉํ๋ ๋๊ตฌ ํ์.
- ์ค์ ์์ญ โ ์์ด์ ํธ์ ๋ํํ๋ ๋ํ์ฐฝ.
์๋ ์์์์๋ ์ค๋์ค ํด๋ฆฝ์ ์์ด์ ํธ์ ์ ๋ฌํด ์ ์ฌ ํ์ง์ ํ์ธํฉ๋๋ค.
ADK ์ ์ฒด ๋ฌธ์ :
Geminiโฏ3์ ๊ทธ ์ฑ๋ฅ
Geminiโฏ3 ์ถ์๊ฐ ๋ฉํฐ๋ชจ๋ฌ(ํ
์คํธยท์ด๋ฏธ์งยท๋น๋์ค) ์ง๋ณด๋ก ํฐ ์ฃผ๋ชฉ์ ๋ฐ์์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
gemini-3-proโ ์ต์์ ํ ์คํธ ๋ชจ๋ธ.nano-bananaโ ๊ฐ๋ฒผ์ด ์ด๋ฏธ์ง ๋ชจ๋ธ.veo-3โ ๋น๋์ค ๋ชจ๋ธ.
์ฐ๋ฆฌ์ ์ ์ฌ ํ ์คํธ ๊ฒฐ๊ณผ, ํ์ง์ด VertexโฏAI๋ณด๋ค ํ์ ํ ๋ฐ์ด๋ฌ์ต๋๋ค.
Javelit โ Java ๊ทธ๋ํฝ ์ธํฐํ์ด์ค ๋ง๋ค๊ธฐ
Javelit(Streamlit ์๊ฐ)๋ API ์ธ์ด๋ฅผ ๋ ๋์ง ์๊ณ ๋ Java๋ก ๋น ๋ฅด๊ฒ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๊ฒ ํด์ค๋๋ค.
Maven ์์กด์ฑ
<dependency>
<groupId>io.javelit</groupId>
<artifactId>javelit-core</artifactId>
โฆ
</dependency>
์ฃผ์ ์ปดํฌ๋ํธ
| ์ปดํฌ๋ํธ | ์ค๋ช |
|---|---|
Jt.title | ํ์ด์ง ์ ๋ชฉ |
Jt.text | ์ผ๋ฐ ํ ์คํธ |
Jt.code | ๊ตฌ๋ฌธ ๊ฐ์กฐ๊ฐ ์ ์ฉ๋ ์ฝ๋ ๋ธ๋ก |
Jt.html | HTML ํ์(์๋ฐ์คํฌ๋ฆฝํธ ์คํ ์์ด) |
Jt.echarts | ECharts ๊ธฐ๋ฐ ์ฐจํธ |
Jt.button, Jt.radio, Jt.textInput | ํผ ์์ |
Javelit ์ ์ฒด ๋ฌธ์ :
Google Cloud Run์ ๋ฐฐํฌ
โ๋จ์ผ ์ปดํฌ๋ํธโ ์ํคํ
์ฒ ๋๋ถ์ ๋ฐฐํฌ๊ฐ ๊ฐ๋จํฉ๋๋ค: ADK ์์ด์ ํธ์ Javelit ์ธํฐํ์ด์ค๋ฅผ ๋ชจ๋ ํฌํจํ ํ๋์ Docker ์ด๋ฏธ์ง๋ง ๋ง๋ค๋ฉด ๋ฉ๋๋ค.
Cloud Run์์๋ ์ด๋ฏธ์ง๋ฅผ ํธ์ํ๊ณ ๋ช ๋ถ ์์ ์๋น์คํ ์ ์์ต๋๋ค.
ํ๋กฌํํธ ์ปค์คํฐ๋ง์ด์ง ์ต์
๋ค์๊ณผ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ์ต๋๋ค:
- ํ์์คํฌํ ํ์ ์ฌ๋ถ(Thรฉophile์๊ฒ ๊ฐ์ฌ).
- ์๊ฒฉํ ์ ์ฌ(์๋ฌธ ๊ทธ๋๋ก) ํน์ ๊ฐ๋ ์ฑ์ ๋์ธ ๋ฒ์ ์ ํ.
์คํ์์ค ํ๋ก์ ํธ
์ ์ฒด ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค:
AgentโZโtranscribeโpodcast
๊ฒฐ๋ก
ADKโฏ+โฏGeminiโฏ+โฏJavelit ์กฐํฉ์ ํ์บ์คํธ ์ ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค:
- ADKโฏโ LLM ์์ด์ ํธ ์ ์์ ๋จ์ํ.
- Geminiโฏ3โฏโ ๊ณ ํ์ง ์ ์ฌ ์ ๊ณต.
- Javelitโฏโ ๋ณต์กํ CSS ์์ด Java๋ก ๊ทธ๋ํฝ UI ๊ตฌ์ถ.
์๋ฒ๋ฆฌ์ค(Cloud Run) ๋ชจ๋๋ก ๋ฐฐํฌ๋ ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฏธ์ ์ด๋ฉด์๋ ๊ธฐ๋ฅ์ ์
๋๋ค.
์ด ํ๊ฒฝ์ IDE โ์์ด์ ํธํโ Antigravity์ ๊ฒฐํฉํ๋ฉด, ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ์์ํ ์ ์์ต๋๋ค ๐.