Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

SoftBank Tech Night

July 28, 2023
Tweet

More Decks by SoftBank Tech Night

Other Decks in Technology

Transcript

  1. ! 拓真 Takuma TSUJI 経歴 • 2010年〜 電機メーカー • LSI、カメラ、IoT、クラウド、アプリケーション

    • 2020年〜 ソフトバンク • クラウド、アプリケーション、DevOps、OpenAI プライベート • ⿅児島県薩摩郡さつま町出⾝ • よくディズニーに出没する • ⼆児の⽗ 資格 • 第三種電気主任技術者 • 第⼆種電気⼯事⼠ • クラウド関連多数
  2. LINEとChatGPT LINE • ⾔わずとしれたコミュニケーション基盤 • 国内MAUは9,500万⼈以上 ※2023年3⽉末時点 • 既に⽣活インフラとして定着 ChatGPT

    (GPT-3.5/GPT-4) • OpenAI社が開発した⼤規模⾔語モデル(LLM) • ⾃然⾔語を⽤いて⽣⾝の⼈間と会話するかのように対話が可能 • 2022年11⽉に公開 • たった2ヶ⽉でアクティブユーザーが1億⼈を突破
  3. 企業が直⾯する課題 情報セキュリティ • 企業データの流出リスク • データの物理的な保管場所 • LLMの学習に使われてしまう可能性 • インターネット上の通信を盗聴される

    リスク インフラ構築スキル アプリ開発スキル • そもそも対応できる⼈がいない • 体制構築に時間がかかる • 組織的な課題や壁がある
  4. LINE Messaging API メッセージ送受信 • ユーザが送信したメッセージに⾃動応答するBotを簡単に作成可能 • システム側はWebhookで待ち受け アカウント連携 •

    企業の既存ユーザとLINEユーザのアカウントをセキュアに連携 コンテンツ取得 • ユーザが送信した画像・⾳声などを取得 • マルチモーダル対応のBotシステムも開発可能 SDK • 公式: Java / PHP / Go / Perl / Ruby / Python / Node.js • コミュニティSDKやライブラリも多数 LINE連携
  5. 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連携
  6. 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連携
  7. 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連携
  8. どうやって作るか? • 現時点で公式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を使って開発効率化 アプリ開発⾔語
  9. アプリ実⾏基盤 どこで動かすか? オンプレミス • 物理サーバー • 仮想マシン • 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
  10. そんなときは、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
  11. 構成ファイル 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
  12. 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 攻撃者 業務利⽤
  13. OSS貢献も • Nuxt.jsで書かれたチャットUI • おもな貢献内容 • Azure OpenAI Service対応 •

    GPT-4対応 • DALL·E対応 • レスポンシブデザイン対応 • 多⾔語対応(⽇/英/中) • テーマ切り替え対応 https://github.com/lianginx/chatgpt-nuxt
  14. 企業でChatGPTを使う上で直⾯する課題と解決策 • 課題 ・・・・ 情報セキュリティ • 解決策 ・・・ Azure OpenAI

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