アプリ設計,生成AI

地図コンポーネントを使ったアプリのアイデアとして、レストラン検索アプリを作ろうと考えました。
本来なら食べログやぐるなびからレストラン情報を取得する方法が考えられますが、これらのサービスは有料だったり、無料でもアプリから情報を取得するためのAPIキーを一般公開できないなどの制約があります。
そこで、スプレッドシートコンポーネントを使用し、Google Sheets APIを経由してレストランの情報を取得し、地図上で検索できるようにすることにしました。

作り方はChatGPTとGeminiに相談してみました。

  1. MIT App Inventor 2 App Maker
  2. ChatGPT-o1
  3. Gemini 1.5 Pro
  4. Gemini 2.0 Experimental Advanced

ラフなアイデアから始めたところ、こんな結果です。

  • 1はスプレッドシートコンポーネントを無視したので却下。でもマーカークリック時に通知機能でレストラン情報を表示するのは良いアイデア。
  • 2もスプレッドシートコンポーネントを無視したので却下。
  • 3はスプレッドシートコンポーネントを使用しているが他の部分のデザインがおかしい。
  • 4はスプレッドシートコンポーネントを使用しているし、全体的によくできていて、コンポーネントの使い方で知らないものを教えてくれるのでありがたい。

4で作ってみます。

アプリのアイデア

地図コンポーネントを使って現在地の周辺にあるレストランを検索し、クリックしたときに以下の情報を表示するApp Inventorアプリを作りたい。APIは使わずにレストラン情報はGoogleスプレッドシートを使いたい。どうするといいか?

名前 料理 営業時間 定休日 住所 電話番号

MIT App Inventor 2 App Maker

地図コンポーネントを使って現在地の周辺にあるレストランを検索し、クリックしたときに以下の情報を表示するApp Inventorアプリを作りたい。APIは使わずにレストラン情報はGoogleスプレッドシートを使いたい。どうするといいか?
名前 料理 営業時間 定休日 住所 電話番号

以下の手順で、MIT App Inventorを使用して「地図コンポーネント」と「Googleスプレッドシート」を利用し、現在地周辺のレストラン情報を表示するアプリを作成できます。APIを使用せず、Googleスプレッドシートでデータを取得します。

---

### 必要な機能:
1. 現在地取得:`LocationSensor`を使用。
2. レストランリスト取得:Googleスプレッドシートから情報を取得。
3. 地図表示:`Map`コンポーネントを使用。
4. レストラン情報表示:`Notifier`または`Label`コンポーネントを利用。

---

### 実装ステップ

#### 1. Googleスプレッドシートの設定
1. **Googleスプレッドシートを作成**し、以下のようなフォーマットでデータを入力:
   | Name          | Cuisine    | Hours        | ClosedDay | Address       | PhoneNumber   | Latitude | Longitude |
   |---------------|------------|--------------|-----------|---------------|---------------|----------|-----------|
   | Restaurant A  | Italian    | 10:00-22:00  | Monday    | Example Addr  | 1234567890    | 35.6895  | 139.6917  |
   | Restaurant B  | Japanese   | 11:00-23:00  | Sunday    | Example Addr  | 0987654321    | 35.6896  | 139.6920  |

2. スプレッドシートを**公開**設定にし、共有リンクを作成します。

3. スプレッドシートのデータをCSV形式で取得できるURLを生成:
   - スプレッドシートのURL例:
     ```
     https://docs.google.com/spreadsheets/d/your_spreadsheet_id/edit#gid=0
     ```
   - データ取得用URL:
     ```
     https://docs.google.com/spreadsheets/d/your_spreadsheet_id/export?format=csv
     ```

#### 2. App Inventorの準備
1. **コンポーネント追加**:
   - `LocationSensor`(現在地を取得)
   - `Map`(地図表示)
   - `Web`(スプレッドシートデータ取得)
   - `Notifier`(レストラン情報の表示)
   - 必要に応じて`Button`や`Label`を追加。

---

#### 3. ブロックの設定

