昨年くらいから断続的にテキストパーサーを調べて実験コードを書いてきた (この辺の話)のですが、 機能変更が落ち着いてきたのでとりあえず公開しました。TypeScript 版です。 ライセンスは MIT です。 このブログで書いてきたパーサーコンビネータは Kotlin で実装しているのですが、 それを TypeScript に移植してあれこれ修正したものです。 ライブラリ本体は TypeScript で書いていますが、パースするコードを書くときは JavaScript でゆるくかけるので楽です。
Kotlin 版では tailrec が使えたので深い再帰が発生してもスタックオーバーフローにはならないと思うのですが、 TypeScript 版はそのあたりの対策は今のところしていません。 そんな巨大なテキストをパースすることもないのかな。
» Read More以前に 「Markdown to InDesign 開発入門」 という キンドル本を書いたのですが、書き直そうと思い始めた。 理由のひとつは、 内容が古くなってしまったこと、そして もうひとつは、パーサーコンビネーターを使えばもっと簡単にマークアップテキストをInDesign ドキュメントに 変換できるのではないか?と思い始めたから。
この本では、markdown テキストをパースするために既存の markdown パーサーライブラリを使っている。 その markdown パーサーを ExtendScript として作動させることができないので、 普通の Node.js でつくった markdown テキスト to JSON変換サーバーを用意してそっちで変換する、 という方法を使っている。 既存の markdown パーサーライブラリであるためパーサーを自分で書く必要もないのは 圧倒的なメリットだが、かなりややこしい話になってしまった。 使う側にしたらテキストをパースして InDesign ドキュメントに変換したいだけなのに (ローカルで変換サーバー起動するとか面倒なことを・・・)。
今使えるかどうか確認しているパーサーコンビネータは TypeScript で記述されているので、 ここではまずそのための事前調査としてごく簡単な TypeScript を ExtendScript で実行できるか試してみます。
» Read More以前に大学受験の学生に英作文の添削を頼まれてつくったものです。 普通に ChatGPT でもできると思いますが、 毎回添削対象英作文以外のプロンプトは固定なので、APIでつくりました。 単に間違いを修正するだけでなく、修正個所について箇条書きで説明してもらうようにプロンプトで指示を出しています。
今なら GPTs を使うとよいのかもしれません。
API の場合、月額課金ではなく使用量に応じた課金なので、処理量が少なかったり実験レベルのアイデアの検証には API 課金の方が良い。
なお、 ここではシンプルにエンドポイントのURLに所定形式のJSONを投げて回答をもらう方式で実装していきます。 実装言語は Kotlin です。
» Read Moreたとえばネットからダウンロードしたテキストを新しいバッファーに 貼り付けるにはどうしたらいいか?ということを考えた。
» Read Moreinsert と shell-command-to-string を使うと、実行したコマンドの結果を emacs の buffer に挿入できることがわかった。
» Read More以前のポストで書いたコード Emacs でカーソル行にあるURLを取得してブラウザで開く を 実際に emacs でテキストを編集しているときに使えるようにする方法を調べた。
» Read MoreFLUX.1 [Schnell]を stable-diffusion.cppを使ってプロンプトで指定の文字列の入った画像を生成してみた。 手順はここ https://github.com/leejet/stable-diffusion.cpp/blob/master/docs/flux.md にある通り。
» Read MoreLlamafile で気軽に Stable Diffusion するの続きです。 sdfile-0.8.4 のコマンドオプションを調べると control-net オプションがあります。 今回はこれを使ってみました。
前回 Stable Diffusion で生成したセザンヌ風のコーヒーカップ画像を線画(line art)に変換しました。 左の画像が入力画像で、右が変換後の出力です。
» Read MoreLlamafile は Mozilla https://future.mozilla.org/ のプロジェクトです。 Lamafile 自体の詳しい紹介はこちらhttps://future.mozilla.org/builders/news_insights/introducing-llamafile/をご覧ください。
いくつかのコマンドファイルがあるのですが、 その一つが sdfile で、これは Stable Diffusion のモデルを使って画像生成できる実行ファイルです。
Llamafile の特徴はプロジェクトのサイト https://github.com/Mozilla-Ocho/llamafile から単にファイルをダウンロードしてそれを実行するだけでよい、という点です。 ひとつの実行ファイルが各種OS(Windows/macOS/Linux) に対応しているので、 自分の使用OSにあったファイルはどれか?と悩むこともありません。 そして、特定のGPUが必要という制限もありません。
» Read More以前のポスト Gradle を使ってライブラリプロジェクトを作成して local maven に publish、それをアプリケーションプロジェクトで使う(覚え書き) でつくった names というライブラリを Kotlin Multiplatform 用にする(覚え書き)。
» Read More結論 Use Option as Meta key にチェックを入れる。
» Read More