Slide 1

Slide 1 text

プライベートなChatGPTを LINEから使えるようなシステムを サクッと構築してみた ! 拓真 ソフトバンク株式会社 テクノロジーユニット 共通プラットフォーム開発本部 2023/07/28 SoftBank Tech Night #12

Slide 2

Slide 2 text

! 拓真 Takuma TSUJI 経歴 • 2010年〜 電機メーカー • LSI、カメラ、IoT、クラウド、アプリケーション • 2020年〜 ソフトバンク • クラウド、アプリケーション、DevOps、OpenAI プライベート • ⿅児島県薩摩郡さつま町出⾝ • よくディズニーに出没する • ⼆児の⽗ 資格 • 第三種電気主任技術者 • 第⼆種電気⼯事⼠ • クラウド関連多数

Slide 3

Slide 3 text

今⽇、お話すること

Slide 4

Slide 4 text

LINEやChatGPTとアプリケーションを連携する⽅法 AI基盤やアプリケーション基盤の構築のお話 企業でChatGPTを使う上で直⾯する課題と解決策

Slide 5

Slide 5 text

まずは おさらい

Slide 6

Slide 6 text

LINEとChatGPT LINE • ⾔わずとしれたコミュニケーション基盤 • 国内MAUは9,500万⼈以上 ※2023年3⽉末時点 • 既に⽣活インフラとして定着 ChatGPT (GPT-3.5/GPT-4) • OpenAI社が開発した⼤規模⾔語モデル(LLM) • ⾃然⾔語を⽤いて⽣⾝の⼈間と会話するかのように対話が可能 • 2022年11⽉に公開 • たった2ヶ⽉でアクティブユーザーが1億⼈を突破

Slide 7

Slide 7 text