##### **現在地の取得**
- `LocationSensor.LocationChanged`イベントを使用し、緯度・経度を取得。
```plaintext
When LocationSensor1.LocationChanged
  set global CurrentLatitude to LocationSensor1.Latitude
  set global CurrentLongitude to LocationSensor1.Longitude
```

##### **スプレッドシートデータの取得**
- `Web1`を使用し、スプレッドシートからデータを取得。
```plaintext
When ButtonGetRestaurants.Click
  set Web1.Url to "https://docs.google.com/spreadsheets/d/your_spreadsheet_id/export?format=csv"
  call Web1.Get
```
- データ取得完了時の処理:
```plaintext
When Web1.GotText
  set global RestaurantData to call csv table to list Web1.ResponseContent
```

##### **地図にマーカーを追加**
- `Map`コンポーネントの`AddMarker`メソッドを使用。
```plaintext
for each item in global RestaurantData
  call Map1.AddMarker
    Latitude: select list item (item, 7)
    Longitude: select list item (item, 8)
    Title: select list item (item, 1)  // レストラン名
    Description: select list item (item, 2)  // 料理
```

##### **マーカークリック時に情報表示**
- `Map1.MarkerClick`イベントを使用:
```plaintext
When Map1.MarkerClick
  call Notifier1.ShowMessageDialog
    Message: join "Name: " + marker.Title + newline
                   "Cuisine: " + marker.Description + newline
                   "Phone: " + get restaurant phone (marker.Title)
    Title: "Restaurant Info"
    ButtonText: "OK"
```

##### **電話番号や住所の取得**
- タイトルに基づいて該当するレストラン情報を取得。
```plaintext
function get restaurant phone(name)
  for each item in global RestaurantData
    if select list item (item, 1) = name
      return select list item (item, 6)  // 電話番号
```

---

### 画面デザイン
1. 地図を画面いっぱいに配置。
2. ボタンでスプレッドシートからデータを取得。
3. マーカークリックで情報を表示。

---

これにより、Googleスプレッドシートを使用して現在地周辺のレストラン情報を表示し、詳細を確認できるアプリを構築できます!

ChatGPT-o1

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

アプリ設計,生成AI

地図コンポーネントを使ったアプリのアイデアを思いついたので、ChatGPTとGeminiに相談してみました。

  1. MIT App Inventor 2 App Maker
  2. ChatGPT-o1
  3. Gemini 2.0 Experimental Advanced

ラフなアイデアから始めたところアプリの感想から設計までいずれも一応それらしく行っていますが、は余計なことをしていてあまりうまく設計できていません。UIの設計はが良い感じです。もデータ保存に関してはJSONを使っていて良いですが、の方が丁寧に説明してくれています。他を参考にしながらで作ってみます。

作ってみたところ、とりあえず3時間で動きましたね。あとは使い勝手をよくするために調整。

アプリのアイデア

写真を撮るとGPSで位置も取って地図にその写真のアイコン入れる。クリックで写真を拡大表示

MIT App Inventor 2 App Maker

こんなアプリはどう思う?:写真を撮るとGPSで位置も取って地図にその写真のアイコン入れる。クリックで写真を拡大表示

このアプリのアイデアは非常に魅力的で、以下のような構成でMIT App Inventorを使用して実現できます。写真撮影とGPS座標の取得、さらに地図にその写真をマークする機能を組み合わせたアプリは、旅行記録、不動産の調査、プロジェクト管理など、多くの用途に役立ちます。

### 必要なコンポーネント
1. **カメラ (Camera)**:
   - ユーザーが写真を撮るために使用。
   - 撮影後、写真のファイルパスを取得。

2. **ロケーションセンサー (LocationSensor)**:
   - 写真が撮影されたときのGPS位置情報(緯度・経度)を取得。

3. **マップ (Map)**:
   - 地図を表示し、写真のアイコンをその位置にマッピング。

4. **マーカー (Marker)**:
   - 撮影された写真ごとにマップに追加されるポイント。クリックすると写真が表示される。

