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