Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
Search
Yukiya Nakagawa
May 14, 2025
Technology
3
1k
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
AI Developer Meetup in Tokyo #1 でしゃべりました
https://ai-developer-meetup.connpass.com/event/353962/
Yukiya Nakagawa
May 14, 2025
Tweet
Share
More Decks by Yukiya Nakagawa
See All by Yukiya Nakagawa
AIがコードを書いてくれるなら、新米エンジニアは何をする? / komekaigi2025
nkzn
26
19k
JS Temporalを学ぶ人のための JSR-310入門 / jsr310-for-temporal
nkzn
0
62
Cloudflare Workers で作る専門性特化型 MCP サーバー / workers-specialist-mcp
nkzn
1
150
Remix × Cloudflare Pages × Sentry 奮闘記 / remix-pages-sentry
nkzn
1
2.3k
Cloudflareスタックで月間1200万UUの経済メディアにアバター画像生成サービスを作る / Cloudflare Developer Platform for AI avatar service
nkzn
7
4.4k
5分で流し読むCloudflare Developer Platform
nkzn
3
440
次世代Web認証「パスキー」 / mo-zatsudan-passkey
nkzn
32
18k
パスキーについて今日時点の僕が知っていること / What I Know About Passkeys as of Today
nkzn
8
3k
青い空の歩き方 / Flying in the bluesky
nkzn
1
370
Other Decks in Technology
See All in Technology
月間数億レコードのアクセスログ基盤を無停止・低コストでAWS移行せよ!アプリケーションエンジニアのSREチャレンジ💪
miyamu
0
770
Webhook best practices for rock solid and resilient deployments
glaforge
1
250
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
290
20260129_CB_Kansai
takuyay0ne
1
270
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
650
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
150
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
11
4.3k
データの整合性を保ちたいだけなんだ
shoheimitani
7
2.7k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
1
180
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
150
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.1k
MySQLのJSON機能の活用術
ikomachi226
0
150
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.5k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Optimizing for Happiness
mojombo
379
71k
GraphQLとの向き合い方2022年版
quramy
50
14k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
How STYLIGHT went responsive
nonsquared
100
6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Balancing Empowerment & Direction
lara
5
880
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
170
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
経済メディア編集部の実務に小さく刺さるAI AI Developer Meetup in Tokyo #1 Yukiya Nakagawa, 2025.5.14
1
自己紹介 なかがわゆきや / なかざん(@Nkzn) 株式会社モニクルで「くらしとお金の社会課題を解 決する」各種事業のインハウス開発に加担 近年はメディア事業のモニクルリサーチ社のCTOに なって経済メディア「LIMO」周辺のお手伝い 技術書典開発チームもやってます 普段使ってるAIツール:Cursor
(チャット欄に住んで ます) 好きなモデル2025-05:Gemini 2.5 Pro 2
会社・事業紹介 3
昨年から事業にAIを取り入れ始めていました https://charatsukuai.limo.media https://speakerdeck.com/nkzn/cloudflare-developer-platform-for-ai-avatar-service 4
今日のお話 実務の課題をAIで解決できないか検討した話 プロダクト開発をAIと二人三脚してみた話 5
実務の課題をAIで解決できないか検討した話 6
現場のペイン アプリメインの会社ではないので、ITの主な役割は業務効率化 プロダクト開発がコードを書いて終わりではなくデリバリーが重要なのと同様 に、Webメディアも記事を書いて終わりではなく、届けるための作業がある その一つが「関連記事の選定」 これからリリースする記事と関係ありそうな既存記事を見つけてくるだけでも一 仕事 現場からの「これAIとかで何とかならないですか」からプロジェクトがスタート 7
こういうやつを決めたい 8
AIのみでなんとかするのは流石に難しかった 雑にAIに最近の記事のCSVファイルを食べさせてみてから、雑に訊いてみた なかなか安定しない プロンプトの工夫で精度を少し上げることはできたものの、ハルシネーションを 排除しきれず 9
AIのことは一旦忘れよう 初心に戻り、素直な技術選定をしてみよう RAG……でもいいけど、今回の用途だとtoo muchっぽい テキストの類似性検索として考えてみれば、シンプルなベクトルDBでいいのでは 10
ベクトルDBといえば よっしゃCloudflare Vectorizeを使ってみよう 昨夏の開発合宿でVectrizeを試していた同僚 もいた → EmbeddingにはCloudflare Workers AIを使う ので、結局AIのお世話にはなった
@cf/baai/bge-m3 を使いました (多言語対応してるやつがあんまりなか ったのでほぼ消去法) 11
こんな感じで使える(保存) const embeddingsResponse = await c.env.AI.run('@cf/baai/bge-m3', { text: [ '
タイトルA\n メタデータA-1\n メタデータA-2', ' タイトルB\n メタデータB-1\n メタデータB-2', ... ], }) let vectors: VectorizeVector[] = []; let id = 1; embeddingsResponse.data.forEach((vector) => { // id とデータを紐づけて保存する(メタデータを添えて取り出したりもできる) vectors.push({ id: `${id}`, values: vector }); id++; }); let inserted = await env.VECTORIZE.upsert(vectors); 12
こんな感じで使える(検索) const embeddingsResponse = await c.env.AI.run('@cf/baai/bge-m3', { text: [' それっぽいクエリ'],
}) let matches = await env.VECTORIZE.query(queryVector.data[0], { topK: 1, }); // matches[0].id => 保存時に決めたID // matches[0].score => クエリとの類似度 // matches[0].metadata => 保存時に添えたメタデータ 13
ざっくり作ってみた 思ったより上手く行った ハンバーガーの話題で探すとパフェの記事が出てきたり(食べ物繋がり) 猫の話題で探すと犬の記事が出てきたり Webアプリ版とSlack版を作って試験運用中 少しだけWebアプリ版のほうが評判がいい チャットで自由な入力を受け付けるとユーザー側が考えることが増えるので、目 的別に最適なUIを提供したほうが受け入れられやすいのかも 14
プロダクト開発をAIと二人三脚してみた話 15
AIと一緒にコードを書く プロトタイピングを早めに終わらせるために、AI Agentに大半のコードを書いても らうことにした とはいえClineのように投げっぱなしというわけではなく、CursorのAgentモードに 随時指示を出す形 ある程度はコンテキストを広く見てほしかったので、Gemini 2.5 Pro固定で実施 16
開発プロセス 1. 解決すべき課題と、大まかに想定しているアーキテクチャを書いたドキュメント を作る(ここは大半が手書き) 2. アーキテクト役でAIに参加してもらう 具体的なアーキテクチャ案を考えてもらう 作業手順を考えてもらう(動作確認のタイミングを多めに盛り込んでもらう のがオススメ) 3.
最初のドキュメントに↑を追記する(ここでコンテキストが永続化される) 4. 手順をひとつずつ実施してもらいつつ、動作確認して細かい動作で気になる点が ないかを確認する 5. 実情に合わせて方針を変えつつ、変えた方針をドキュメントに反映していく 6. できあがり 17
ふりかえり 反省点 アーキテクチャ設計時にそれなりに思慮深いモデルを使っておかないと、本実装 に入ってからめちゃくちゃ迷走する Claude 3.5時代に一度やろうとして頓挫したのが、Claude 3.7やGemini 2.5の時代 になったらあまりにもサクサク進んだのでビビった よかった点
ドキュメントをしっかり整備したり、動作確認のマイルストーンをしっかり挟んで いくことで、頓挫しづらくなった 意図的に考えてもらうスコープが狭くなるようにマイルストーンの調整をしたおか げか、AI側があまり暴走しなかったように見えた 18
ご清聴ありがとうございました We are hiring! お金の診断・相談サービスと経済メディアの両輪で、くらしとお金の社会課題を 解決するモニクルで一緒に働きませんか? フロントエンドもバックエンドもTypeScriptでどっちもやるぜ!という方!どうで すか! https://recruit.monicle.co.jp/ 19