5. **ストレージ (TinyDB)**:
   - 写真とGPSデータを保存して、アプリを閉じた後もデータを保持する。

### 実装手順
1. **UIのデザイン**:
   - ボタン:「写真を撮る」ボタン。
   - マップ:地図を表示するエリア。
   - 表示用のコンポーネント(例えば、画像表示用のラベルやポップアップ)。

2. **ブロックの構成**:
   - 「写真を撮る」ボタンのクリック時に、カメラを起動し、撮影後に写真のファイルパスを取得。
   - ロケーションセンサーでGPS座標を取得。
   - 写真ファイルのパスとGPS座標をTinyDBに保存。
   - 取得したGPS座標に基づいて、マーカーをマップに追加。マーカークリック時に、対応する写真を表示する。

3. **データ保存と表示**:
   - TinyDBを使用して、各写真のデータを保存(ファイルパス、緯度、経度)。
   - アプリ起動時に、保存済みデータを読み込み、地図にマーカーを復元。

### 注意点
- 写真ファイルのストレージパスはAndroidの権限設定に依存するため、適切な権限(カメラ、ストレージ、位置情報)を要求する必要があります。
- 高精度なGPSデータを得るために、LocationSensorの設定を調整することを推奨します。

このアプリは、実用性とカスタマイズの可能性が高いプロジェクトであり、App Inventorの基本的な機能だけで実現可能です。さらに質問や特定のステップについての詳細が必要であれば教えてください!

詳細設計してください。追加で条件が必要ならば聞いてください。

詳細設計に進む前に、以下の質問をさせていただきます。この情報を基に、より具体的な設計を提案できます:

### 確認事項
1. **写真の保存場所**:
   - 写真はデバイスのローカルストレージに保存しますか?それともクラウド(例: Firebaseなど)にアップロードしますか?

2. **地図の機能**:
   - ユーザーがズームイン/ズームアウト、ドラッグして地図を移動できるようにしますか?
   - 写真を撮影した場所の詳細情報(例: 日時、説明など)をマーカークリック時に表示しますか?

3. **複数の写真管理**:
   - 複数の写真を同じ地図上に表示できますか?
   - 古いデータの削除や編集機能が必要ですか?

4. **アプリ使用の想定環境**:
   - アプリを主に使用する場面(例: 旅行、仕事の記録)。
   - オフラインでの地図表示やデータ管理が必要ですか?

5. **見た目と操作性**:
   - カメラ起動や地図表示時に特別なアニメーションやガイドが必要ですか?
   - UIデザインの好み(シンプル、カラフルなど)。

### 仮の前提条件
上記に回答をいただくまでの間、以下のような仕様で設計します:
1. 写真はローカルストレージに保存し、GPS座標と共に地図上にマッピング。
2. ユーザーは複数の写真を撮影して地図上に追加可能。
3. マーカーをクリックすると、写真と撮影日時を表示。
4. データはローカルストレージ(TinyDB)に保存。

これを基に詳細設計を進めますが、追加情報があれば適宜反映します。どうしますか?

これでお願いします

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

アプリ設計,生成AI

App Inventor 2のスプレッドシートコンポーネントを使うとGoogle Sheets API経由でリレーショナルデータベースの真似事ができそうなので、簡単なレストランの予約管理アプリを作ることにしました。

一から手で作るのも大変なのでChatGPTとGeminiに相談してみました。

  1. MIT App Inventor 2 App Maker
  2. ChatGPT-o1
  3. Gemini 1.5 Pro

UIはどれも同じように設計してくれました。スプレッドシートの設計ではそれぞれ違いが出ていますが、今回はリレーショナルデータベースの真似事をするのが一つの目的なので、リレーショナルデータベースっぽい作り方はしてくれない2は却下。3はコンポーネントの知識が無さそうなので3を参考にしながら1で作ってみます。

設計条件

  • テーブルは5卓、各テーブルは4席
  • 予約時間は18:00-20:00と20:00-22:00
  • 年中無休
  • データはGoogleスプレッドシートに格納
  • App Inventor 2のスプレッドシートコンポーネントを使ってGoogleスプレッドシートから読み込み、書き込み
  • 予約の一覧表示
  • 予約のキャンセル、変更が可能

