使用方法¶
niwatoko 言語は、自然言語プログラミングを実現するためのPython言語です。以下の手順で使用できます。
niwatoko 言語をインストールします。
pip install niwatoko
環境変数を設定します。(必要に応じて設定してください)
# GCP GEMINI の設定 export GEMINI_PROJECT=gemini-xxxxx export GEMINI_LOCATION=asia-northeast1 # OpenAI APIキーの設定 export OPENAI_API_KEY=sk-xxxx # Anthropic APIキーの設定 export ANTHROPIC_API_KEY=sk-ant-xxxxx
これらの環境変数は、niwatoko言語が内部で使用する各種APIやプロジェクトの設定に必要です。適切な値を設定してください。
niwatokoはシェルで使用する自然言語プログラミング言語です。以下の方法で使用できます。
コンパイラモード:
niwatoko
コマンドを使用して、自然言語のソースコードを直接実行することができます。$ niwatoko example.md -o example.py
example.md
ファイルに書かれた自然言語のソースコードが、中間生成ファイルexample.py
に変換されて実行されます。モデルの選択は以下のオプションで行えます:
-m
または--model
: 使用するモデルを選択します。デフォルトはclaude-haiku
です。 選択可能なモデル:openai-gpt4o
.claude-sonnet
.claude-opus
.claude-haiku
.gemini-1.5-pro
.gemini-1.5-flash
.
-mii
または--model-input-image
: 使用する画像解釈モデルを選択します。デフォルトはopenai-gpt4o
です。 選択可能なモデル:openai-gpt4o
.gemini-1.5-pro
.gemini-1.5-flash
.
例えば、以下のようにモデルを指定して実行できます:
$ niwatoko example.md -m openai -mii gemini-1.5-pro -o example.py
- <!– - インタプリタモード: 2つの使い方があります。
niwatoko
コマンドを単独で実行すると、Pythonのようにインタプリタの画面が表示されます。ここで自然言語の命令を入力し、対話的にプログラムを実行できます。$ niwatoko niwatoko> "Hello, World!" を表示してください Hello, World! niwatoko>
niwatoko "プロンプト"
のように、コマンドライン引数としてプロンプトを渡すことで、その回答を直接出力することもできます。$ niwatoko ""Hello, World!" を表示してください" Hello, World!
これにより、自然言語の命令がPythonコードに変換され、その場で実行されます。実行結果は標準出力に表示されます。 –>
niwatokoは、Pythonの代替品として使用できる自然言語プログラミング言語です。Pythonと同等の機能を提供しつつ、より直感的で読みやすいコードを書くことができます。以下に、簡単なものから少し複雑なものまで、niwatokoの完全自然言語プログラムの例を示します。
"Hello, World!" を表示する
ユーザーに名前を尋ねる 入力された名前を name に代入する "こんにちは、" + name + "さん!" を表示する
関数 フィボナッチ(n): # nが0以下の場合は0を返す もし n が 0 以下 ならば: 0 を返す # nが1の場合は1を返す もし n が 1 ならば: 1 を返す # それ以外の場合は、再帰的にフィボナッチ数を計算する そうでなければ: フィボナッチ(n - 1) + フィボナッチ(n - 2) を返す # 1から10までのフィボナッチ数を表示する 1 から 10 までの i に対して: i + " 番目のフィボナッチ数は " + フィボナッチ(i) を表示する
関数 素数判定(n): もし n が 2 未満 ならば: False を返す 2 から n-1 までの i に対して: もし n が i で割り切れるならば: False を返す True を返す 入力された数値を num に代入する もし 素数判定(num) ならば: num + " は素数です" を表示する そうでなければ: num + " は素数ではありません" を表示する
上記の例は、Hello Worldから素数判定まで、Markdownで書かれた完全自然言語プログラムです。Markdownを使うことで、プログラミングの基本概念を自然言語で表現でき、初心者にもわかりやすいコードを書くことができます。
これらのMarkdownプログラムを実行すると、以下のような結果が得られます。
$ niwatoko hello_world.md -o hello_world.py Hello, World! $ niwatoko greeting.md -o greeting.py 名前を入力してください: 山田 こんにちは、山田さん! $ niwatoko fibonacci.md -o fibonacci.py 1 番目のフィボナッチ数は 1 2 番目のフィボナッチ数は 1 3 番目のフィボナッチ数は 2 4 番目のフィボナッチ数は 3 5 番目のフィボナッチ数は 5 6 番目のフィボナッチ数は 8 7 番目のフィボナッチ数は 13 8 番目のフィボナッチ数は 21 9 番目のフィボナッチ数は 34 10 番目のフィボナッチ数は 55 $ niwatoko prime_number.md -o prime_number.py 数値を入力してください: 17 17 は素数です $ niwatoko prime_number.md -o prime_number.py 数値を入力してください: 24 24 は素数ではありません
応用編
以下はグリモワール生成式になります。
## 入力情報: - `著者名` = 元木大介 - 説明したいプロンプトや術式はこちらに記載⬇︎ `術式` = ``` 〜をしたいので、ghコマンドでいい感じにイシューを書いて、そのための実装計画を立てて、また#番号を取得してそれを内包したブランチを作成してください。そして、イシューURLを自動で開いて(lang ja) ``` - オプション - `要望` = [新しくpythonパッケージを作るためのZoltraakアプリにおけるGrimoireを] - `要望` = [Difyを用いたチャットボット開発] - `利用前提` = [Open Interpreter上で実行] - `利用LLM` = GPT-4 ## グリモワール生成AI ### 知識 - `カテゴリータイプ` = - マーケ - 人材 - 営業 - コンサル - PM - デザイン - 開発 - 事務 ### スキル #### 執筆(`術式`) - 以下をドキュメント形式で記載 - `術式`から`カテゴリータイプ`から`カテゴリー`を提案 ``` 『 (`術式`からタイトルを簡潔に考えて書く、〜術式と書く)』 著者: `著者名`、カテゴリー: `カテゴリー` `術式`: 魔法効果: `術式`から魔法効果詳細を簡潔に書く 特殊効果: `術式`から特殊効果詳細を簡潔に書く 利用前提: `利用LLM`と`術式`から`利用前提`を`を記述 ``` ## 仕事手順: 1. `入力情報` を見て`グリモワール生成AI` のスキル `執筆` を使って説明だけ記述 2. `術式` の実行例を記載 - オプション `要望`があればそれをベースに実行 - `術式`は人がまず利用します。 - 記述内容を改変せず利用すること - 使っている様子を、人とAIの対話で記載 - 真面目なですます調 3. `術式`を表現する画像生成プロンプトを提案 - 英語 - 日本語