はじめまして、日本工学院八王子専門学校ITスペシャリスト科の長島翔梧です。今回はサイオステクノロジー株式会社さんの夏のインターンシップに行ってきて、学んだことや起きたことなどを記事にしようと思います。
主にやったことは、
- AzureのOpenAI APIを呼び出してみよう
- RAGを構築してみよう
- 上二つをもとにオリジナルアプリを作ってみよう
- その他(実業務体験や懇談会etc…)
です。これらについて取り上げようと思います。
1.AzureのOpenAI APIを呼び出してみよう
AzureのOpenAI APIをNode.jsから呼び出すWebアプリを試作してみました。Azureは去年AWSの授業で「なんか時間余ったし、ちょっと触ってみるかー」みたいなノリでしかやってなかったので、正直ちゃんとできるか不安ではありました。
Expressでサーバーを立ち上げ、Node.jsからAzureリソースを呼び出すという仕組みです。以下の記事を参考にして作成しました
・Azureリソースの作成 Chapter 04とChapter 06
URL
・Azure OpenAIライブラリの利用
URL
試作するOpenAIの呼び出しWebアプリは以下の画像のような感じです。
同じくインターン生の高山君に少しアドバイスをもらいながら何とか完成。どのようにAzureリソースを呼び出すかはここで理解しました。
最後に、完成したアプリをAzure App Serviceにデプロイさせました。デプロイの仕方は以下のサイトを参考にしてます。
・VSCodeでAzure Web Appの作成とデプロイをする
URL
このとき、.gitignoreファイルや.envファイルの使い方について学んだのが印象的です。こういったことは、授業では習わなかったので、とても大事なことを知れたと思います。
2.RAGを組み込んでみよう
次はRAGを組み込んでアプリを拡張していきます。
そもそもRAGとは?
Retrieval-Augmented Generation (RAG) は、大規模言語モデル(LLM)によるテキスト生成に、外部情報の検索を組み合わせることで、回答精度を向上させる技術のことです。
このRAGを使って今度は以下の画像のようなシステムを試作しました。
ユーザーがWebアプリに質問を入力
↓
Azure Functionsが受け取る
↓
Azure AI Searchで質問に近しい回答部分を算出
↓
Azure AI Searchに送った質問と算出された近しい回答部分をAzure Functionsが受け取る
↓
次にAzure OpenAI APIで回答を生成
↓
結果をWebアプリに送信する
といった流れになっています。
以下の記事を参考にしました。
・RAGハンズオンセミナー資料 – README.mdのAzrueリソースの作成
URL
・Azure Functions ローカル開発
URL
・Azure Functions のデプロイ
URL
・関数アプリの作成
URL
なんかうまくデプロイできていなかったり、Azureリソースの設定やソースコードを間違えたりでなんやかんや苦戦しましたが、こちらも何とか完成させることができました。
が、「じゃぁこれからオリジナルアプリを作っていくぞー!」ってところで、大問題が発生しました…
3.上二つをもとにオリジナルアプリを作ってみよう
RAGとAzureリソースの呼び出しの仕方を学んだところでいよいよオリジナルアプリを作る段階になりました。作るアプリは「ITインターンウィザード」。IT系インターンシップをチャットボット形式で検索できるWebアプリケーションです。これをいざ二人で作ろうと思った矢先、とんでもないことが起きました。
なんと私、コロナにかかりました…
家族がコロナになってしまい、そのまま流れるように感染しました。(インターン期間中にコロナになるとか勘弁して欲しい……弟許すまじ)
9/3(火)の朝からあまり体調が良くなく、「熱はないし、喉痛いだけだからまぁ大丈夫っしょ」とか思って調子乗っていたら、午後になるにつれて体中が熱くなり段々フラフラするようになって、ついには38度オーバーの熱をたたき出していました。これは流石に午後のインターンはキツイなと思い、午後からお休み…。ただ、なぜか翌日は37.4度と意外にも熱は低く、「今日病院で検査して薬もらえば明日から復帰できそう!」とちょっと一人で舞い上がっていました。がしかし、そんな都合のいい話ではありませんでした。
翌日、38.9度。。。
「オワタ」。。。。
普通にしんどかったです。まさかここまで綺麗に熱がぶり返すとは思いませんでした。しかも38、39度オーバーの熱は土曜日まで続き、結局この週は月曜日と火曜の午前しか参加することが出来ず、インターンのほぼ1/3を寝たきりで過ごす羽目になりました。
そして、ようやく熱が下がり、後遺症だけが残ったまま最終週を迎え、インターンに復帰したころには、なんとバックエンド側が殆ど出来上がっていたではありませんか(; ;)
仕方がないとはいえ、せっかくのインターンが……と、かなりショックを受けました。
僕がやったことは、残っていたUIの作成でした。CSSでデザインしたくらいです。ちょうど学校の個人制作課題でたくさんCSSを触っていた時期でしたので、かなり楽勝でした。めっちゃ簡単でした。少しだけ、スクリプトを書いたぐらいでなにも苦戦することはありませんでした。
コロナで欠席続きで迷惑もかけちゃって…本当に申し訳なくてしょうがなかったです…。
救いだったのは、サイオスの皆様と一緒にインターンをしていた高山君がとても優しくしてくれたことです。感謝しかありません。
ってなわけで、オリジナルアプリをほとんど作ったのは高山君なので、オリジナルアプリについて知りたい方は高山君の記事を見ることを推奨します。おそらく書いてくれるんじゃないかなって勝手に思ってます。
4.その他(実業務体験や懇談会etc…)
アプリ制作以外にもたくさんのことを学ばせてもらい、体験させてもらいました。
主にやったこととしては
- チームミーティングの参加
- 月次報告会の参加
- SL合同朝会の参加
- 若手社員さんとの懇談会
- MVP武井さん講座
- 実業務体験
です。
が、実業務体験は、コロナになってしまってできなかったので割愛させていただきます。なにしたのかさっぱりわかりません。
SL合同朝会は、メンバーの皆さんと集まり、テーマに沿った軽い雑談などをしコミュニケーションをとりました。リモートワークならではの取り組みでしたね。
チームミーティングや月次報告会では、メンバーそれぞれが担当している仕事の進捗具合を共有されてました。いつもサイオスの社員さんはどのように情報共有しているのかを見ることができました。
次に懇談会ですね。こちらは新卒1、2年目の社員さんとの懇談会でした。主に就活について教えていただきました。僕自身もこの夏休みが終わったら就職活動を始めようと思っていたのですが、何から始めるべきか、どう始めたらいいのか、など就活を始めるうえで自分の中で若干敷居が高いような気がして始めるのに少し不安を抱いていましたが、お話を聞いたことによりそれが少し緩和されてやりやすくなりました。
MVPの武井さんのお話もかなり興味深かったです。アウトプットのすゝめがテーマの講座でした。
自分が作ってみたこと、やってみたことをどんなやり方で、どんな感じでやってみて、どうだったか、どう失敗したかを記事などに書いてみることが大事だと教わりました。そうすることで、新たな視点の意見や、知らなかった技術や知識を得る機会が格段に増えると。
ちょうど今自分も学校の個人制作で作ったデスクトップアプリがあるので、苦戦したこと、今後の改善点などを記事にしてみようと思いました。
5.終わり
以上がこのインターンに行ってやったこと、学んだことでございました。コロナになって貴重な体験を逃したりいろいろ迷惑かけたりしちゃいましたが、なかなかあまり無い経験をさせてもらったと思っています。サイオステクノロジー株式会社の皆さん、3週間どうもお世話になりましたm(_ _ )m