MIT App Inventor 2 App Maker

まずは英語のApp Inventor 2の知識を持っているMIT App Inventor 2 App Makerです。

条件を与えて設計してもらいます。

次の条件でレストラン予約管理アプリを作ろうと思っているので設計してください。追加で条件が必要ならば聞いてください。
設計条件:
テーブルは5卓、各テーブルは4席
予約時間は18:00-20:00と20:00-22:00
年中無休
データはGoogleスプレッドシートに格納
App Inventor 2のスプレッドシートコンポーネントを使ってGoogleスプレッドシートから読み込み、書き込み
予約の一覧表示
予約のキャンセル、変更が可能

レストラン予約管理アプリの設計を以下に示します。この設計では、Googleスプレッドシートをデータベースとして使用し、MIT App Inventor 2のコンポーネントを活用して、予約管理を効率的に行えるようにします。

---

### **アプリ設計**
#### 1. **必要なコンポーネント**
- **ユーザーインターフェース**
  - **ListView**: 予約の一覧を表示
  - **TextBox**: 名前、電話番号などの入力
  - **DatePicker**: 予約日を選択
  - **Spinner**: テーブル番号と時間帯(18:00-20:00、20:00-22:00)の選択
  - **Buttons**: 予約作成、キャンセル、変更用
- **データ管理**
  - **Spreadsheetコンポーネント**: Googleスプレッドシートとのデータ連携

#### 2. **Googleスプレッドシートの構成**
| **列名**      | **内容**                      |
|---------------|-------------------------------|
| `ID`          | 各予約の一意識別子            |
| `Name`        | 顧客名                        |
| `Phone`       | 電話番号                      |
| `TableNumber` | テーブル番号 (1~5)            |
| `TimeSlot`    | 時間帯(18:00-20:00/20:00-22:00) |
| `Date`        | 予約日                        |

---

### **アプリの基本機能**
#### **1. 予約作成**
- **UI操作**: 名前、電話番号、テーブル番号、予約時間帯を入力し、「予約作成」ボタンを押す。
- **ブロック設計**:
  1. 入力データを取得。
  2. `Spreadsheet.AddRow` メソッドを使用してスプレッドシートに新規行を追加。
  3. 成功した場合は確認通知を表示。

#### **2. 予約一覧の表示**
- **UI操作**: アプリ起動時または「更新」ボタン押下時に予約データを表示。
- **ブロック設計**:
  1. `Spreadsheet.Query` メソッドでスプレッドシートの全データを取得。
  2. 結果をListViewに表示。

#### **3. 予約の変更**
- **UI操作**: ListViewで変更対象を選択し、入力フォームでデータを修正後、「変更」ボタンを押す。
- **ブロック設計**:
  1. `ID`をキーにスプレッドシートを検索。
  2. `Spreadsheet.UpdateRow` メソッドを使用して該当行を更新。

#### **4. 予約のキャンセル**
- **UI操作**: ListViewでキャンセル対象を選択し、「キャンセル」ボタンを押す。
- **ブロック設計**:
  1. `ID`をキーにスプレッドシートを検索。
  2. `Spreadsheet.DeleteRow` メソッドを使用して該当行を削除。

---

### **設計上の留意点**
1. **入力バリデーション**:
   - 名前や電話番号が未入力の場合、エラーメッセージを表示。
   - テーブルと時間帯の重複予約を防ぐロジックを追加。
2. **UI設計**:
   - フォームはシンプルにし、必要な情報のみを入力。
   - メッセージや通知を活用して操作の成功/失敗をわかりやすく表示。
3. **スプレッドシートの設定**:
   - スプレッドシートを事前に作成し、App InventorのSpreadsheetコンポーネントでアクセス許可を設定。

---

### **サンプルブロック例: 新規予約作成**
以下のようなブロックを使用します。

