・プロジェクト名
Slackツールに独自生成AIを実装する。
・プロジェクト概要・目的
入職した社員が研修時にぶつかった問題や疑問に思ったことを今までのデータから的確な答えを出し、自動生成できるAIを実装し、かつ外部向けパッケージとして販売することを目的とします。
・個人担当フェーズ・内容
技術選定(API Gateway、Lambda、SQS、Bedrock、Aurora Serverless、S3)
簡易全体設計書作成
環境構築
コーティング
単体・結合テスト
データ選定
システム構築設計書作成
RAG
・技術選定
今回のプロジェクトを遂行するために、低コストかつ構築が簡潔であることが前提としてありました。そのためサービスと料金体制の調査を行い、結果を資料にまとめ毎週ごとにプレゼンしました。終始一人で作業を行っていたため、思考が偏らないよう常に新しい記事や公式のニュースにアンテナを張り、収集しておりました。
・Lambda
今回のシステム上二つのLambdaにて構築しており、一つ目はチャットからのリクエストをSQSにポーリングし、非同期処理を行います。二つ目はSQSからリクエストを受け取りBedrockへの送信し、チャットへの返信まで行うものになります。
詳細については当初はBedrock Serverlessに対してのコードを記述してしまったため、既存のBedrockにアクセスできない状態が続きました。再度調査を行い、見直した際にBedrockのknowledgebase IDを変数に格納して指定すれば良いことに気づき、そのように修正したところ無事リクエストの疎通が確認できました。また、一つの質問に対して複数の返答が返ってくる現象も起こったため、予備案としてのSQSを使用して回避することができました。伴って、検証としてエラー時に返答もらえてない質問もSQSにより、エラー解消した際に返答をできるようになりました。
・ベクトル機能の構築
当初OpenSerach Serverlessにて使用予定でしたが、コストが想定したよりも数倍高く断念しました。そのため、代わりとなるサービスを模索し、Aurora Serverlessだったらコストと機能、さらにはセキュリティ面でもクリアできるため採用しました。そのため、Aurora Serverlessの各設定、クエリエディタの設定を見直しつつ行いました。そのため、クオリティを下げることなく生成AIの使用を可能にしました。さらにはOpenSearch Serverlessにないスケーリングもあり、本番環境にデプロイした場合状況に応じて最適な設定も行えるようになりました。
・システム構築後
システムが問題なく挙動するようになり、引き継ぎのための資料作成と指導を現在担当しております。またその傍らRAGを行い、データ形式とデータの密度などが回答に対してどのような影響を及ぼしており、かつ同様の質問に対しての回答の内容や精度などに関しての検証をしております。