1
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?

vimとdiscordとshellで動くAI clientの闇鍋リポジトリをgit submoduleでわけた

1
Posted at

今回いいたい事

AIのクライアントを作る時に、git submoduleを使うと色々なUIをリポジトリ別に実装できて嬉しかった。
以上です。以下、蛇足。

作ったもの

あ、ごめんなさい、書いておいてまだ未完成です。

vimとdiscordとshellで動くAI clientを書きました。名前はこにんこ。1

そんだけ。

闇鍋というかゲテモノじゃね?

いや、当初闇鍋を作りたかったわけじゃないんですよ。欲しいクライアントがあったんです。

くそどうでもいい動機 皆さんはこう思った事はありませんか? - 「AIへの質問をまちがえた…」 - 「いや、話題を逸らすなよ…」 - 「話が戻って無駄になった…」 - 「君のWeb検索は僕の求めてるのと違うよ!」

僕はわりとあります。そこで、下記の機能を実装してました。

  • 時間を戻す事ができる
  • 時間を止める事ができる
  • 過去の会話から分岐する事ができる
  • Web検索は手動で設定する

ええ、僕の僕による僕のためのクライアントですが、これはこれで良さそうですよね?
何かを自動でうまく作るクライアントではなくて、敢えて手動部分を残すツール、自分の思い通りに動くシンプルな駒、影分身的クライアントです。

ただ、AI、特にLLMって汎用性が凄いんですよね。って事は派生を作りやすいわけです。増えるじゃないですか。しかたないんですよ。

こいつをUIとcoreで分けていったのですが、それにgit submoduleを使いました。
とても自然な流れだったのです。

技術的背景

これもどうでもよくて、こにんこ自体は大したものではないのです。deno製です。これも特に言うべき事はないですが、出力先をいくらでも作れるんですよね。

  • discord bot(API叩くだけ)
  • vim plugin(denopsを使用)
  • CUI(STDIOだけでどうとでもなる)

git submodule

git submoduleはgitのリポジトリの中にgitのリポジトリを導入するものです。使い方はまぁ以外と簡単です。
だって、UIとcoreって分けたいじゃないですか。当然わけますよね。とりあえず、gitのリポジトリを作ります。

git init

そんで、

git submodule add [URL]

です。ここで、僕はcoreのリポジトリをURLにあてはめました。
これでUIをわければ闇鍋解除なのです。

git/configはどうなってるのか

リポジトリの中にリポジトリがあるのですが、こんなかんじです。

  • README.md
  • [submodule1]
  • [submodule2]
  • .git
    • config
    • modules
      • [submodule1]
        • config
      • [submodule2]
        • config

感想

AI関係ないじゃねーかと言われそうですが、こういう形でgit submoduleが役にたったので他の人もそういう状況に遭遇するかもしれないなって。

  1. 「最早vim pluginなのかよくわからん」ってなりましただから改名して「こにんこ(COllection of NINja's COworkers)」と名付けました。

1
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
1
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?