1. **予約作成ボタン押下イベント**
   ```blocks
   when CreateReservationButton.Click do
       if NameTextBox.Text ≠ "" and PhoneTextBox.Text ≠ "" then
           call Spreadsheet1.AddRow
               Data: (create a list (NameTextBox.Text, PhoneTextBox.Text, SelectedTable, SelectedTimeSlot, SelectedDate))
           notify User "予約が作成されました!"
       else
           notify User "すべての項目を入力してください。"
   ```

質問や追加要望があればお知らせください!

予約一覧の表示で全てを表示すると多すぎると思う。当日分だけとかにはできない?

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

GPT-4を使ってApp InventorアプリのチュートリアルページからiPhoneアプリを作ることを試み、既に5種類のiPhoneアプリを作ることに成功しました。しかし、一々チュートリアルページを作るのは面倒なので、App Inventorアプリの情報をチュートリアルページを使う以外でGPT-4に渡すことができないかと検討していましたが、やっと見つかりました。ここではApp Inventor版「 ChatGPTと話そう!(その1)」 に音声入力・出力機能を付け加えて、「ChatGPTと話そう!(その2)」を作ります。ただし英語でGPT-4プロンプトを入力しないとまともな返答をしてくれませんでした。

前準備

  1. App Inventor日本語版でApp Inventor版 ChatGPTと話そう!(その1)プロジェクトを選択してプロジェクトメニューから「選択したプロジェクトをローカルコンピュータにエクスポート(.aia)」を実行し、ローカルコンピュータに.aiaファイルをダウンロードします。
  2. ローカルコンピュータでダウンロードしたファイルの.aiaを.zipに変更し、このファイルを解凍します。
  3. フォルダーの中にScreen1.bky, Screen1.scm, project.propertiesの三つのファイルがあります。これらをGPT-4に送り込みます。

GPT-4とのやり取り

プロンプト

ソースコードは長いので省略しますが実際はファイル名の後にコピペしています。

Do you understand what the App Inventor project files doing below?

project.properties:

Screen1.scm:

Screen1.bky:

返答

These are MIT App Inventor project files which define an app that interacts with the OpenAI GPT-3 model to provide a chat interface. Let’s break down what each file is doing:

  1. project.properties: This file contains metadata about the project, such as the app name, version, primary and accent colors, location usage, etc. It also defines the main screen of the application and the location of source files, assets, and build files.
  2. Screen1.scm: This file describes the components of Screen1 in the form of a JSON object. It specifies the UI components and their properties such as Text Box, Button, Labels, and Web components.
  3. Screen1.bky: This file is written in Blockly, a visual programming language developed by Google. It defines the functionality of the application. Here’s a high-level overview of what this file is doing:

    • The app takes input text from TextBox1.
    • When Button1 is clicked, if the input text is not empty, a web request is made to the OpenAI API. The headers for this request are set to include the appropriate Content-Type and Authorization (with a global API key). The body of the POST request is formed as per the OpenAI API specifications, including the input text as the message from the user to the GPT-3 model.
    • When the response from the API (Web1.GotText event) is received, it is decoded from JSON and processed. The content field is extracted from the choices array, which contains the GPT-3 model’s generated response. This response text is then displayed in Label2. The original input text is also displayed in Label3, and TextBox1 is cleared.

Please note that these are general interpretations based on the information provided. The precise behavior of the app might vary and is subject to the entire codebase and the runtime environment.

正しく理解しているようなので、音声入力・出力機能を追加してもらいます。

プロンプト

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

音声入力・出力が動いた「Ionic版 ChatGPTと話そう!(その2)」のソースコードをChatGPTに与えてApp Inventorアプリに変換してもらおうとしました。GPT-4だけで動くものを作るのはApp Inventorの知識不足で難しそうなので、GPT-4の返答を参考にしながら人間が作るのが効率が良さそうです。ここではそのように作りました。

GPT-4とのやり取り

プロンプト

ソースコードは長いので省略しますが実際はファイル名の後にコピペしています。

