🔥
Genkit x Gemma2 でオフライン翻訳ツールを作ってみた
はじめに
先日 Genkit と Gemma2 を使ったローカル LLM の記事を書いたのですが、オフライン翻訳が簡単に実現しそうだったので作ってみた、という記事です。
実現方法
まず Genkit を使って Gemma2 をローカル LLM として呼び出す の通りに Genkit と Gemma2 をセットアップします。
あとは prompt を修正するだけです。
主な変更点
- Flow の名前を
translationFlow
に指定 -
generate
メソッドに渡すprompt
を修正。ユーザーから受け取ったtext
を英語と日本語に翻訳するように指示
export const translationFlow = defineFlow(
{
name: 'translationFlow',
inputSchema: z.string(),
outputSchema: z.string(),
},
async (text) => {
const llmResponse = await generate({
prompt: `Translate the following text into both English and Japanese.\n\n## Text:\n${text}\n\n## English:`,
model: 'ollama/gemma2',
config: {
temperature: 1,
},
})
return llmResponse.text()
}
)
実際の挙動
Genkit には Developer Tools というローカルで検証できるツールが存在します。この UI をそのまま使います。
カザフ語で「Genkit は他の OSS と比べてどのような優位性がありますか?」と聞いてみた結果は以下となります。
上記の質問を日本語で回答した結果は以下です。
自分のニーズはこれで達成できたので、このレベルで完成とします。違うニーズの方はプロンプトエンジニアリングしてみてください。
ソースコード
ソースコードは以下の GitHub にあげてますので自由に使ってください。
Discussion