伝えたいこと
ChatGPT以外にもLLMを使える手段を持っておくと、障害に強いよ。ということを学びましたので共有します。
ソース
まだまだ勉強中ですが、作成したソースは下記に公開しています!
背景・前提条件
最近chatGPTの障害が平日に起きることがあり、業務に少なからず影響が出ました。
要約ができない。WEB検索しづらい。翻訳してくれない。画像を貼り付けて質問できない。などなど。
ちょうどAzureにもOpenAIをデプロイして使えることを思い出して作りました。
いきなり使えなくなって困った状況を想定しています。見通しが立つときはよく設計してから構築しましょう。
段取り
-
git clone
を使ってこのソースを取得する。 -
AzureにログインしてLLMをデプロイする。
az login
az cognitiveservices account deployment create ` -g AI_agent_service ` -n home-service ` --deployment-name CLI_model ` --model-name gpt-4o ` --model-format OpenAI ` --model-version "2024-08-06" ` --sku-capacity 10 ` --sku-name "GlobalStandard" ` --debug
-
Azureでapikeyなどの機密データをkeyvaultに登録する。詳細はソースを確認すること。
az keyvault secret set ` --vault-name "chatbotkey2" ` --name "openai-api-key-chatbot" ` --value "" ` --debug
-
apt install apache2
を使ってWEBサービスを立ち上げる。 -
設定をstreamlitに合わせて書き換える。
-
streamlitをサービス化する。
-
streamlit →apache2の順で起動する。
画面はこんな感じ。結構見やすいです。突貫で作りましたが、ライブラリもきれいに使いたいです。質問は業務に関係ないトピックです。
余談
今思うと、perplexityの無料アカウントとか、ローカルにモデル持ってきて使う。という案もありました。汗
障害で仕事できないときも工夫して持続的に業務ができると良いですね。
かかったお金はこんな感じです。このお金より構築に2時間構築リードタイムがかかり、20分コーディングが素早くできたという点を評価すると・・・これを次の機会やほかの方が活かせるように共有しないと赤字ですね
参考文献
Azureのシークレットキー管理はよくわからなかったので下記を参考にしています。特にシークレットとキー、証明書の違いはサービス提供するなら知っておいて損はないなと思います。