4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Flutter + NCMB + ChatGPTでAIチャットアプリを作る(その1:画面仕様とNCMBの初期化)

Last updated at Posted at 2023-05-10

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回はコミュニティSDKの一つ、Flutter/Dart SDKを使ってChatGPTを用いたチャットアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

コード

今回のコードは NCMBMania/flutter-gpt-chat にアップロードしてあります。実装時の参考にしてください。

利用技術について

今回は次のような組み合わせになっています。

  • Flutter
  • NCMB
  • OpenAI API

仕様について

今回のアプリは以下のような機能があります。

  • チャット画面
  • メッセージをNCMBに保存
  • OpenAI APIを使って返答を取得
  • 返答をNCMBに保存

ChatGPTでは過去のメッセージもAPIで送信することで、以前の内容を踏まえた回答をしてくれます。過去のメッセージをNCMBに保存しているので、復元が容易です。

利用する機能について

このチャットアプリで利用しているNCMBの機能は以下の通りです。

  • データストア
    • データ登録
    • データ検索
  • スクリプト
    • OpenAI APIの実行

画面について

現時点で、画面は以下の1つのみです。

チャット画面

チャット画面はflutter_chat_ui | Flutter Packageを使っています。

localhost_63838_.png

SDKのインストール

flutter_chat_uiとNCMBのSDKをflutterコマンドでインストールします。

flutter pub add flutter_chat_ui
flutter pub add ncmb

NCMBのAPIキーを取得

mBaaSでサーバー開発不要! | ニフクラ mobile backendにてアプリを作成し、アプリケーションキーとクライアントキーを作成します。

初期化

初期化は lib/main.dart にて行います。

import 'package:ncmb/ncmb.dart';

void main() {
  // NCMBの初期化
  NCMB('YOUR_APPLICATION_KEY',
      'YOUR_CLIENT_KEY');
  runApp(const MyApp());
}

これでNCMBの初期化が完了します。

画面の読み込み

チャット画面をChatPageとして、MyAppのbuildで読み込みます(チャット画面は次回作ります)。

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'ChatGPT App',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const ChatPage(),
      debugShowCheckedModeBanner: false,
    );
  }
}

まとめ

今回はチャットアプリの仕様と画面、NCMBの初期化までを解説しました。次回はOpenAI APIの呼び出し(スクリプト)について解説します。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?