考古学出身の開発者が作ったLLMベースのニュースレター自動化キット
(github.com/kimhongyeon)こんにちは。大学で考古学を専攻しましたが、終わりのない手作業を解決したくて開発者になったエンジニアです。
長い試行錯誤の末、自分で使うために作ったニュースレター自動化エンジン(LLM Newsletter Kit)をオープンソースとして公開します。
現在このエンジンは、私が運営している文化遺産ニュースレター「リサーチレーダー」のコアであり、クリック率(CTR)15%を維持しつつ、発行あたりのLLM APIコストは$0.20水準に最適化されています。
単なるリンク集ではなく、専門ドメインの知識をLLMが分析・要約してインサイトを提供するパイプラインです。
開発の背景と率直な話
コードベースである以上、ノーコードツールに比べて参入障壁があり、一般的に広く使われないかもしれないと思っています。そもそも広く使われることを目標にしたというより、自分の明確なニーズを解決するために作ったものだからです。
最初は自分ひとりで見るために作った「文化遺産特化ニュースレター」でした。その後、誰でも購読できるようにサービスを公開しました。
開発を進めるうちに、ソースコードと文化遺産ドメインロジックがあまりにも強く結合していました。これを解決するため、DI(依存性注入)構造で抽象化し、誰でも使えるライブラリとして分離しました。
npm i @llm-newsletter-kit/core
現在、私のサービスも過去の強結合なレガシーコードを捨て、このオープンソースのコアをベースに移行して運用中です。
設計思想: "Logic in code, reasoning in AI"
ノーコードツールではなくコードを選んだ理由は、私の設計思想にあります。「ロジックはコードで、推論はAIで、接続はアーキテクチャで(Logic in code, reasoning in AI, connections in architecture)」。
ノーコードツールは便利ですが、複雑なロジックを実装するには限界が明確でした。決定的なワークフローは型安全なコード(TypeScript)で制御し、知的な分析だけをLLMに任せることで、自己省察(Self-reflection)や多段階検証のような精緻なロジックを実装しました。
主な特徴
Type-First & DI設計: TypeScriptで書かれており、クローリング、分析、生成などすべての段階がProviderインターフェースベースのため、部品を差し替えるように交換できます。
Bring Your Own Scraper: 特定のライブラリにロックインされません。Puppeteer、Cheerio、あるいはAIベースのパーサーなど、望むものを何でも非同期で注入して使えます。
Production Ready: 実運用のためにリトライロジック(Retries)、チェーンオプション、テストカバレッジ100%を備えています。
リンク
- GitHub (Core): https://github.com/kimhongyeon/llm-newsletter-kit-core
- 実際の結果の例(リサーチレーダー): https://heripo.com/research-radar-newsletter-example.html
- リファレンス実装コード: https://github.com/kimhongyeon/heripo-research-radar
ありがとうございます。フィードバックはいつでも歓迎です!
まだコメントはありません。