Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプ...
Search
Cygames, Inc.
PRO
August 02, 2026
Technology
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
2026/07/23 CEDEC2026
Cygames, Inc.
PRO
August 02, 2026
More Decks by Cygames, Inc.
See All by Cygames, Inc.
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
27k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
1.2k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
3
1.3k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
2
2.1k
【CEDEC2026】派手さと見やすさは両立できる!『Shadowverse: Worlds Beyond』エフェクト・3D背景の超進化したビジュアル設計
cygames
PRO
1
1.9k
【CEDEC2026】『Shadowverse: Worlds Beyond』続編開発におけるUIデザイン・アニメーション演出の「超進化」 ~継承と挑戦を両立するデザイン手法~
cygames
PRO
3
5.2k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
1
280
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
2
470
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
1
1.3k
Other Decks in Technology
See All in Technology
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
120
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
160
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
730
家のリアーキテクト・リファクタリング
suguruooki
0
120
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
540
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
340
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.5k
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
120
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
350
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
500
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
320
Claude Code本って、 読む必要あるの?
oikon48
2
410
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Skip the Path - Find Your Career Trail
mkilby
1
230
Product Roadmaps are Hard
iamctodd
55
13k
The Pragmatic Product Professional
lauravandoore
37
7.4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
The Invisible Side of Design
smashingmag
301
52k
Facilitating Awesome Meetings
lara
57
7.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
Transcript
エンジニアリング / プロダクション・ゲームデザイン ゲームシナリオライターを支援するAIツール開発の実践 ~設計とプロンプトの工夫~ 株式会社Cygames 開発運営支援 ゲームエンジニア / 立福
寛 1 /81
自己紹介 開発運営支援 / ゲームエンジニア 立福 寛 複数のゲーム会社でコンテンツパイプラインの構築、モバイルゲームの開発・運営などを担当。 2018年に株式会社Cygamesへ合流。2019年後半からAIの社内導入に取り組んでいる。 過去のCEDECの講演 CEDEC2024「AIを活用した柔軟かつ効率的な社内リソース検索への取り組み」
CEDEC2025「大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み」 2 /81
はじめに 3 /81
解決したい課題 課題 ゲームシナリオ制作は非常に時間がかかる 数年の運用→キャラクター数増加→把握することが増える ◼ 作成するシナリオ数が膨大 ◼ シナリオライターの負担が大きい ◼ 要望
AIでサポートできないか? ボトルネックになっている部分を整理 ◼ 独立したAIツールでカバーできる部分があった ◼ 4 /81
シナリオ執筆ツール シナリオの執筆、監修、台本作成など Cygames Tech Conference : ウマ娘 プリティーダービーの大規模 YouTube シナリオ制作を効率化するソリューション
~社内Webアプリ開発運用事例~ 5 /81
Dify: AIアプリ開発ツール ローコードでAIアプリ開発が可能 ◼ 実行するPythonのコードもAIで生成できる マルチプラットフォームで動作 ◼ 今回はWindowsのコミュニティ版を利用 Difyのワークフロー アプリの画面
6 /81
講演で得られること ゲームシナリオ執筆をサポートする AIツールの設計と実装のポイント Difyを業務利用する際に直面する 制約とその回避方法 専門用語をできるだけ使わない講演になっています 7 /81
本セッションの構成 シナリオがキャラ設定と矛盾していないか調べるツール セリフ作成支援ツール 方言監修ツール 誤字検出ツール Difyでツール開発する上で直面した制約と回避方法 8 /81
シナリオがキャラクター設定と 矛盾していないか調べるツール 9 /81
解決したい課題 シナリオがキャラ設定と矛盾していないか? キャラ設定 シナリオ AI AIで可能だが、毎回手動で実行するのは大変 やらなくなる 簡単に実行したい 10 /81
ツールの目標 シナリオID=1003 シナリオライター 設定と違うところを指摘 (キャラA)の「好きなもの」 という設定とシナリオの10行目 は一致しません 11 /81
ツールの設計 シナリオ+キャラ設定をプロンプトに AIのシナリオを理解する能力は高い ◼ シナリオとキャラ設定で合っている点、矛盾している点を出せる ◼ シナリオ執筆ツールからシナリオを取得 DifyからAPIを呼び出してシナリオを取得 ◼ 登場キャラクターを取得→キャラ設定をプロンプトに追加
◼ 12 /81
実現のための問題点 キャラ設定が長すぎる! Confluence: 1キャラ1ページのHTML ◼ 今回利用しない「参考情報」が大量に入っている ◼ 必要な情報だけテキストで欲しい! 数千文字の余計な情報 ◼
最近のモデルでは「一応」入るが…… ◼ 余計な情報はノイズになる ◼ 13 /81
プロンプトには何文字入る? 70万文字読めます!(文庫本7冊) 時間がかかるよ お金もかるよ 回答も不正確に 14 /81
プロンプトは短いほうがよい 必要な情報だけ入れるよ! 早い! 安い! 回答も正確! 15 /81
必要な情報だけ取り出す Confluenceのページ:使わない情報が多い キャラクターのプロフィールは表形式 ◼ 補足に長文、表の下にも長文 ◼ キャラクターの設定ページ 項目 内容 項目
内容 名前 サンプルちゃん 名前 サンプルちゃん 身長 150cm 身長 150cm 性格 負けず嫌い 好き きゅうり 性格 好き AIで抽出 負けず嫌い ▼補足(長文) きゅうり ▼補足(長文) 使わない情報 その他の設定など 16 /81
必要な情報だけ取り出す HTMLタグの削除→AI→JSON BeautifulSoup(Pythonのモジュール)でHTMLタグの削除 ◼ プロンプトで必要な項目だけ指定して取り出す ◼ 確実に項目を取り出したいのでJSONフォーマットを経由 ◼ 以下はゲームのキャラクターの設定のWebページです。こちらを読んで各項目を埋めて出力してください。 情報が存在しないときは空白にしてください。出力は以下のJSON形式にして
{ "character" : { “名前” : ”………", “身長” : “……", “性格" : "…………………", “好き" : "……", “嫌い" : "……", 17 /81
最終的なプロンプト 以下のゲームシナリオがキャラクターの設定と矛盾していないかチェックしてください。 キャラクター設定は複数含まれることがあります。 ======== (キャラAの設定) (キャラBの設定) … ======== キャラA:お腹すいた~! キャラB:家で作る?
キャラA:無理! 最大10キャラ分の設定 キャラ設定は短いほうがよい 18 /81
Difyによるプロトタイプ Difyのワークフローで構築 シナリオIDを指定 ◼ シナリオ執筆ツールからシナリオ取得(API呼び出し) ◼ 登場キャラクターを取得→キャラ設定を読込む→矛盾点を見つける ◼ 19 /81
作成したツールの出力例 シナリオID=1003 シナリオライター 設定と合っているところ・違うところを指摘 キャラAのセリフ - 「ふーん、その程度?」: 強気で自信家な性格に合っています。 - 「さあ、ひれ伏しなさい!」:
口が悪い性格に合っています。 矛盾点 - キャラAの「向上心を欠いた態度」: - キャラAは「自分が最も優れた人間になること」を目標としています。 したがって「向上心を欠いた態度」という表現は彼女の性格と矛盾しています。 彼女は常に自分を高めるために努力しているはずです。 20 /81
プロトタイピングへのフィードバック チェックの精度は高い シナリオとキャラ設定に矛盾がないか?の判定は 精度が高かった 導入には注意が必要 指摘が厳しいので、AIの言うとおりに直すと 成立しないことがある ライター側で結果を解釈してうまく扱う必要あり 21 /81
課題を解決した方法 課題 シナリオがキャラ設定と矛盾していないか? 解決した方法 シナリオとキャラ設定を プロンプトに含める キャラ設定をシンプルなテキストへ変換 プロンプトに含める情報を最低限にする →回答がよくなる ◼
22 /81
プロトタイピングから先が難しい! シナリオ執筆ツールから呼べるのが必須 シナリオ執筆ツールは他のプロジェクトも利用 ◼ プロジェクトによってキャラクター設定の持ち方がバラバラ ◼ 別のツールで同様のチェックが行えないか検討中 23 /81
セリフ作成支援ツール 24 /81
解決したい課題 一部のキャラクターのセリフ作成が難しい 特徴的な口調でしゃべる、独自の語彙 ◼ サブキャラクターとして登場→他のライターも執筆する ◼ 執筆に時間がかかる ◼ 25 /81
例:激しい厨二病のキャラクター セリフの例 独自の単語リスト 天空の涙が、聖域を侵食しているわ 意味:雨が降ってきて、服がぬれちゃった 単語 意味 天空の涙 雨 聖域
自分の服 忘却の彼方 自宅 深淵 目的地 …… …… 26 /81
シナリオライターが困っている点 「独自の単語」の選択をサポートして欲しい 喋り方・語尾の再現はシナリオライター側で可能 ◼ 該当キャラは独自の単語リストを持つ ◼ 独自の単語リスト 単語 近い意味の単語を探すのが難しい 単語数が多い
◼ 検索は完全一致のみ ◼ 時間がかかる ◼ 意味 天空の涙 雨 聖域 自分の服 忘却の彼方 自宅 深淵 目的地 Confluenceのページ 1000単語 27 /81
ツールの目標 作成したいセリフの内容 シナリオライター 動物園でパンダが元気に 笹を食べる姿が公開されました 単語の候補(文節単位) 動物園: 禁足地 百獣の監獄 異界の檻
…… 28 /81
ツールの設計 過去のセリフ・単語リスト→プロンプトに含める ◼ キャラクターがどのように単語を使うかAIが理解する セリフ作成時に使える単語をリストから探す 入力されたセリフ作成に使える 単語の候補を文節ごとに出力 29 /81
プロンプトの構成 指示・出力形式 作成したいセリフ 過去のセリフ(100行) 単語リスト(1000単語) 30 /81
作成したツールの出力例 シナリオライター 動物園でパンダが元気に 笹を食べる姿が公開されました 単語の候補(文節単位) 動物園: 禁足地 百獣の監獄 異界の檻 ……
単語リスト 単語 意味 禁足地 遊園地 百獣の監獄 動物園 参照 異界の檻 場所 白黒の珍獣 パンダ …… …… 31 /81
Difyのワークフロー 32 /81
本番運用とフィードバック Difyアプリとしてプロトタイピング→運用 良かった点 ◼ 比較的こちらの意図を読み取った単語出しが多かった ◼ 単語単位でしゃべるキャラで特に支援ツールが役立った 改善点 ◼ 単語が実際に存在しているのか?ソースを確認したい
◼ セリフをコピペするのが大変。シナリオ執筆ツールから 読んでほしい 対応済み 対応可能 33 /81
課題を解決した方法 課題 一部のキャラクターのセリフ作成が難しい 解決した方法 過去シナリオの一部、単語リストをデータとして利用 AIに適切な単語の候補を 選ばせることができた 34 /81
方言監修ツール 35 /81
解決したい課題 方言のネイティブによる「方言監修」が頻繁に AIでサポートできるのでは? 36 /81
事前調査 GPT-4oを使った方言生成について調査 ◼ 関西弁などのメジャーな方言→ ◼ 特定の県の方言→ ゲームシナリオ向けに改善 37 /81
ゲームシナリオ向けの方言監修 キャラクター性を考慮したい 一般的な方言と、若い女性の話し方には差がある ◼ 地元アピールのために、あえて強めの方言を使うケースも ◼ 同じ関西弁でも…… わっ、めっちゃびっくりしたぁ! ……ほんまにびっくりした。 元気なキャラ
上品なキャラ 38 /81
ツールの目標 シナリオライター 対象:キャラA(関西弁・活発なキャラ) セリフ:動物園でパンダが元気に笹を食べる 姿が公開されました 活発なキャラが使いそうな関西弁 「元気に」 (キャラA)は「めっちゃ」「ホンマ」 「バリバリ」など強意的な副詞を多用する 傾向が強いです。
…… 39 /81
ツールの設計 キャラクターごとに違う方言監修を行いたい 方言自体はAIが理解している ◼ キャラクターの方言の情報をプロンプトに入れれば実現できそう ◼ 利用できるデータは? 過去の方言監修のやりとりを使う? ◼ Slackの会話なので使いにくい
◼ いいデータが他にあった! ◼ 40 /81
利用できるデータを探す リリース済みのシナリオを使う すべて「方言監修済み」 ◼ 正解データとして利用できる ◼ キャラクター設定も追加 理由をユーザーへ説明できる ◼ 「元気で活発なキャラクターなので、関西弁で以下の表現をします」
◼ 41 /81
プロンプトの構成 指示・出力形式 作成したいセリフ 過去のセリフ(200行) 他の部分が短いので 多めに追加 キャラ設定 42 /81
作成したツールの出力例 入力 動物園でパンダが元気に笹を食べる姿が公開されました 同じ関西弁でも…… 「パンダが元気に」に関しての監修結果 (キャラ名)は「めっちゃ」「ホンマ」「バリバ リ」など強意的な副詞を多用する傾向が強いです。 「元気に」は、(キャラ名)のセリフ例を見る限り 「元気に」のままでも使いますが、より関西弁味を 増すには「めっちゃ元気に」とか、「まぁ元気いっ
ぱいに」など「めっちゃ」「まぁ」など感情を込め た副詞を用います。 元気なキャラ 上品なキャラ 「元気に」→「めっちゃ元気に」「ほんま元気に」 など 43 /81
Difyのワークフロー キャラ名を選択 Pythonノードで方言の例を取得 (最後のパートで説明) 44 /81
本番運用とフィードバック Difyアプリとしてプロトタイピング→運用 良かった点 関西弁監修は迷ったときに使える内容の回答がでてきてたのでよかった ◼ 単に「関西弁ならこう」だけでなく、キャラの個性も加味した上での 提案なのでよかった ◼ 改善点 敬語で変換した場合でも、砕けた言葉で出力されることがあった
敬語or砕けた言葉モードのように切り替えができると楽かも ◼ そのままで過去に使用例がある語は「そのままでも大丈夫」と ツールが教えてくれると助かる ◼ 45 /81
課題を解決した方法 課題 「方言監修」をAIでサポートしたい 解決した方法 過去のセリフ、キャラ設定→プロンプトへ キャラクター性を考慮した方言監修 46 /81
誤字検出ツール 47 /81
解決したい課題 課題 既存の誤字検出機能が古くなった BERTベースなので、かなり古い(CEDEC2022で発表) ◼ 新しいAIで作り直した ◼ 新しいAIで作り直す&検出対象を整理 一般的な誤字 ◼
ら抜き・い抜き・さ入れ言葉 ◼ 補助動詞の漢字表記 ◼ 常用漢字表にない読み方の検出 ◼ 48 /81
ツールの目標 誤字検出を実行!(ボタンを押す) シナリオライター ちょうど準備してるところ: 「い抜き」言葉を検出しました 哀しみを感じた: 「哀しみ」は常用外読みです 49 /81
ツールの設計 検出を個別に実行 単独で実行したほうが精度が高い ◼ 開発時のテストが容易 ◼ 検出用のプロンプトを使う 一般的な誤字 ◼ ら抜き・い抜き・さ入れ言葉
◼ 補助動詞の漢字表記 ◼ 複数回のAI呼び出しで検出 ◼ 常用漢字表にない読み方の検出 50 /81
一般的な誤字検出 最新のAIなら一般的な誤字検出の精度は高い ◼ キャラクター性を考慮してほしいので「過去のセリフ」を含める 誤字を見つけて 「過去のセリフ」を使うよ 51 /81
ら抜き・い抜き・さ入れ言葉の検出 ら抜き 明日パーティに来(ら)れる? い抜き レポートを書いて(い)るんだ さ入れ 子供に本を読ま(さ)せる 52 /81
ら抜き・い抜き・さ入れ言葉の検出 # 実行タスク 以下の文章を読み、下記の思考ステップに従って「ら抜き言葉」 「い抜き言葉」「さ入れ言葉」を検出・修正し、指定された形式で出力してくだ さい。 # 思考ステップ 1. **文法スキャン:**
文章全体を読み、動詞の可能形(~れる)、進行形(~ てる)、 使役形(~させる)の部分をリストアップします。 2. **規則チェック:** * 可能形について、本来「~られる」となるべき動詞が 「~れる」になっていないか(**ら抜き**)を判定します。 …… 53 /81
補助動詞が漢字の場合の検出 補助動詞とは? 本来の同時が持つ具体的な意味が薄れ、他の動詞の下にくっついて 特定のニュアンスや意味を添える役割に変わったもの ◼ ひらがなで表記するのが一般的 ◼ 例文 ◼ 美味しそうだから食べてみる
(下線部が漢字なら検出したい) 難しいケース(文脈によって変わる) ◼ 様子をみて走って来る(移動がメイン) ◼ 様子を見て走ってくる(視覚がメイン) 54 /81
常用漢字表にない読み方の検出 目的:常用漢字表にない読み方を検出 ◼ 常用読み:哀(あわ)れむ ◼ 常用外読み:哀(かな)しい 今回の検出対象 漢字にふりがなを付ける→常用漢字表にあるか? 難しい部分:漢字に振り仮名を正しく付ける ◼
以前はPythonのMeCabモジュール → AIに変更 55 /81
難しい漢字の読み方 最新モデルは正しく振り仮名を付けられるのか? テストのために例文を用意してもらう ◼ 漢字はやさしいが、読み方が難しい 例文 彼の忠実な僕として頭を垂れておけば…… 56 /81
最新AIの漢字テスト モデル 結果 正解 彼(かれ)の忠実(ちゅうじつ)な僕(しもべ)として頭(こうべ)を垂(た)れておけば GPT-4.1 彼(かれ)の忠実(ちゅうじつ)な僕(しもべ)として頭(あたま)を垂(た)れておけば Claude Sonnet 4
彼(かれ)の忠実(ちゅうじつ)な僕(しもべ)として頭(あたま)を垂(た)れておけば Gemini 2.5 Flash 彼(かれ)の忠実(ちゅうじつ)な僕(しもべ)として頭(あたま)を垂(た)れておけば 難しい読み方はほとんど出ないのでは? 読み方が難しい部分を特にチェックしたい 校正担当 57 /81
モデルの知識を引き出して選択 入力 彼の忠実な僕として頭を垂れておけば 読み方をすべて列挙 AI実行 1回目 彼(かれ/か/あれ)の忠実(ちゅうじつ/まめ/ただし/まこと)な 僕(ぼく/しもべ/やつがれ/ぼくめ/しもがら/ぼくし/ぼくう)として 頭(あたま/かしら/こうべ/ず/とう)を垂(た)れておけば 適切な読み方を選択
AI実行 2回目 彼(かれ)の忠実(ちゅうじつ)な僕(しもべ)として 頭(こうべ)を垂(た)れておけば 58 /81
問題を分割→どこがわからないか? 知識? 活用? 漢字の読み方を知っている? 文章を正しく解釈できる? 分解するとモデルの性能を評価しやすい 59 /81
Difyによるプロトタイプ Difyで作成したもの 一般的な誤字 ◼ ら抜き・い抜き・さ入れ言葉 ◼ 補助動詞の漢字表記 ◼ フィードバックをもらって、すぐに反映 Difyで作成できなかったもの
◼ 常用外読みの漢字表記 ◼ 外部ファイルの読み込み ◼ Pythonのモジュールが使えない 60 /81
本番運用 シナリオ執筆ツールから呼び出す 誤字検出機能をAWS上に構築 ◼ 誤字検出を実行→(数分待ち)→結果確認 ◼ 結果確認 誤字検出の実行 数分かかる 61
/81
シナリオ執筆ツールから実行した結果 62 /81
本番でのフィードバック 最新のAIなら誤字検出できるでしょ? ◼ 対応しないといけない部分はまだまだ残っている 入力文章 AIの指摘 校正担当のFB 哀しい、五月蠅いという想いを抱 えているのは理解った気がした。 「理解った」は誤字。
「分かった」または 検出箇所としては悪くないのですが、誤字ではなく 「理解した」が正しい ライターさんの装飾的表現の可能性があります。 表現。 僕としては、彼の忠実な僕として 頭を垂れておけば、急かされるこ となく温い生活を護ることができ たと思っている。 惜しい、「温い」は「ぬるい」ですネ。 また、意地悪な解釈ですが「僕」の1つめも「しも べ」で成立するパターンもあるかと思いました。 複数の可能性を考慮して指摘をまとめ上げるのは、 やはり人間の仕事かもしれません。 「温(ぬく)い」が 常用外読み 63 /81
課題を解決した方法 課題 誤字検出を新しく作り直したい 解決した方法 機能ごとにプロトタイピング ◼ 個別に改善できる 難しいタスクは分割する ◼ 「難しい読み方」は2段階で処理
64 /81
Difyでツール開発する上で 直面した制約と回避方法 65 /81
テキストを参照したいケース 66 /81
解決したい課題 Difyのワークフローから文章を参照したい キャラクター名を指定して、キャラ設定(テキスト)を取得したい ◼ よくあるケースだが、実はDifyでは難しい ◼ 選択されたキャラクターの 過去セリフを取得したい 67 /81
テキスト参照したい→ナレッジ機能 Difyのナレッジ機能とは? ◼ 文章を登録→あとから検索 ナレッジ機能 文章 先に登録 登録済み文章 検索 実行時に検索
ワード 68 /81
ナレッジ機能の欠点 APIの不具合が放置されていた ◼ キーワード検索のAPIに不具合あり 他の欠点 ◼ ◼ 構築したナレッジ→他のDify環境へ移動 アプリの配布が大変 69
/81
他の方法は? 選択肢はあるもののメンテナンス性が悪い Difyとは別にデータベースを導入→Difyからアクセス ◼ 将来のメンテナンスを考えると大変 ◼ Dify以外のサービスは使いたくない アプリ配布時に手間が増える ◼ 他のソフトウェアのセットマップまで頼むのは負担が大きい
◼ Difyで完結してほしい ◼ 1ファイルのインストールだけで完了 70 /81
Pythonのコードに埋め込む 小規模・更新頻度が低いなら最善 関数にキーワードを渡して、文章を返すPythonのコード ◼ Difyのアプリのファイル(DSL)に入る ◼ Pythonのコード chara_info = [
“キャラA”:”キャラAの設定”, “キャラB”:”キャラBの設定”, …] def main(chara_name): return chara_info[chara_name] 71 /81
課題を解決した方法 課題 Difyのワークフローから文章を参照したい 解決した方法 Pythonのコードにテキストを埋め込む ◼ いろいろな方法を検討した結果、ベタな方法に Difyで完結 他のソフトウェアが必要ない ◼
アプリの配布が簡単 ◼ 72 /81
Difyアプリにアクセス制限をかけたい 73 /81
解決したい課題 Difyのアプリにアクセス制限をかけたい アプリを他セクションの人にも使って欲しいため ◼ しかし指定したメンバーに限定したい ◼ アクセス制限について調査 ◼ 現状ではURLがわかると誰でもアクセスできてしまう 74
/81
Difyアプリにアクセス制限を付けるには? さまざまな選択肢 クラウド版を使う:社内専用のAPIを公開したくない ◼ AWSでホストする:管理が大変 ◼ インフラ側でアクセス制限をかける Dify本体は変更なし 75 /81
アプリケーションプロキシを使う Microsoft Entra IDの機能の一つ 社内のURLに別のURLを割りあてる機能 ◼ アクセス制限が可能 ◼ DifyApp.hoge.co.jp ユーザーが
アクセスするURL (外部URL) アプリケーション プロキシ pc1234.hoge.co.jp アクセス制限 社内PCのURL (内部URL) 76 /81
必要な設定 アプリケーションプロキシに2つのURLを設定 Difyの設定ファイルを修正 ◼ Dify自体のURLを「外部URL」へ変更 利用ユーザーは既存の仕組みで管理 ◼ 管理の仕組みを作らなくてよい 77 /81
課題を解決した方法 課題 Difyのアプリにアクセス制限を付けたい 解決した方法 インフラ側でアクセス制限を導入 アプリケーションプロキシを利用 ◼ Dify自体は変更なし ◼ 簡単にアクセス制限を追加
作業は1日 ◼ 実際には検証で数ヶ月(IT管理の方が) ◼ 78 /81
まとめ 79 /81
まとめ よい出力を得るためのプロンプトの書き方 プロンプトには必要な情報だけ入れる ◼ 短いプロンプト→実行時間、コスト、出力結果の品質が改善 ◼ プロンプトに含めるデータの準備 AIにやってもらうことを分析し、最適なデータを集める ◼ よいデータを準備できれば、よい結果が得られる
◼ Difyを使ったプロトタイピング 開発→テストを簡単に行える ◼ ワークフローでテキストを参照する方法 ◼ インフラ側でアクセス制限を付ける方法 ◼ 80 /81
81 /81