January 28, 2026
「社長、最近○○がアツいらしいですよ」
でも、検索や集計はちょっと面倒
→ SQLやRやSASを書かずに、チャットでお話ししながら分析したい
LLMとShinyの出番!
ellmer: RでLLMを動かすshinychat: ShinyでLLMとのチャットUIを簡単に実装Gemini: Googleアカウントがあれば無料でAPIが使える!今回は VSCode 上の GitHub Copilot を使って実装しました。
GitHub Copilot、本当に便利です。
🗣️ GitHub Copilotへの指示
ClinicalTrials.govの情報をSQLクエリで取得できるAACTというサービスがある。
これとshinychatを使って、自然言語を入力したらそれに合った情報を抽出するSQLクエリを実行して返し、必要に応じてRで処理・可視化するアプリを作って。
使用するAPIをGeminiに変更して。
→ Copilotが要件定義書を生成してくれる
🗣️ 次の指示
この要件定義に従って実装して
app.R: Shinyアプリ本体server.R: サーバーロジックui.R: UIコンポーネント実行してみると…
🗣️ 修正の指示
データベース接続でエラーが出る。環境変数から認証情報を読み込むように変更して
🗣️ユーザーの入力
日本で実施された高血圧の治験を期間別にカウントして
🤖 LLMの出力
承知いたしました。日本で開始された高血圧の臨床試験を、開始年別に集計するSQLクエリを実行します。
SELECT
EXTRACT(YEAR FROM s.start_date) AS start_year,
COUNT(s.nct_id) AS study_count
FROM studies s
JOIN conditions c ON s.nct_id = c.nct_id
JOIN countries co ON s.nct_id = co.nct_id
WHERE c.downcase_name ILIKE '%hypertension%'
AND co.name = 'Japan'
AND co.removed = false
GROUP BY start_year
ORDER BY start_year;🗣️ユーザーの入力: 開始年別の治験数の棒グラフを作成して
🤖 LLMの出力: 承知いたしました。
ggplot2 を用いて一貫した可視化を行うLLM × Shiny = 👍
大阪SAS勉強会#12