chatgpt-android - 📱 ChatGPT Android は、Stream Chat SDK for Compose を搭載した OpenAI の ChatGPT on Android を実演します。

(📱 ChatGPT Android demonstrates OpenAI's ChatGPT on Android with Stream Chat SDK for Compose.)

Created at: 2022-12-09 19:34:39
Language: Kotlin
License: Apache-2.0

チャットGPTアンドロイド

ライセンス 原薬 ビルドステータス プロフィール

ドローイング ドローイング ドローイング

ChatGPT Android は、Stream Chat SDK for Compose を搭載した OpenAI の ChatGPT on Android を実演します。

このリポジトリの目的は、以下を示すことです。

  • ChatGPT の非公式 API を示します。
  • Jetpack Compose を使用した UI 要素全体の実装。
  • Hilt や AppStartup などの Jetpack ライブラリを使用した Android アーキテクチャコンポーネントの実装。
  • Kotlin コルーチンを使用したバックグラウンドタスクの実行。
  • チャット システムとストリーム チャット SDK を統合して、リアルタイムのイベント処理を実現します。

🛥チャット SDK のストリーミング

ChatGPT Android は、メッセージング システムを実装するために Stream Chat SDK for Compose で構築されています。 アプリに強力なアプリ内メッセージを追加することに興味がある場合は、Androidチャットメッセージングチュートリアルをご覧ください。

🛠Tech Sacks & Open Source Libraries

  • SDK レベル 21 以上です。
  • 100%Jetpack作成ベース+コルーチン+非同期のフロー
  • メッセージング用チャット作成 SDK: Jetpack チャット作成メッセージング SDK は、低レベルのチャット クライアント上に構築されており、アプリに簡単にドロップできるモジュール式のカスタマイズ可能な Compose UI コンポーネントを提供します。
  • ジェットパック
    • 作成:ネイティブUIを構築するためのAndroidの最新ツールキット。
    • ビューモデル: UI 関連のデータ ホルダーとライフサイクル対応。
    • アプリの起動: アプリケーションの起動時にコンポーネントを初期化するための簡単でパフォーマンスの高い方法を提供します。
    • ナビゲーション:画面をナビゲートするためのものと、依存関係を挿入するためのヒルトナビゲーション作成用。
    • 部屋:SQLite上に抽象化レイヤーを提供してデータベースを構築し、流暢なデータベースアクセスを可能にします。
    • :依存性注入。
  • ランドスキャピストグライドアニメーションプレースホルダー:Jetpack グライド、コイル、フレスコでネットワーク画像を取得して表示する画像読み込みライブラリを作成します。
  • Retrofit2 & OkHttp3: REST API とページングネットワークデータを構築します。
  • サンドイッチ: Android のネットワーク ペイロードを処理するための軽量で最新の応答インターフェイスを構築します。
  • Moshi: KotlinとJavaのための最新のJSONライブラリ。
  • ksp: Kotlin Symbol Processing API.
  • StreamLog: KotlinとAndroid用の軽量で拡張可能なロガーライブラリ。
  • ベースライン プロファイル: Android ランタイムで使用できるクラスとメソッドの仕様のリストを APK に含めることで、アプリのパフォーマンスを向上させます。

⚙️プロジェクトをビルドする方法は?

  1. ChatGPTにアクセスし、ウェブサイトにログインまたはサインインします。
  2. Chrome でデベロッパー ツールを開きます。
  3. 「Hi」など、何かをもう一度入力します。
  4. 会話をクリックすると、以下のようにヘッダーがタップされます。

ティッカー

  1. 次に、認証フィールドが表示され、「ベアラー」文字列なしでコピーされます。
  2. トップメニューの[アプリケーション]タブに移動し、以下のようにcf_clearance Cookieの値をコピーします。

ティッカー

  1. ファイルに移動し、以下のようなプロパティを追加します。
    local.properties

ティッカー

GPT_SESSION=..
CF_CLEARANCE=...
  1. プロジェクトをビルドします。

🏛️建築

ChatGPT Android は、Google の公式アーキテクチャ ガイダンスに従っています。

建築

ChatGPT Androidはアプリアーキテクチャのガイドで構築されているため、実際のプロジェクトでアーキテクチャがどのように機能するかを示すのに最適なサンプルになります。

全体的なアーキテクチャは 2 つの層で構成されています。UI レイヤーとデータ レイヤー。各レイヤーには専用のコンポーネントがあり、それぞれに異なる責任があります。 矢印は、コンポーネントがその方向に従ってターゲットコンポーネントに依存していることを意味します。

アーキテクチャの概要

層

各レイヤーには、以下の異なる責任があります。基本的に、それらは単方向のイベント/データフローに従います。

UI レイヤー

層

UI レイヤーは、ユーザーと対話できるボタン、メニュー、タブなどの UI 要素と、アプリの状態を保持し、構成が変更されたときにデータを復元するビューモデルで構成されます。

データレイヤー

層

データレイヤーは、ローカルデータベースからのデータのクエリやネットワークからのリモートデータの要求などのビジネスロジックを含むリポジトリで構成されます。これは、ビジネス ロジックのオフライン ファースト ソースとして実装され、信頼できる唯一のソースの原則に従います。

全体的なアーキテクチャの詳細については、「Jetpack Compose を使用してリアルタイムの WhatsApp クローンを構築する」を参照してください。

モジュール

モジュール

ChatGPT Android は、以下のモジュール化戦略を採用しました。

  • 再利用性:再利用可能なコードを適切にモジュレートすると、コード共有の機会が可能になり、同時に他のモジュールでのコードアクセシビリティが制限されます。

  • 並列構築:各モジュールは並行して実行でき、ビルド時間を短縮できます。

  • 分散型フォーカス: 各開発者チームは専用のモジュールを割り当て、独自のモジュールに集中できます。

💯マッドスコア

概要

🤝寄付

チャット機能以外のほとんどの機能は完成していないため、貢献ガイドラインに従って誰でもこのプロジェクトに貢献および改善できます。

このリポジトリは役に立ちましたか?💙

このリポジトリのスターゲイザーに参加してサポートしてください。
また、GitHubのメンテナをフォローして、次の作品を入手してください。🤩

ライセンス

Designed and developed by 2022 skydoves (Jaewoong Eum)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.