2026年10月21日の日記 📖

七海
七海

今日のメモ

# 今日やったこと
(10/20~10/21にやったこと)

- RSpec・FactoryBotを導入し、TOPページのrequest specを作成
- SimpleCovを導入し、RSpec実行時にコードカバレッジを確認できるようにした
- Rails生成時から導入されていたRuboCopの設定・役割を確認し、READMEへ実行方法を追記
- OpenAI APIを利用するAI対話機能について、候補モデル・料金・キャッシュ・利用体験を比較検討
- GPT-6.1 Solを採用候補として決定
- OpenAI API Platformへの初回入金、APIキーの作成・設定、公式SDKの導入
- AIに求める対話方針と、検証用プロンプトを整理

# 今日理解できたこと
RSpecでは、実際にコードを動かして「期待する振る舞いになっているか」を確認できる。

TOPページでは単に成功系であればよいのではなく、期待するHTTPステータスが200であることを明確に確認したかったため、have_http_status(:ok)を使用した。
書き方 ➡️ 成功する条件
have_http_status(:ok) ➡️ 200だけ
have_http_status(200) ➡️ 200だけ
have_http_status(:success) ➡️ 200〜299のすべて
:successでは200〜299まで許容するため、テストしたい内容によって使い分ける必要がある。

SimpleCovはテスト時に「どのRubyコードが実行されたか」を可視化するためのもので、カバレッジが高いことと、テストの品質が高いことは同じではない。
100%を目標にするのではなく、テストされていない重要な処理を見つけるために使う。

RuboCopはRSpecとは役割が異なり、コードを実行するのではなく、静的に解析して書式や問題になりそうな書き方を確認する。
(今回はRails生成時からrubocop-rails-omakaseが導入済みだったため、新しいツールや独自ルールを増やさず既存設定を利用)

### AI機能について理解・整理できたこと

卒業制作に組み込むAIには、単に正しい答えを出すことよりも、
- 利用者の発言や文脈を丁寧に受け取る
- 感情や価値観を勝手に断定しない
- 本人が訂正した場合は理解を更新する
- 共感だけで終わらず、本人自身が考えられる問いを返す
- 解決策や結論を急いで押しつけない
という振る舞いが重要だと整理できた。

Claude Sonnetも候補として調査したけど、複数のAPIへ初期費用を払い比較すること自体はMVPの必須条件ではないので、実際に自分自身が自己理解や感情の整理に利用してきたGPTを採用する方針にした。

ChatGPTとの対話によって、言葉にできなかった感情を整理し、自分が何を大切にしていたのかに気づけた経験が、このアプリの原体験でもある。

そのため、まずGPT-6.1 Solを採用候補としてAPI上で検証し、「内省や言語化に慣れていない人でも、自分自身の気づきにたどり着ける体験」を再現できるかを確認する。

また、API料金だけでなく、ユーザーがAIの返信を読んで5分・10分と考える可能性を踏まえ、キャッシュ保持時間や会話履歴の扱いも利用体験に関係するので比較検討した。
キャッシュが切れても会話履歴そのものが失われるわけではなく、アプリ側で履歴を保持して再送すれば文脈は維持できる。
料金を抑えるためにユーザーへ素早い返信を求めるのではなく、考える時間そのものを自己理解のプロセスとして大切にしたい。


# まだ理解できていないこと
- GPT-6.1 Solを実際のAPIで利用した場合の対話品質・応答時間・実際のトークン使用量
- 推論トークンやキャッシュを含めた、1回の振り返りにかかる実費
- 1送信あたりの文字数、AIの出力量、1日の利用上限などの最適な値
- 検証用プロンプトで、狙ったものがどこまで安定して再現できるか

# 次にやること
- GPT-6.1 SolとのAPI通信を実際に試す
- 曖昧な感情、解釈への訂正、自己否定、相反する感情など複数ケースで対話品質を検証する
- 入出力トークン数、推論、キャッシュ、応答時間、費用を記録する
- 検証結果をもとにプロンプトを調整する
- 文字数・対話回数・日次利用上限など、MVPでの利用制限方針を決定する

# 感想など
テスト周りは、それぞれのツールの役割を改めて少しずつ整理できた。
RSpec、SimpleCov、RuboCopはすべて「品質を確認するもの」ではあるけれど、確認しているものはそれぞれ違う。実際に導入・確認したことで、理解は深まった。

そして今日は、卒業制作の中でも特に大切なAI対話についてかなり深く考えた。
あっという間に時間が溶けていって、でも進捗は思うように進んでいなくて、焦ってしまう…。

最初は「どのモデルが一番賢いか」を選ぶ問題にも見えたけれど、考えていくうちに、賢さそのものではなく「利用者が自分で考え、自分の言葉で気づける余白を残せるか」が重要と改めて分かった。

自分自身がChatGPTとの対話で得た体験が開発の原点なので、それをそのままコピーするのではなく、内省に慣れていない人でも使いやすい形へ落とし込んでいきたい。

今日の気分・状態

🙂 今日の気分
⛅ 今日のモチベーション
🌱 目標の進捗

リアクション

visibility 公開
public 公開日記 bar_chart 統計 作成 calendar_month 日記 アカウント