シェルティのイラスト

Profile

綾 / Ryo

画像処理・機械学習の勉強と、
教育向けシステムの個人開発。

研究室では画像処理や機械学習を勉強しています。
個人ではLangChainを用いた教材作成、GASによる自動化、Ubuntu Serverの環境構築・運用などに取り組んでいます。

Explore works
木々と川が広がる、季節の移ろう風景
The garden, through the seasons 季節のうつろい

Selected works

教育向けのツール、自動化、AIエージェント。

Google Apps Script

planner

GASを使った単語テストの自動GoogleForm生成、家庭教師や教員の方向けの宿題や学習計画表の作成アシストを行う

GitHubで見る
  • Google Apps Script (V8)
  • JavaScript
  • Google Sheets
  • Google Forms
  • Google Drive
  • PropertiesService
  • UrlFetchApp
設計と構成
  • GAS V8でSpreadsheetAppのメニュー、編集イベント、シート操作を制御。
  • Google SheetsをUI兼データストアにし、設定値はPropertiesServiceにJSONで保存。
  • Google Forms / Drive / UrlFetchAppを連携し、フォーム生成とPDF出力をGAS内で完結。
工夫したこと
  • 機能落ちがないよう注意した上で、動作が軽くなるよう、.getValues()などの処理の削減、PropertiesServiceの活用、非表示部分の処理の省略など様々なことを行なった。
  • pdf出力をスプレッドシート内のみで行い、スマホ版、ブラウザ版どちらのスプレッドシートでも動作するようにした。
  • 利便性向上のため、履歴をjson形式して保存し、必要な際に復元出来るようにした。

Web application

学習計画表作成webアプリ

家庭教師や教員の方向けの生徒へ出す宿題や学習計画表を簡単に作成できるツール

  • Python 3.12
  • Python(FastAPI)
  • HTML/CSS/JavaScript
  • Playwright
  • Docker
設計と構成
  • PythonでJSONから印刷用HTMLを生成し、FastAPI経由でWeb UIからJSON編集とHTML/PDF出力を実行。
  • 入力データと設定をJSONで管理し、複数プランや教材別形式を同じモデルで処理。
  • PDF生成はPlaywrightのChromiumを使い、Docker内にChromiumとOS依存ライブラリをまとめた。
工夫したこと
  • A4横向きで印刷する前提で列幅を自動調整し、教材名やページ番号が長い場合も文字サイズを計算して収まるようにした。
  • 英単語テスト用のデータベース連携、共通メモへの自動挿入、ページ形式のカスタマイズなど、手作業になりやすい部分を自動化した。
  • PCでは表形式で編集しやすく、スマホでは表示教科を切り替えられるようにして、利用環境に合わせた画面構成にした。

AI agent

英語長文問題作成エージェント

LangGraphを使用し、トピックの決定、本文の作成、本文から問題候補となる文の検討、問題の作成、解説の作成を自動で行いhtmlで出力するAIエージェント

GitHubで見る
  • Python 3.14
  • LangGraph
  • LangChain
  • HTML/CSS/JavaScript
設計と構成
  • LangGraphで本文生成、問題計画、問題生成、語彙生成をノード単位に分割。
  • LangChain / langchain-openaiでLLM呼び出しを抽象化し、モデルやAPI設定をCLIから切り替え。
  • Jinja2でHTMLを生成し、採点やハイライト処理は分割したJavaScriptで実装。
工夫したこと
  • 使用するAIモデルによって品質が左右されないよう、細かな役割分担及び、プログラム上で実装出来る部分はプログラム上で実装するようにした。
  • より良い問題文を作成するために、複数候補のtopicと問題文を作成し、LLMによる評価とプログラム上の評価(主にMMR)を合わせ、高スコアの問題文を採用するようにした。
  • 問題作成においても、各段落で複数の問題作成候補を挙げ、その後に問題を作成するようにした。
  • 解説の品質が一定となるよう、LLMにて問題ごとに変化する部分のみjsonで作成し、プログラム上でテンプレートに当てはめ出力する形式にした。
  • 本文を読みながら、問題や語注を確認できるよう左側に本文、右側に語注と問題を配置するようにした。

Discord application

discord bot

SSHログイン検知のDiscord通知、OpenRouter/LangChainを使ったチャット応答、Google Calendar連携による予定管理を行うDiscordボット

  • Python 3.12
  • LangChain
  • OpenRouter API
  • Google Calendar API
  • google-auth
設計と構成
  • discord.pyのcommands.Botを中心に、ステータス確認、チャット応答、予定管理、SSH通知をCogや補助モジュールに分けて実装。
  • chatbot.pyではOpenRouter/LangChainで予定操作の自然文をJSON化し、Google Calendar APIで予定の登録、削除、一覧取得、通知を行う。
工夫したこと
  • 最小の権限の原則になるよう、Discord Bot 本体は通常権限の専用ユーザーで常駐させ、ログ閲覧機能のみ adm 権限を持つ専用ユーザー/プロセスに分離した。

Interests

学習と開発を通して、少しずつ取り組む分野を広げています。

  • AIエージェント
  • 画像処理
  • 機械学習
  • 教育向けシステム
  • 業務効率化システム
  • サイバーセキュリティ

Tools & skills

  • Python(PyTorch)
  • Python(LangChain)
  • Python(LangGraph)
  • Linux(UbuntuServer)
  • Docker
  • JavaScript(少し)
  • Google Apps Script(GAS)
  • C(少し)
  • Java(少し)
  • Git/GitHub

Reading room

作成した英語長文の教材を公開しています。本文と語注を確認しながら、問題に取り組めます。

教材一覧を見る