ç®æ¬¡
1.ã¯ããã«
2.ã»ããã¢ããã«ã€ããŠ
3.ãã£ããçšã¹ã¯ãªããã®å®è£
ãšåäœç¢ºèª
4.ã³ãããã¡ãã»ãŒãžçæçšã¹ã¯ãªããã®å®è£
ãšåäœç¢ºèª
5.ãããã«
1.ã¯ããã«
LiteRT-LM ãšã¯ Google ãå ¬éããŠãããšããžããã€ã¹ïŒã¹ããŒããã©ã³ãPCãIoTæ©åšãªã©ïŒåãã® LLM å®è¡ç°å¢ã§ãã
æ¬èšäºå·çæç¹ã§ã¯ Pythonã»Kotlinã»C++ ã® API ãçšæãããŠãããæ¬èšäºã§ã¯Â LiteRT-LM Python API ãåãäžããŸãã
LiteRT-LM Python API çµç±ã§ Gemma 4ïŒlitert-community/gemma-4-E4B-it-litert-lmïŒ ãåãããã¿ãŒããã«äžã§ã®ãã£ãããã³ãããã¡ãã»ãŒãžçæã詊ããŠã¿ãã®ã§ç޹ä»ããŸãã
ç°å¢æ å ±
- macOSïŒTahoe 26.3.1
- ãããïŒApple M4
- ã¡ã¢ãªïŒ16GB
- uvïŒ0.11.7
2.ã»ããã¢ããã«ã€ããŠ
LiteRT-LM Python API ã®å©çšã«ããã uv ã§ä»¥äžãå®è¡ããŠããŸãã
litert-lm ãã·ã¹ãã å
šäœã®ãã€ããªãšããŠã€ã³ã¹ããŒã«ãã©ãããã§ã litert-lm ã³ãã³ãã䜿ããããã«ããŸãã
$ uv tool install litert-lm Resolved 26 packages in 565ms Prepared 5 packages in 5.72s Installed 26 packages in 38ms + annotated-doc==0.0.4 + anyio==4.13.0 + certifi==2026.4.22 + click==8.3.3 + filelock==3.29.0 + fsspec==2026.4.0 + h11==0.16.0 + hf-xet==1.4.3 + httpcore==1.0.9 + httpx==0.28.1 + huggingface-hub==1.13.0 + idna==3.13 + litert-lm==0.11.0 + litert-lm-api==0.11.0 + markdown-it-py==4.0.0 + mdurl==0.1.2 + packaging==26.2 + prompt-toolkit==3.0.52 + pygments==2.20.0 + pyyaml==6.0.3 + rich==15.0.0 + shellingham==1.5.4 + tqdm==4.67.3 + typer==0.25.1 + typing-extensions==4.15.0 + wcwidth==0.7.0 Installed 1 executable: litert-lm
ç¶ããŠã¢ãã«ã€ã³ããŒãã宿œããŸãã
litert-community/gemma-4-E4B-it-litert-lm ã HuggingFace ããã€ã³ããŒãããŸãã
gemma-4-E4B-it.litertlm ãããŠã³ããŒããããŒã«ã«ã§ã®ç®¡çåã¯Â gemma4-e4b ã«ããŠããŸããïŒç®¡çåã®èšå®ã¯ä»»æã§ãïŒ
litert-lm import \
--from-huggingface-repo litert-community/gemma-4-E4B-it-litert-lm \
gemma-4-E4B-it.litertlm \
gemma4-e4b
ã³ãã³ãã®å®è¡çµæã¯ä»¥äžã§ãã
$ litert-lm import \ > --from-huggingface-repo litert-community/gemma-4-E4B-it-litert-lm \ > gemma-4-E4B-it.litertlm \ > gemma4-e4b Downloading gemma-4-E4B-it.litertlm from litert-community/gemma-4-E4B-it-litert-lm... gemma-4-E4B-it.litertlm: 100%|ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ| 3.66G/3.66G [01:37<00:00, 37.6MB/s] Successfully imported model to /Users/xxx/.litert-lm/models/gemma4-e4b/model.litertlm You can now run the model with 'litert-lm run gemma4-e4b'
ã¢ãã«ã®é çœ®å Žæã¯ä»¥äžã«ãªã£ãŠããŸãã
/Users/xxx/.litert-lm/models/gemma4-e4b/model.litertlm
ãã£ã¬ã¯ããªåã¯èšå®ãã管çåïŒgemma4-e4bïŒã䜿ãããŠããã管çåãçç¥ããå Žå HuggingFace ãªããžããªå
ã®åç§°ïŒgemma-4-E4B-it.litertlmïŒ ããã®ãŸãŸãã£ã¬ã¯ããªåãšãªããŸãã
äžèšãã¹ã¯åŸè¿°ã® Python ã¹ã¯ãªããã§äœ¿çšããŸãã
3.ãã£ããçšã¹ã¯ãªããã®å®è£ ãšåäœç¢ºèª
ã¹ã¯ãªããã®äœæ
ã€ã³ããŒãããŠããã¢ãã«ã䜿ãã¿ãŒããã«äžã§ãã£ãããã§ãã Python ã¹ã¯ãªãããäœæããŸãã
以äžãã£ã¬ã¯ããªã« chat.py ãäœæããŸãã
~/.local/bin/ âââ chat.py
~/.local/bin/ ã¯ãŠãŒã¶ãŒåºæã®å®è¡ãã¡ã€ã«ãçœ®ãæšæºçãªãã£ã¬ã¯ããªãªã®ã§ãããã䜿çšããŸãã
ãã£ããçšã¹ã¯ãªãããåŸè¿°ããã³ãããã¡ãã»ãŒãžçæçšã¹ã¯ãªããã®ã©ã¡ããã¢ãã«ã䜿ã£ãåŠçãåæã§ãããããŒã«ã«ã«ã€ã³ããŒãããã¢ãã«ãèªã¿èŸŒãã§äœ¿ããç¶æ ã«ããå¿ èŠããããŸãã
ããã LiteRT-LM Python APIïŒlitert_lmã©ã€ãã©ãªïŒã§å®çŸããŸãã
litert_lm.Engine ã API ã®ãšã³ããªãã€ã³ããã€ãŸãã¢ãã«ãå©çšããéã®èµ·ç¹ã§ãããlitert_lm.Engine ã«ã¢ãã«ã®ãã¹ãæå®ããŠåæåããããšã§ã¢ãã«ãå©çšã§ããç¶æ ãšãªããŸãã
# äŸ
with litert_lm.Engine(
"path/to/your/model.litertlm",
backend=litert_lm.Backend.GPU
) as engine:
äžèšãã£ããçšã¹ã¯ãªããã®å Žåãã¹ã¯ãªãããå®è¡ãããšã¢ãã«ãããã°ã©ã äžã§åäœããäŒè©±ã»ãã·ã§ã³ãéããŠãŠãŒã¶ãŒã®å
¥åãåãä»ããå¿çãã¹ããªãŒãã³ã°ã§åºåãã圢ãšãªããŸãã
ãã£ãã㯠exit ã quitãCtrl+C ã§çµäºã§ããŸãã
chat.py ã®å
容ã¯ä»¥äžãšãªããŸãã
"""
chat.py
圹å²: ããŒã«ã«LLMãšã¿ãŒããã«äžã§äŒè©±ãã
äœ¿ãæ¹: uv tool run --from litert-lm python3 ~/.local/bin/chat.py
çµäº: Ctrl+C / exit / quit ãå
¥å
"""
import litert_lm
from pathlib import Path
MODEL_PATH = str(Path.home() / ".litert-lm/models/gemma4-e4b/model.litertlm")
litert_lm.set_min_log_severity(litert_lm.LogSeverity.ERROR)
print("ð¬ ããŒã«ã«LLMãšãã£ããïŒçµäº: Ctrl+C / exit / quitïŒ\n")
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "çµè«ãæåã«è¿°ã¹ãè£è¶³èª¬æã¯ç°¡æœã«ãŸãšããŠãã ããã"}],
}
]
with litert_lm.Engine(MODEL_PATH, backend=litert_lm.Backend.GPU, enable_speculative_decoding=True) as engine:
with engine.create_conversation(messages=messages) as conversation:
while True:
try:
user_input = input(">>> ")
except (KeyboardInterrupt, EOFError):
print("\nçµäºããŸãã")
break
if user_input.strip().lower() in ("exit", "quit"):
print("çµäºããŸãã")
break
if not user_input.strip():
continue
for chunk in conversation.send_message_async(user_input):
print(chunk["content"][0]["text"], end="", flush=True)
print() # ã¹ããªãŒãã³ã°åºåã¯æ¹è¡ãªãã§çµããããæåŸã«æ¹è¡ãè£ã
å®è¡ã³ãã³ã㯠uv tool run --from litert-lm python3 ~/.local/bin/chat.py ã§ãããæ¯åå
¥åããã«ã¯é·ããããšã€ãªã¢ã¹èšå®ããŠãããŸãã
# èšå®ãã¡ã€ã«ïŒ~/.bash_profile ã ~/.zshrcïŒã«è¿œèš alias chat='uv tool run --from litert-lm python3 ~/.local/bin/chat.py'
åäœç¢ºèª
ãã£ãããªã®ã§è³ªåã«å¯Ÿããåçãè¿ã£ãŠããããã»ãã·ã§ã³å ã®äŒè©±ãèšæ¶ãããŠãããã確èªããŸãã
chat.py ã®å®è¡çµæã¯ä»¥äžã§ãã
ã¿ãŒããã«ã§ chat ãšå
¥åãèµ·åãMySQLã»SQLServerã»PostgreSQL ã®ããŒãã«ã€ããŠè³ªåããæåŸã«æåã«ãã質åã¯äœã§ãã£ãããèããŠããŸãã
ããããæ£ããåçãè¿ã£ãŠãããã»ãã·ã§ã³å ã®äŒè©±ãèšæ¶ãããŠããããšã確èªã§ããŸãããïŒã»ãã·ã§ã³ãçµäºããããããšãã®èšæ¶ã¯ãªã»ãããããŸãïŒ
$ chat ð¬ ããŒã«ã«LLMãšãã£ããïŒçµäº: Ctrl+C / exit / quitïŒ >>> MySQLã®ããŒãã¯ïŒ MySQLã®æšæºããŒãã¯**3306**ã§ãã **è£è¶³:** * ããã¯MySQLãããã©ã«ãã§ãªãã¹ã³ããããŒãçªå·ã§ãã * ã€ã³ã¹ããŒã«ãèšå®ã«ãã£ãŠã¯ããã®ããŒãçªå·ã倿ŽãããŠããå ŽåããããŸãã * æ¥ç¶æã«ããŒãçªå·ãæå®ããªãå Žåãã¯ã©ã€ã¢ã³ãã¯éåžž3306çªããŒãã«æ¥ç¶ããããšããŸãã >>> SQLServerã¯ïŒ SQL Serverã®æšæºããŒãã¯**1433**ã§ãã **è£è¶³:** * ããã¯SQL Serverãããã©ã«ãã§ãªãã¹ã³ããããŒãçªå·ã§ãã * SQL Serverã®ã€ã³ã¹ã¿ã³ã¹åãèšå®ã«ãã£ãŠã¯ããã®ããŒãçªå·ã倿ŽãããŠããå ŽåããããŸãã * è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãåããµãŒããŒäžã§çšŒåãããå ŽåãããŒãçªå·ã®å€æŽãäžè¬çã§ãã >>> PostgreSQLã¯ïŒ PostgreSQLã®æšæºããŒãã¯**5432**ã§ãã **è£è¶³:** * ããã¯PostgreSQLãããã©ã«ãã§ãªãã¹ã³ããããŒãçªå·ã§ãã * èšå®ãã¡ã€ã«ïŒ`postgresql.conf`ãªã©ïŒã倿Žããããšã§ããã®ããŒãçªå·ã¯å€æŽå¯èœã§ãã >>> ç§ã®æåã®è³ªåã¯ïŒ ããªãã®æåã®è³ªåã¯ã**MySQLã®ããŒãã¯ïŒ**ãã§ããã >>> exit çµäºããŸã
4.ã³ãããã¡ãã»ãŒãžçæçšã¹ã¯ãªããã®å®è£ ãšåäœç¢ºèª
ã¹ã¯ãªããã®äœæ
~/.local/bin/ é äžã« commit-message/ ãã£ã¬ã¯ããªãäœæã以äžã®2ã€ã®ãã¡ã€ã«ãé 眮ããŸãã
~/.local/bin/commit-message/ âââ get_diff.sh âââ commit_message.py
get_diff.sh ã®å 容ã«ã€ããŠãgit diff ã®æ å ±ãååŸãåºåããã·ã§ã«ã¹ã¯ãªããã«ãªã£ãŠããŸãã
git add æžã¿ã®å·®åãããå Žå STATUS: ready ãšã㊠git diff --staged ã®çµæãåºåãgit add åã®å€æŽã®ã¿ã®å Žå STATUS: needs_add ãšã㊠git diff ã®çµæãåºåã倿Žããªãå Žå STATUS: no_changes ãåºåããŸãã
ãã®ã¹ã¯ãªããã¯åŸè¿°ã® commit_message.py ããåŒã³åºããŠäœ¿çšããŸãã
commit_message.py ã¯ãã®ã¹ã¯ãªããã®åºåãåãåããSTATUS ã«å¿ããåŠçãå®è¡ããŸãã
#!/bin/bash # ============================================================================= # get_diff.sh # 圹å²: ã³ãããã¡ãã»ãŒãžææ¡ã®ããã®diffæ å ±ãååŸããã¹ã¯ãªãã # äœ¿ãæ¹: bash ~/.local/bin/commit-message/get_diff.sh # ============================================================================= STAGED=$(git diff --staged) UNSTAGED=$(git diff) CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) echo "## Current branch: $CURRENT_BRANCH" echo "" # ãã¿ãŒã³1: staged ãã â æ£åžžãã㌠if [ -n "$STAGED" ]; then echo "## STATUS: ready" echo "" echo "## Staged changes" echo "$STAGED" # ãã¿ãŒã³2: staged ãªãã»unstaged ãã â git add ãä¿ã elif [ -n "$UNSTAGED" ]; then echo "## STATUS: needs_add" echo "" echo "## git addåã®ãã¡ã€ã«äžèЧ" git status --short echo "" echo "## Unstaged diff (åè)" echo "$UNSTAGED" # ãã¿ãŒã³3: 倿Žãªã else echo "## STATUS: no_changes" echo "ã³ããããã倿ŽããããŸãã" fi
ç¶ã㊠commit_message.py ã®å 容ã«ã€ããŠãget_diff.sh ãåŒã³åºã㊠diff æ å ±ãååŸãããã®å 容ãã·ã¹ãã ããã³ãããšãšãã«ã¢ãã«ã«æž¡ãã³ãããã¡ãã»ãŒãžãçæããŸãã
get_diff.sh ã®å®è¡çµæã STATUS: no_changes ã ã£ãå Žåãã¢ãã«ã®èªã¿èŸŒã¿ã¯ã¹ãããããŠæ©æçµäºãã圢ãšããŠããŸãã
ã³ãããã¡ãã»ãŒãžã®çæã§ãããã·ã¹ãã ããã³ããã§ã¢ãã«ã«æç€ºããŠããŸãã
STATUS ã®å€ã«å¿ããåçããã圢ãšããŠãããSTATUS: ready ã®å Žå diff ã®å
容ãåæã prefix: æ¥æ¬èª ã®åœ¢åŒã§ã³ãããã¡ãã»ãŒãžãææ¡ããŸãã
STATUS: needs_add ã®å Žå git add ããŸã ã§ããããšãäŒãã€ã€ãdiff ã®å
容ããã³ãããã¡ãã»ãŒãžã®äºåææ¡ãæ·»ãã圢ãšããŠããŸãã
#!/usr/bin/env python3
"""
commit_message.py
圹å²: git diffãååŸãConventional Commits圢åŒã®ã³ãããã¡ãã»ãŒãžãææ¡ãã
äœ¿ãæ¹: uv tool run --from litert-lm python3 ~/.local/bin/commit-message/commit_message.py
"""
import subprocess
import sys
from pathlib import Path
import litert_lm
# ==============================================================================
# èšå®
# ==============================================================================
MODEL_PATH = str(Path.home() / ".litert-lm/models/gemma4-e4b/model.litertlm")
# get_diff.sh ã®ãã¹ïŒãã®ã¹ã¯ãªãããšåããã£ã¬ã¯ããªïŒ
SCRIPT_DIR = Path(__file__).parent
GET_DIFF_SH = SCRIPT_DIR / "get_diff.sh"
# ==============================================================================
# ã·ã¹ãã ããã³ãã
# ==============================================================================
SYSTEM_PROMPT = """ããªãã¯Gitã®ã³ãããã¡ãã»ãŒãžãææ¡ããã¢ã·ã¹ã¿ã³ãã§ãã
git diffã®æ
å ±ãæž¡ãããŸãããã®å
容ãåæããŠConventional Commits圢åŒã»æ¥æ¬èªã§ã³ãããã¡ãã»ãŒãžãææ¡ããŠãã ããã
ã³ãããã®å®è¡ã¯çµ¶å¯Ÿã«è¡ããªããææ¡ã®ã¿è¡ãããšã
## STATUSã«ããåå²
å
¥åã®å
é ã« `## STATUS: <value>` ãå«ãŸããŸãã
### STATUS: ready
staged diffãåæããŠã³ãããã¡ãã»ãŒãžãææ¡ããã
### STATUS: needs_add
git addãæžãã§ããªãããšããŠãŒã¶ãŒã«äŒããã
unstaged diffãåèã«äºåææ¡ãæ·»ããã
äŸïŒ
```
git add ããŸã ã®ããã§ãã以äžã®ãã¡ã€ã«ã倿ŽãããŠããŸãïŒ
M terraform/s3.tf
git add <ãã¡ã€ã«> ã®åŸãããäžåºŠã詊ããã ããã
倿Žå
容ãã㯠feat: ãã ã«ãªãããã§ãã
```
### STATUS: no_changes
ãã³ããããã倿ŽããããŸããããšäŒããŠçµäºããã
## ã³ãããã¡ãã»ãŒãžã®ã«ãŒã«
### ãã¬ãã£ãã¯ã¹
| prefix | çšé |
|---|---|
| feat | æ°ããæ©èœ |
| change | æ¢åæ©èœãžã®å€æŽ |
| docs | ããã¥ã¡ã³ãã®ã¿ã®å€æŽ |
| style | 空çœããã©ãŒããããã»ãã³ãã³è¿œå ãªã© |
| refactor | 仿§ã«åœ±é¿ããªãã³ãŒãæ¹åïŒãªãã¡ã¯ã¿ïŒ |
### åºæ¬ãã©ãŒããã
```
<prefix>: <倿Žçç±>ãã<倿Žå
容>ã<åè©>
```
- å¿
ãæ¥æ¬èªã§æžã
- 50æå以å
ãç®å®ã«ãã
- 倿Žãè€æ°ã®çš®é¡ã«ãŸãããå Žåã¯æãäž»èŠãªå€æŽã®prefixã䜿ããã¡ãã»ãŒãžã«ã¯ãã¹ãŠã®å€æŽå
容ãå«ãã
- prefixã®äž»åŸã倿ã§ããªãå Žåã®ã¿ãåprefixã§1æ¡ãã€ã³ãããã¡ãã»ãŒãžãææ¡ãã
## åºåãã©ãŒããã
åºæ¬ã¯1æ¡ã®ã¿ææ¡ããã
prefixã®äž»åŸã倿ã§ããªãå Žåã®ã¿ãåprefixã§1æ¡ãã€ææ¡ããã
```
## ã³ãããã¡ãã»ãŒãžã®ææ¡æ
feat: ããã®ããâ³â³ã远å
---
æ¡çšããæ¡ãæ±ºãŸã£ãã以äžã®ã³ãã³ãã§ã³ãããã§ããŸãïŒ
git commit -m 'feat: ããã®ããâ³â³ã远å '
```
ã¯ã©ãŒãã¯å¿
ãã·ã³ã°ã«ã¯ã©ãŒãïŒ'ïŒã䜿ãã
"""
# ==============================================================================
# ã¡ã€ã³åŠç
# ==============================================================================
def get_diff() -> str:
"""get_diff.sh ãå®è¡ããŠdiffæ
å ±ãååŸãã"""
if not GET_DIFF_SH.exists():
print(f"ãšã©ãŒ: {GET_DIFF_SH} ãèŠã€ãããŸãã", file=sys.stderr)
sys.exit(1)
result = subprocess.run(
["bash", str(GET_DIFF_SH)],
capture_output=True,
text=True,
)
if result.returncode != 0:
print(f"ãšã©ãŒ: get_diff.sh ã®å®è¡ã«å€±æããŸãã\n{result.stderr}", file=sys.stderr)
sys.exit(1)
return result.stdout
def generate_commit_message(diff_content: str) -> None:
"""ã³ãããã¡ãã»ãŒãžãçæããŠåºåãã"""
litert_lm.set_min_log_severity(litert_lm.LogSeverity.ERROR)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": SYSTEM_PROMPT}],
}
]
print("ð Diffæ
å ±ãåæäž...\n")
with litert_lm.Engine(MODEL_PATH, backend=litert_lm.Backend.GPU, enable_speculative_decoding=True) as engine:
with engine.create_conversation(messages=messages) as conversation:
for chunk in conversation.send_message_async(diff_content):
for item in chunk.get("content", []):
if item.get("type") == "text":
print(item["text"], end="", flush=True)
print() # ã¹ããªãŒãã³ã°åºåã¯æ¹è¡ãªãã§çµããããæåŸã«æ¹è¡ãè£ã
def main():
diff_content = get_diff()
# no_changes ã®å Žåã¯ã¢ãã«ãèªã¿èŸŒãŸãã«æ©æçµäº
if "## STATUS: no_changes" in diff_content:
print("ã³ããããã倿ŽããããŸããã")
sys.exit(0)
generate_commit_message(diff_content)
if __name__ == "__main__":
main()
å®è¡ã³ãã³ã㯠uv tool run --from litert-lm python3 ~/.local/bin/commit-message/commit_message.py ã§ãããæ¯åå
¥åããã«ã¯é·ããããšã€ãªã¢ã¹èšå®ããŠãããŸãã
# èšå®ãã¡ã€ã«ïŒ~/.bash_profile ã ~/.zshrcïŒã«è¿œèš alias commitmsg='uv tool run --from litert-lm python3 ~/.local/bin/commit-message/commit_message.py'
åäœç¢ºèª
Terraform ã§ AWS ãªãœãŒã¹ã管çããŠããç°å¢ãäŸã«åäœç¢ºèªããŸãã
æ¢åã®ãµããããã»ã»ãã¥ãªãã£ã°ã«ãŒããæµçšãã圢ã§ã³ãŒãã« ENI ãš EC2 ã1å°è¿œå ãgit add ãŸã§å®è¡æžã¿ã®ç¶æ
ã«ããŠããŸãã
ãã®ç¶æ
ãã commitmsgïŒcommit_message.py å®è¡ã®ãšã€ãªã¢ã¹ïŒãã¿ãŒããã«ã§å®è¡ããŠã¿ãŸãã
ã¢ãã«ã«æž¡ããã git diff --staged ã®å
容ã¯ä»¥äžã§ãã
aws_network_interface ãš aws_instance ãæ°èŠè¿œå ããããããprefix 㯠featãã¡ãã»ãŒãžã¯æ¥æ¬èªã§ãããã®ãªãœãŒã¹è¿œå ã瀺ãå
容ã«ãªãã¯ãã§ãã
$ git diff --staged
diff --git a/main/02_sysytem/compute.tf b/main/02_sysytem/compute.tf
index d55a2a7..9c74bab 100644
--- a/main/02_sysytem/compute.tf
+++ b/main/02_sysytem/compute.tf
@@ -400,6 +400,47 @@ EOF
}
}
+resource "aws_network_interface" "test3_eni" {
+ subnet_id = data.terraform_remote_state.common.outputs.private_subnet_a_id
+ private_ips = ["10.10.xxx.xxx"]
+ security_groups = [aws_security_group.test2_sg.id]
+
+ tags = {
+ Name = "${var.project_prefix}-${var.env}-test-03-eni"
+ }
+}
+
+resource "aws_instance" "test3" {
+ ami = var.ami_id_test2
+ instance_type = var.instance_type_test2
+
+ network_interface {
+ network_interface_id = aws_network_interface.test3_eni.id
+ device_index = 0
+ delete_on_termination = false
+ }
+
+ iam_instance_profile = aws_iam_instance_profile.test_profile.name
+ key_name = "your-key-pair"
+
+ disable_api_termination = false
+
+ root_block_device {
+ volume_size = 50
+ volume_type = "gp3"
+ iops = 3000
+ throughput = 125
+ encrypted = true
+ tags = {
+ Name = "${var.project_prefix}-${var.env}-test-03-root"
+ }
+ }
+
+ tags = {
+ Name = "${var.project_prefix}-${var.env}-test-03"
+ }
+}
+
resource "aws_ebs_volume" "data" {
availability_zone = "ap-northeast-1a"
size = 50
å®è¡çµæã¯ä»¥äžã§ãã
ã·ã¹ãã ããã³ããã§èšå®ãããã©ãŒãããã§åºåãããŠããŸãã
æåŸ
éã prefix 㯠featãã¡ãã»ãŒãžã¯æ¥æ¬èªã§ ENI ãš EC2 ã®è¿œå ã瀺ããŠãããgit diff --staged å
ã®ã³ãŒãã® test ãšããåœåãããã¹ãç°å¢çšã§ããããšãæ±²ã¿åã£ãå
容ãšãªã£ãŠããŸãã
$ commitmsg ð Diffæ å ±ãåæäž... ## ã³ãããã¡ãã»ãŒãžã®ææ¡æ feat: ãã¹ãç°å¢çšã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ãšã€ã³ã¹ã¿ã³ã¹ãªãœãŒã¹ã远å --- æ¡çšããæ¡ãæ±ºãŸã£ãã以äžã®ã³ãã³ãã§ã³ãããã§ããŸãïŒ git commit -m 'feat: ãã¹ãç°å¢çšã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ãšã€ã³ã¹ã¿ã³ã¹ãªãœãŒã¹ã远å '
5.ãããã«
LiteRT-LM Python API ã䜿ã£ãã¹ã¯ãªãããåãããŠã¿ãŸããã
ä»å詊ããå 容ã¯ã¯ã©ãŠãçµç±ã§ã¢ãã«ãå©çšãã AI ãµãŒãã¹ã»CLI ããŒã«ã§ãå®çŸã§ããŸãããã¯ã©ãŠãçµç±ã§ã®ã¢ãã«ã«å šãŠã®åŠçãä»»ãããšããŒã¯ã³ã³ã¹ããããã¿ãå©çšå¶éïŒã¬ãŒããªãããïŒã«ã圱é¿ããŸãã
ããŒã«ã« LLM ã§åŠçã§ããããšã¯ããŒã«ã«ã§å®çµã§ããã°ãã¯ã©ãŠãçµç±åŽã®ããŒã¯ã³ã³ã¹ããæãã€ã€ã¬ãŒããªããããæž©åã§ããã®ã§ãããŒã«ã« LLM ã®å¯èœæ§ãææ¡ããŠããããšã¯æçšããšæããŸãã