はじめに
こんにちは、齋藤です。
この度、PKSHA Technology株式会社の2週間の実務体験型インターンシップに参加させていただきました。本記事では、その貴重な経験で得られた学びや気づきを共有できればと思います。
このインターンは有給インターンで、内容は「PKSHA FAQ」という既存プロダクトに対して新たな価値提案を行う、ハッカソン形式のものでした。
私たちのチームに与えられたテーマは「コミュニケーションの負の側面を解決するAIエージェントの作成」という、非常に挑戦的なものでした。
実は、今回このインターンに参加するきっかけとなったのは、以前参加したこちらのイベントです。このイベントでの経験から選考免除のフローをご案内いただき、参加を決めました。前回のイベントで感じた社員の方々の温かい雰囲気や、風通しの良い社風に惹かれ、「この会社のことをもっと知りたい」と強く思ったのが一番の動機です。
2. 開発したプロダクトについて
テーマと課題設定
私たちのチームに与えられたテーマは「コミュニケーションの負の側面を解決するAIエージェントの作成」でした。
まず私たちは、既存のFAQシステムにおけるユーザー体験を深掘りしました。その結果、
- キーワード検索だとヒットしない場合がある。類義語機能などもあるが運用が大変
- そもそも回答となるFAQが存在しない
- 問題を解決するために、複数のFAQを読み解く必要がある
といった課題が浮かび上がってきました。私たちは、これらの課題を解決するため、**「ユーザーが自然な言葉で質問するだけで、AIが最適な回答を生成してくれるエージェント」**の開発に取り組みました。
実装した機能
上記の課題を解決するため、私たちは大きく2つの機能を実装しました。
① AI検索機能
ユーザーからの質問に対し、単なるキーワード検索ではなく、OpenSearchを利用したベクトル検索(意味検索)で関連性の高いFAQを複数件取得します。そして、取得したFAQデータと元の質問文をAWS Bedrock上のClaude 3 Haikuに渡し、複数のFAQに基づいた要約回答を動的に生成します。
これにより、ユーザーは複数のページを渡り歩くことなく、1つの画面でAIによる回答と、その根拠となったFAQリストを同時に確認できます。
② 不足FAQ分析機能
さらに、システムを継続的に改善する仕組みとして、不足しているFAQを可視化する機能も実装しました。
ユーザーとの会話履歴をTitan Embedding V2でベクトル化・分析し、既存のFAQでは回答できていない質問(=不足しているFAQのジャンル)を特定します。これにより、管理者はデータに基づいて効率的にFAQを追加・改善していくことが可能になります。
3. 開発プロセス
チーム構成と役割分担
開発は3人1組のチームで行いました。役割分担は以下の通りです。
- フロントエンド担当 (2名): 私を含めた2名で、Figmaでのモック作成からVue.jsを使った画面実装までを担当しました。バックエンドとの連携のため、一部APIのエンドポイント設定なども行いました。
- バックエンド・AWS担当 (1名): チームに1人いたAWS経験豊富なメンバーが、主にバックエンドとインフラ周りを担当してくれました。
技術スタック
今回の開発で使用した主な技術は以下の通りです。PKSHA側で開発環境の雛形を用意してくださっていたため、スムーズに開発をスタートできました。
- フロントエンド: Vue.js
- バックエンド: Python, FastAPI
- クラウド: AWS (OpenSearch, Bedrock, Batch, Amazon Titan Embeddings G1 - Text v2)
- その他: Docker
4. 苦労した点と学び
2週間という短期間での開発は、技術面でも精神面でも多くの学びがありましたが、同時に自身の力不足を痛感する場面も多々ありました。
チーム開発で感じた悔しさ
最も強く感じたのは、長期インターンなどで経験を積んでいる他のメンバーとの開発スピードの差でした。AIが生成したコードを即座に理解し修正していく仲間を見て、「自分だけが遅いのではないか」と焦りを感じることもありました。
また、開発環境の構築で利用したDockerにも苦戦しました。コマンド操作やDockerfileの読解に時間がかかってしまい、悔しい思いをしました。
悔しさを越えて得られたもの
一方で、技術的なキャッチアップに苦しみながらも、プロジェクトの方向性を決める議論やアイデア出しの場面では、自分の意見がプロダクトに良い影響を与えられているという手応えも感じることができました。
そして何より、このインターンで感じた「悔しさ」は、私にとって大きな財産になりました。インターン終了後、すぐにUdemyでWeb開発に関する講座を購入し、本格的に学習を始めています。この経験をバネに、将来的には技術でチームを牽引できるテックリードになりたいという、明確な目標ができました。
5. PKSHAの文化と働く環境
最後に、2週間のインターンを通じて感じたPKSHA Technologyのカルチャーについてお話しします。
一人の社員として向き合ってくれる文化
最も印象的だったのは、インターン生を「学生」としてではなく「一人の社員」として尊重してくれる文化でした。FBタイムや成果報告会では、社員の方々から忖度のない的確なフィードバックをいただき、非常に実践的な経験を積むことができました。
手厚いサポートと交流の機会
プロフェッショナルな環境である一方、サポート体制も非常に手厚かったです。定期的に1on1の時間が設けられ、メンターの方が開発の進捗や悩みを親身に聞いてくれました。
また、ランチ会や懇親会では、普段関わることのない様々な事業部の方々とお話しする機会がありました。現場のエンジニアの方々からリアルな業務内容やキャリアについて伺う中で、私自身は特に「AI SaaS事業部」に強い興味を持つようになりました。
このように、挑戦的な環境と温かいサポートが両立している点が、PKSHAの大きな魅力だと感じました。
6. おわりに
最後まで読んでいただき、ありがとうございました。
PKSHA Technologyでの2週間のインターンシップは、技術的な挑戦はもちろん、優秀な仲間や社員の方々との出会いを通じて、エンジニアとしてのキャリアを深く考える非常に濃密な時間でした。
特に、実力差に悔しさを感じ、そこから「もっと成長したい」という強いモチベーションを得られたことが、今回の一番の収穫だったと感じています。
この記事が、これからインターンシップに参加される方や、PKSHAに興味を持っている方の参考になれば幸いです。