$30 off During Our Annual Pro Sale. View Details »

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

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

SoftBank Tech Night

July 28, 2023
Tweet

More Decks by SoftBank Tech Night

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 今⽇、お話すること

    View Slide

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

    View Slide

  5. まずは
    おさらい

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. じゃあどうするか?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 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連携

    View Slide

  19. 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連携

    View Slide

  20. 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連携

    View Slide

  21. どうやって作るか?
    • 現時点で公式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を使って開発効率化
    アプリ開発⾔語

    View Slide

  22. アプリ実⾏基盤 どこで動かすか?
    オンプレミス
    • 物理サーバー
    • 仮想マシン
    • 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

    View Slide

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

    View Slide

  24. そんなときは、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

    View Slide

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

    View Slide

  26. 構成ファイル
    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

    View Slide

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

    View Slide

  28. 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
    攻撃者
    業務利⽤

    View Slide

  29. 業務利⽤

    View Slide

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

    View Slide

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

    View Slide

  32. まとめ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide