This is a mobile application built with Flutter, integrating OpenAI's API. The app was developed during my internship at BRYCEN company, featuring two main functionalities: a chatbot and a document summarization tool.
This repository contains a Flutter mobile app that utilizes the OpenAI API to power a chatbot functionality. The app interface is designed with multiple screens, including the Home Page, OpenAI key input, Chatbot Screen, and Summarize Screens.
Please note that the displayed below are part of the app's interface and showcase the various functionalities available in the Flutter_GPT app.
Feel free to explore the code and use it as a reference for your own projects or download the APK to experience and don't forget to star this 😁
- Chatbot: Utilizing the LLM GPT-3.5 model with swift responsiveness and naturalness for conversational interactions.
- Summarize Tool: Addressing all questions related to your documents, aiding in swift retrieval and information extraction from various sources.
- Enable Memory feature and Multi-Conversation for both functionality.
- Support for
.pdf
,.txt
,.docx
and audio file such as.mp3
,.wav
,.mpga
,.mpeg
.
Flutter_Demo.mp4
You can download the APK file from the releases section of this repository or build the app from source using the instructions below:
- Clone this repository to your computer
git clone https://github.com/ThanhHung2112/Flutter_GPT/
- Move to the Folder
cd Flutter_GPT/flutter_gpt
- Install denpendencie
flutter pub get
- If you are new to FlutterFire and you want to use this reponsitory with your own firebase 👉 flow the Setup flutterfire
flutter run
It may take a while for the first time you build this app.
If you set the API key within the code like this, you can continue to use it even if the key has expired.
OpenAI.instance.build(
token: "<<your-api-keys>>",
baseOption: HttpSetup(
receiveTimeout: const Duration(seconds: 100),
connectTimeout: const Duration(seconds: 100),
),
)
This trick is quite handy while building code, as it allows you to save time and resources and it still works until 31.07.23.
Flow the link https://firebase.google.com/docs/flutter/setup?platform=ios
firebase_setup.mp4
Choose test mode in Storage and paste this code at rules partten
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
npm i -g firebase-tools
firebase login
dart pub global activate flutterfire_cli
flutterfire configure
You might encounter the error command not found: flutterfire
. In this case, you need to add the path that has been indicated when running the flutterfire_cli
mismatch activation to your computer's environment. You can flow Fix command not found to solve this issue
After this command a file call firebase_option.dart
will be create in your folder
flutter pub add firebase_core
Run this again to make sure everything installed in your computer
flutterfire configure
- In your terminal and run this code to open Advanced system settings
SystemPropertiesAdvanced
- Click Environment Variables. In the section System Variables find the PATH environment variable and select it. Click Edit. If the PATH environment variable does not exist, click New.
- In the Edit System Variable (or New System Variable) window, specify the value of the PATH environment variable ( The path might look like this "C:\Users\YourUsername\AppData\Local\Pub\Cache\bin"). Click OK. Close all remaining windows by clicking OK.
- You might have to restart your computer to active path
This app was built using the following open-source libraries and tools:
Date | Task | Notes |
---|---|---|
12.07.23 | Project setup | |
13➖14.07.23 | Chatbot UI | Theme, chatbot interface. |
17➖19.07.23 | Send & Respond | Send & respond message functionality. |
21➖23.07.23 | AIHandler | Integrated chat_gpt_sdk for AI capabilities |
24.07.23 | HomePage UI | Implemented isKeyValid check and set up Navigator. |
25➖26.07.23 | Firebase Connection | Set up Firebase_CIL and implemented file upload to Firebase. |
28.07.23 | Sidebar SM chatbot | Test the summarize feature & chatbot memory function, Sidebar UI, update the getApiKey method. |
29.07.23 | Upload file from Sidebar | Upload file/PDF from Sidebar. |
30.07.23 | Summarize model | SummarizeModel and Summrizechat send & respond message functionality, also update the sidebar UI. |
31.07.23 | View PDF, AI Summarize | Get and display PDF file, Create method Summarize chat. |
01.08.23 | Update readfile feature & uploadfile Notify | Update file reading feature to support docx and txt formats and add file upload notification for better user experience. Streamline the code for improved efficiency. |
02.08.23 | Text to speech & Chat Memory | Allow users to listen to bot responses. Add chat memory feature. |
08.08.23 | Audio file & chunking document | Upload audio file to firebase, Chunking down the documents for processing and code optimization. |
10.08.23 | Chunking document | Optimal summarize document and fix minor bugs |