次のIonicプログラムと同じ機能を持つApp Inventorアプリを作る方法をステップ1からステップ3にしたがって教えてください。初心者でもわかるように詳しくお願いします。初心者でもわかるように詳しくお願いします。

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

home.page.html

home.page.ts

返答

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

OpenAIのGPT-4を使って新しいIonicアプリを作ります。Ionicというのはモバイルデバイス上で動くアプリを開発する環境でJavaScriptを使ってウェブアプリが作れます。JavaScriptフレームワークはいろいろ選べますが、今回はAngularを使いました。動作確認にはChromeを使いました。

ここで作るのは「Ionic版 ChatGPTと話そう!(その2)」としてChatGPTに音声入力したプロンプトを送って返答を画面に表示してから音声出力するアプリです。Ionicではソースを変更すると何もしなくてもブラウザ内のアプリが自動的に更新されるので変更が簡単です。

GPT-4とのやり取り

プロンプト

OpenAIのAPIとのやり取りは「Ionic版 ChatGPTと話そう!(その1)」で動いているので、音声入力・出力を追加するように頼んでみます。ソースコードは長いので省略しますが実際はファイル名の後にコピペしています。cordova、capacitorというのはモバイルデバイス特有のセンサーなどをIonicでサポートするためのものですが、cordovaは2022年4月でサポートが終わったので、capacitorをしています。実際のところこのアプリでは使いませんでしたが。

次のIonicプログラムに音声入力と音声出力の機能を追加したGUIアプリを作る方法をステップ1からステップ3にしたがって教えてください。cordovaでは無くcapacitorを使ってください。

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方とソースコード

home.page.html

home.page.ts

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

OpenAIのGPT-4を使って新しいiPhoneアプリを作ります。iPhoneアプリを作るにはMacで動くXcodeという開発環境が必要です。ここではmacOS 13.4上でXcode 14.3を使い、動作確認にはiOSシミュレータ(iOS 16.4)を使いました。

音声入力・出力が動いた「Ionic版 ChatGPTと話そう!(その2)」のソースコードをChatGPTに与えてiPhoneアプリに変換してもらいました。

GPT-4とのやり取り

プロンプト

ソースコードは長いので省略しますが実際はファイル名の後にコピペしています。

次のIonicプログラムと同じ機能を持つiOSアプリをSwiftUIで作る方法をステップ1からステップ3にしたがって教えてください。Xcode version=14.3, Swift version=5で、 iOS16以上をサポートしてください。初心者でもわかるように詳しくお願いします。

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

home.page.html

home.page.ts

返答

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

OpenAIのGPT-4を使って新しいIonicアプリを作ります。Ionicというのはモバイルデバイス上で動くアプリを開発する環境でJavaScriptを使ってウェブアプリが作れます。JavaScriptフレームワークはいろいろ選べますが、今回はAngularを使いました。動作確認にはSafariを使いました。

ここで作るのはChatGPTと話そう!(その1)としてChatGPTに入力したプロンプトを送って返答を画面に表示するアプリです。

GPT-4とのやり取り

プロンプト

次の機能を持つGUIアプリをIonicで作る方法をステップ1からステップ3にしたがって教えてください。初心者でもわかるように詳しくお願いします。

機能:
1. 入力したテキストをChatGPTに送信。モデルはgpt-3.5-turbo
2. 戻ってきた返信を画面に表示

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

返答