ChatGPTのAPIが公開されて起きたこと 2023年3⽉2⽇ • OpenAI社によるChatGPTのAPIが公開 • 即⽇で「AIチャットくん」がリリースされる(爆速 AIチャットくん • LINEで⼿軽に最先端のAIとチャットができるサービス • 株式会社piconが開発 • リリース後、1ヶ⽉で100万登録を達成 LINEとChatGPTは親和性が⾼い

Slide 8

Slide 8 text

⼀般的な企業に 真似できる?

Slide 9

Slide 9 text

企業が直⾯する課題 情報セキュリティ • 企業データの流出リスク • データの物理的な保管場所 • LLMの学習に使われてしまう可能性 • インターネット上の通信を盗聴される リスク インフラ構築スキル アプリ開発スキル • そもそも対応できる⼈がいない • 体制構築に時間がかかる • 組織的な課題や壁がある

Slide 10

Slide 10 text

じゃあどうするか?

Slide 11

Slide 11 text

プライベートな ChatGPT環境をつくる

Slide 12

Slide 12 text

引⽤: Cogbot Meetup Online #39 - Azure OpenAI GA キャッチアップ (2023/03/02)

Slide 13

Slide 13 text

設計・構築・維持メンテ って⼤変そう…

Slide 14

Slide 14 text

CM そんなときは、 Azure OpenAI Service スターターパッケージ さらに導⼊検討から本番導⼊まで網羅したソリューションもご⽤意

Slide 15

Slide 15 text

AI基盤の次は アプリケーション

Slide 16

Slide 16 text

新たな疑問 アプリケーションはどうやって作ればいい? アプリケーションはどうやって動かせばいい? LINEと連携するにはどうすればいい? ChatGPTと連携するにはどうすればいい?

Slide 17

Slide 17 text

LINE Messaging API メッセージ送受信 • ユーザが送信したメッセージに⾃動応答するBotを簡単に作成可能 • システム側はWebhookで待ち受け アカウント連携 • 企業の既存ユーザとLINEユーザのアカウントをセキュアに連携 コンテンツ取得 • ユーザが送信した画像・⾳声などを取得 • マルチモーダル対応のBotシステムも開発可能 SDK • 公式: Java / PHP / Go / Perl / Ruby / Python / Node.js • コミュニティSDKやライブラリも多数 LINE連携

Slide 18

Slide 18 text

APIの種類 OpenAI API Azure OpenAI Service REST API Endpoint https://api.openai.com/v1 https://{resource-name}.openai.azure.com/openai List models GET /models ー Create chat completion POST /chat/completions POST /deployments/{deployment-id}/chat/completions Create completion POST /completions POST /deployments/{deployment-id}/completions Create image POST /images/generations POST /images/generations:submit GET /operations/images/{operation-id} Create image edit POST /images/edits ー Create image variation POST /images/variations ー Create embeddings POST /embedding POST /deployments/{deployment-id}/embeddings Create transcription POST /audio/transcriptions ー Create translation POST /audio/translations ー ChatGPT連携

Slide 19

Slide 19 text

API仕様の違い ‒ 全般 • (当然だが)エンドポイントが異なる • モデルは⾃らデプロイして使うのでモデル⼀覧のAPIは無い • パスパラメータにモデルのデプロイ名を含む (DALL·Eを除く) • 例: /deployments/{deployment-id}/chat/completions?api-version=2023-06-01-preview • クエリパラメータにAPIバージョンを含める • 例: /images/generations:submit?api-version=2023-06-01-preview ChatGPT連携

Slide 20

Slide 20 text

API仕様の違い ‒ DALL·E OpenAI API Azure OpenAI Service REST API POST /images/generations { data[].url: “{url}” } APP API DALL·E POST /images/generations:submit { id: “{operation-id}”, status: “notRunning” } GET /operations/images/{operation-id} status: “running” GET /operations/images/{operation-id} status: “running” GET /operations/images/{operation-id} { status: “succeeded”, result.data[].url: “{url}” } APP API DALL·E ChatGPT連携

Slide 21

Slide 21 text

どうやって作るか? • 現時点で公式SDKの提供があるのは以下の⾔語 • その他の⾔語でも、コミュニティーによるライブラリ提供あり ⾔語 OpenAI提供ライブラリ Azure提供ライブラリ Python openai-python Node.js (JavaScript/TypeScript) openai-node @azure/openai .NET Azure.AI.OpenAI Java azure-ai-openai Go azopenai お好みの⾔語とSDKを使って開発効率化 アプリ開発⾔語

Slide 22

Slide 22 text

アプリ実⾏基盤 どこで動かすか? オンプレミス • 物理サーバー • 仮想マシン • Kubernetesクラスタ クラウド • 仮想マシン • FaaS: Function as a Service • AWS Lambda / Azure Functions / Google Cloud Functions • PaaS: Platform as a Service • AWS Elastic Beanstalk / Azure App Service / Google App Engine • マネージドKubernetes • Amazon Elastic Kubernetes Service / Azure Kubernetes Service / Google Kubernetes Engine

Slide 23

Slide 23 text

設計・構築・維持メンテ って⼤変そう… (2回⽬) アプリ実⾏基盤

Slide 24

Slide 24 text

そんなときは、CNAPをご検討ください Cloud Native Application Platform git CNAP くわしくは CM ② production/staging bot-service Azure Database for PostgreSQL Load Balancer DNS Zone Monitor Key Vault AKS Japan Region Messaging API LINEサーバー Azure OpenAI US Region Private Link Private Endpoint

Slide 25

Slide 25 text

ということで、 プライベートなChatGPTを LINEから使えるようなシステムを サクッと構築してみた

Slide 26

Slide 26 text

構成ファイル Messaging API production/staging bot-service Azure Database for PostgreSQL Load Balancer DNS Zone Monitor Key Vault git Microsoft Azure AKS 開発者 エンドユーザー yaml LINEサーバー CNAP Azure OpenAI US Region Japan Region 従業員 お客さま 拠点 Express Route Express Route Gateway ご参考: Azure OpenAI 社内利⽤の接続例 LINE連携 Private Link Private Endpoint

Slide 27

Slide 27 text

LINE連携 さまざまな業種のサポート窓⼝としての活⽤を想定したサンプルをいくつか作ってみた 航空会社 通信事業者 保険販売代理店

Slide 28

Slide 28 text

CosmosDB Express Route Gateway Monitor Microsoft Azure Azure OpenAI Private Endpoint US Region Japan Region 従業員 お客さま 拠点 Private Link App Service Express Route Private DNS Azure AD NSG Private Endpoint 攻撃者 業務利⽤

Slide 29

Slide 29 text

業務利⽤

Slide 30

Slide 30 text

アプリケーションの開発 • LINE連携アプリケーション • ChatGPTやDALL·Eなどの⽣成AIを活⽤したアプリケーション アプリケーション基盤の設計・構築・運⽤ AI基盤の設計・構築・運⽤ CI/CD基盤・DevOps基盤 じつは全てソフトバンクで内製してます

Slide 31

Slide 31 text

OSS貢献も • Nuxt.jsで書かれたチャットUI • おもな貢献内容 • Azure OpenAI Service対応 • GPT-4対応 • DALL·E対応 • レスポンシブデザイン対応 • 多⾔語対応(⽇/英/中) • テーマ切り替え対応 https://github.com/lianginx/chatgpt-nuxt

Slide 32

Slide 32 text

まとめ

Slide 33

Slide 33 text

企業でChatGPTを使う上で直⾯する課題と解決策 • 課題 ・・・・ 情報セキュリティ • 解決策 ・・・ Azure OpenAI Service AI基盤やアプリケーション基盤の構築のお話 • Azure OpenAI Service スターターパッケージ • クラウドネイティブ・アプリケーションプラットフォーム(CNAP) LINEやChatGPTとアプリケーションを連携する⽅法 • API • SDK お困りの点は、ぜひソフトバンクにご相談ください!!

Slide 34

Slide 34 text

CM ③ 透明氷製氷機 ice drops Amazon.co.jp ヨドバシ.comにて発売中

Slide 35

Slide 35 text

SoftBank Tech Night #12 以上です! ご清聴 ありがとうございました