0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3分だけコピペエンジニアになって、genkitでAIアプリを作ってみよう!

Posted at

こんにちは。 webとかアプリとかの開発やってます、中嶋です。

自作アプリにgenkitを利用してカテゴライズAI機能を追加したのですが、導入の簡単さに感動してしまいました。

いざ導入してみると数分でできてしまうような簡単さでしたが、

「何ができるのかよくわからん」
「何か面倒な手順が必要なんじゃないか」

など、二の足を踏んでしまっていました。

僕と同じような人、とりあえず簡単にgenkitに触れてみたい人向けに、3分ほどで頭を使わずに手を動かしてgenkitでアプリを作成できるよう、簡単に導入方法をまとめました。是非、試してみてください!

ファインチューニングなどは全く考えてません。強い人、すみません!

genkitとは

極限まで簡単にいうと「いろんな生成AIのモデルを簡単に開発に組み込めるようにしたライブラリ」かなと思います。

今回は、gemini 1.5 Flashというモデルでアプリを作成しますが、OpenAIのGPT4oなどのモデルを利用するように変更することも簡単にできます。LangChainを触ったことある人は、それと似たようなものと考えていただければ、大体合ってるかと...!

導入フロー(ここから3分)

今回は簡単さを最優先として、npm, commonjsで実装していきましょう。

1. geminiのAPIキーを作成する

Google AI Studio」からAPIキーを作成・コピーしておいてください。
※プランを無料に設定しておけば、課金はされません

2. 適当なディレクトリを作成する

mkdir genkit-qiita && cd $_

3. npmアプリとして初期化 & 必要なpackageをinstallする

npm init -y # 初期化
npm install genkit @genkit-ai/googleai # genkitとAIモデルをinstall

4. Hello, Gemini!, What you can do?と質問するコードを書く

// index.js
const { gemini15Flash, googleAI } = require("@genkit-ai/googleai");
const { genkit } = require("genkit");

const ai = genkit({ plugins: [googleAI()], model: gemini15Flash });

export const execute = async () => {
  const { text } = await ai.generate("Hello, Gemini!, What you can do?");
  console.log(text);
};

execute();

5. 実行する

# 1で作成したAPIキーを環境変数としてexport
export GOOGLE_GENAI_API_KEY=xxx
node ./index.js

これで、nodeから生成AIにリクエストを送り出力を得ることができました!


これだと静的な質問しか投げることができないので、外部から質問を受け付けるようにしていきましょう。

6. 「入力された文章をAIに送り、結果を返却する」flowの作成

index.jsを編集して、flowをexportするようにします.
execute周りはいらないので消してしまいましょう。

const { gemini15Flash, googleAI } = require("@genkit-ai/googleai");
const { genkit } = require("genkit");

const ai = genkit({ plugins: [googleAI()], model: gemini15Flash });

const flow = ai.defineFlow("myFlow", async (input) => {
  const { text } = await ai.generate(
    `Hello, Gemini!, ${input ?? "what you can do?"}`
  );
  return text;
});

module.exports = { flow };

7. developerツールのinstallと起動

npm install -D genkit-cli
npx genkit start -- node --watch ./index.js

スクリーンショット 2024-12-02 15.34.38.png

スクリーンショット 2024-12-02 15.38.41.png

任意の文章をgeminiに投げ、回答を得るアプリを作成することができました! :clap: :clap: :clap:

終わりに

3分でできたでしょうか...? :smiley:
できなかった人は、コピペエンジニアになりきることが出来ていません :punch::punch::punch:

今回はとりあえず触ってみることを目標としましたが、

「pluginとはなんぞや」
「flowをもっと活用するにはどうすればいいんや」
「RAGはできんのか?(できる)」

など、たくさん勉強すべきことはあると思うので、genkit公式ドキュメントもみてみてください...!

自分もAIチンプンカンプン人間なので、頑張って勉強します...

アプリも触ってくれると嬉しいです。 🥰🥰🥰

0s思考アプリ(非公式)」は、赤羽雄二氏が提唱した「頭が良くなる世界一シンプルなトレーニング」として有名な「0秒思考」を、デジタルでやってみよう、というアプリです。

0秒思考のざっくり説明

- A4用紙にテーマを書いて、1分間思いつくままにメモを取る
- 思考整理を行うことができる
- 悩むことが減る
- 頭の回転が速くなる

赤羽氏からは紙とペンで行うことが推奨されている

紙に書くメリットは重々承知していますが、現在AIが高度化してきた中で、「"紙に書く"以上のメリットをデジタルで生み出すことができるのではないか」と思い、アプリを作成しています。(詳細は「note」)

まだまだ開発途上のアプリですが、是非使ってみてください!
FBなどもいただけたらめちゃめちゃ嬉しいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?