前提として、このアプリケーションを作るには以下のものが必要です:

  1. OpenAIのAPIキー(https://beta.openai.com/signup/ から取得可能)
  2. Node.jsのインストール
  3. Ionicのインストール(npm install -g @ionic/cli)
  4. 基本的なJavaScriptやTypeScriptの知識
  5. 基本的なHTMLとCSSの知識

ステップ1:細かい機能の説明

このアプリケーションは大きく分けて以下のような動作を行います:

  1. ユーザーからテキスト入力を受け付けるUI(ユーザインターフェース)を提供します。ここではテキストエリアと送信ボタンがあります。
  2. ユーザーが送信ボタンを押すと、そのテキストはChatGPTに送信されます。この送信にはOpenAIのAPIを使用します。
  3. ChatGPTからの返答が取得できたら、それをアプリケーションのUIに表示します。

ステップ2:作り方の概略

  1. Ionicを使って新しいアプリケーションを作成します。アプリケーションにはテキスト入力と送信ボタンがあります。
  2. TypeScriptでAPIとの通信部分を実装します。具体的には、ユーザーが送信ボタンを押したときにAPIにテキストを送信し、結果を取得する関数を作ります。
  3. 取得した結果を画面に表示します。これにはAngularのバインディング機能を使用します。

ステップ3:初めての人でもわかるような詳しい作り方

新しいIonicアプリケーションを作成します:

ionic start myChatApp blank --type=angular

ここで"myChatApp"は作成するアプリケーションの名前です。

アプリケーションのディレクトリに移動します:

cd myChatApp

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

OpenAIのGPT-4を使って新しいPythonアプリを作ります。動作確認にはJupyter Notebookを使いました。

ここで作るのはChatGPTと話そう!(その1)としてChatGPTに入力したプロンプトを送って返答を画面に表示するアプリです。1回で動きました。GPT-4はPythonが得意みたいですね。

GPT-4とのやり取り

プロンプト

次の機能を持つGUIアプリをPythonで作る方法をステップ1からステップ3にしたがって教えてください。初心者でもわかるように詳しくお願いします。

機能:
1. 入力したテキストをChatGPTに送信。モデルはgpt-3.5-turbo
2. 戻ってきた返信を画面に表示

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

返答

この説明では、Pythonの基本的な知識と、OpenAIのAPIへのアクセス方法を既に知っていることを前提とします。また、GUIライブラリとしてtkinterを使用します。OpenAIのAPIキーを取得するためにはOpenAIのウェブサイトで登録する必要があります。

ステップ1:細かい機能の説明

このGUIアプリには以下の機能が含まれます:

  1. テキスト入力フィールド:ユーザーがChatGPTに送信するメッセージを入力するための場所です。
  2. 送信ボタン:このボタンをクリックすると、入力フィールドのテキストがChatGPTに送信されます。
  3. テキスト表示エリア:ChatGPTからの応答が表示される場所です。

ステップ2:作り方の概略

  1. GUIを構築するために、Pythonの組み込みライブラリであるtkinterを使用します。
  2. テキストフィールド、送信ボタン、テキスト表示エリアを含むウィンドウを作成します。
  3. 送信ボタンがクリックされたときに実行される関数を作成します。この関数では、テキストフィールドの内容を取得し、ChatGPTに送信します。また、ChatGPTからの応答を取得し、テキスト表示エリアに表示します。

ステップ3:初めての人でもわかるような詳しい作り方

最初に必要なモジュールをインポートします。

import tkinter as tk
import openai

次に、OpenAIのAPIキーを設定します。

openai.api_key = 'your-api-key'

tkinterでウィンドウを作成します。

window = tk.Tk()
window.title("Chat with GPT-3.5-turbo")

入力フィールド、送信ボタン、テキスト表示エリアを作成します。

entry_field = tk.Entry(window, width=50)
entry_field.pack()

response_area = tk.Text(window, height=10, width=50)
response_area.pack()

send_button = tk.Button(window, text="Send", command=send_message_to_gpt)
send_button.pack()

ここで、send_message_to_gpt関数を定義します。


def send_message_to_gpt():
    message = entry_field.get()
    entry_field.delete(0, tk.END)

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": message}
        ]
    )

    response_area.insert(tk.END, "User: " + message + "\n")

この関数では、まずユーザーからのメッセージをテキストフィールドから取得します。そして、そのメッセージをChatGPTに送信します。応答が戻ってきたら、それをテキスト表示エリアに表示します。

最後に、GUIを表示するためにメインループを実行します。

window.mainloop()

以上で、指定された機能を持つ基本的なGUIアプリが作成できます。ただし、このコードはあくまで基本的なものであり、エラーハンドリングなどは含まれていません。また、APIキーはソースコード中にハードコーディングしない方が安全です。実際のアプリケーションでは、環境変数などからAPIキーを読み込むようにすることをお勧めします。

また、このコードはgpt-3.5-turboモデルの使用方法を示すものであり、モデルの詳細な設定やパラメータの調整についてはOpenAIの公式ドキュメンテーションを参照してください。

プロンプト

コードを全部表示して

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内

ChatGPT,チュートリアル

OpenAIのGPT-4を使って新しいAndroidアプリをAndroid Studio FlamingoとKotlinを使って作ります。Android StudioはWindowsでもMac, Linux, ChromeOSでも動きますので手元のパソコンが使えます。
ここで作るのはChatGPTと話そう!(その1)としてChatGPTに入力したプロンプトを送って返答を画面に表示するアプリです。いろいろ試してみましたが、GPT-4はAndroidアプリはうまく作れなかったので、もしやと思い、英語でプロンプトを入れたら動くコードをくれました。日本語のKotlinのコードはあまり入っていないようですね。

GPT-4とのやり取り

プロンプト

Please tell me how to create an android app with the following features with Android Studio and kotlin according to step 1 to step 3. Please be detailed so that even a beginner can understand.

Features:
1. send the entered text to ChatGPT. The model is gpt-3.5-turbo
2. display the returned reply on the screen

Step 1: Explanation of detailed functions
Step 2: Outline of how to make it
Step 3: Explain in detail so that even a newcomer can understand. the communication part with ChatGPT should

返答

This is a simple guide to create an Android application in Kotlin using Android Studio that can communicate with the ChatGPT-3.5-turbo API.

This guide assumes you have Android Studio installed on your machine and basic knowledge of Kotlin. If you need to install Android Studio, please refer to the official Android Studio website.

Here are the steps you need to follow to create the Android Application:

Step 1: Explanation of Detailed Functions

  1. User Input: We need to create an interface where users can input text. For this, we will use an EditText view.
  2. Send Request: When users have entered the text, we need to send it to the OpenAI server via a POST request. This can be done using a library like Retrofit or OkHttp.
  3. Receive Response: Once we have sent the request, we will receive a response from the server. This response needs to be handled and displayed to the user.
  4. Display Response: We will display the response in a TextView.

Step 2: Outline of How to Make It

  1. Create a New Project in Android Studio: Start a new Android Studio project with an Empty Activity.
  2. Layout Design: Design the layout of your application using the XML file in the 'res/layout’ directory. You should have an EditText for input and a Button to send the request, and a TextView to display the response.
  3. Networking: Add Retrofit or OkHttp to your project to handle HTTP requests.
  4. API Key: Register on the OpenAI website and get an API Key. This key will be used to authorize your requests to the OpenAI server.
  5. Request and Response: Create a function to handle the request and response. This function will take the text from the EditText, send it as a request to the OpenAI server, receive the response, and display it in the TextView.

Step 3: Detailed Explanation for Beginners

  1. Project Setup: Open Android Studio, click on “New Project", select “Empty Activity", and click “Next". Give your application a name, select “Kotlin" as the language, and finish.
  2. Layout Design: Open the 'activity_main.xml’ file from the 'res/layout’ directory. Remove any existing code and paste the following:

This will create an EditText for input, a Button for sending the request, and a TextView to display the response.

  1. Adding Dependencies: Now we need to add Retrofit and Gson dependencies to our project. Open your 'build.gradle’ (Module) file and add these lines inside dependencies:

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

Click “Sync Now" at the top right corner of the screen to download and integrate these libraries into your project.

  1. API Key: Go to the OpenAI website, create an account, and get your API Key. We will use this key to authorize our requests.
  2. Setting up Retrofit: Now, we will setup Retrofit to handle HTTP requests.
    Creating a Data Class: First, we need to create a data class that represents the request payload and the response payload. The request payload for GPT-3.5-turbo is a JSON that looks like this:

So, our data classes will look like this:

延々と説明が続きます。

プロンプト

残りのコンテンツを表示するにはログインする必要がありますどうぞ . 会員ではないですか ? 入会のご案内