You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 18, 2024. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+19-18Lines changed: 19 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -2,29 +2,24 @@ Hello and welcome to the Flutter AI Toolkit!
2
2
3
3
The AI Toolkit is a set of AI chat-related widgets to make it easy to add an AI chat window to your Flutter app. The AI Toolkit is organized around an abstract LLM provider API to make it easy to swap out the LLM provider that you'd like your chat provider to use. Out of the box, it comes with support for two LLM provider integrations: Google Gemini AI and Firebase Vertex AI.
4
4
5
-
## Current Alpha Features
6
-
The AI Toolkit is currently under active development and at the alpha stage, with the following features currently available:
7
-
5
+
## Features
8
6
- multi-turn chat (remembering context along the way)
9
7
- streaming responses
10
-
- multi-line chat text input (via Alt/Opt+Enter on web/desktop)
8
+
- multi-line chat text input
11
9
- cancel in-progress request
12
-
- edit the last prompt (starting with long-press as the UI gesture)
10
+
- edit the last prompt
13
11
- rich text response display
14
12
- chat microphone speech-to-tech prompt input
15
-
- copy any response (starting with long-press as the UI gesture)
16
-
- multi-media attachments ([the web currently doesn't like file attachments](https://github.com/csells/flutter_ai_toolkit/issues/18), so they're disabled)
17
-
- handling structured LLM responses
13
+
- copy any response
14
+
- multi-media attachments
15
+
- handling structured LLM responses to show app-specific Flutter widgets
18
16
- app-provided prompt suggestions
19
-
- pre-processing prompts to add prompt engineering, etc.
20
-
- pre-processing requests to enrich the output, e.g. host Flutter widgets
21
-
- updated UX based on Google design guidelines
17
+
- pre-processing prompts to add logging, prompt engineering, etc.
22
18
- custom styling support
23
-
- dev-configured chatbot label + icon
24
19
- support for Cupertino as well as Material
25
20
- chat session serialization/deserialization
26
21
- swappable support for LLM providers; oob support for Gemini and Vertex
27
-
- support for all Flutter platforms, focusing initially on mobile and web
22
+
- support for all Flutter platforms
28
23
29
24
Here's an example of [a sample app](https://github.com/csells/flutter_ai_toolkit/blob/main/example/lib/demo/demo.dart) hosting the AI Tookit running on the web:
30
25
@@ -119,14 +114,20 @@ class ChatPage extends StatelessWidget {
119
114
);
120
115
}
121
116
```
122
-
If you like, use your Firebase project with the <ahref="https://github.com/csells/flutter_ai_toolkit/blob/main/example/lib/vertex/vertex.dart">vertex.dart</a> sample. This sample has also been tested on Android, iOS, the web and macOS.
117
+
If you like, use your Firebase project with the <ahref="https://github.com/csells/flutter_ai_toolkit/blob/main/example/lib/vertex/vertex.dart">vertex.dart</a> sample. This sample is supported on Android, iOS, the web and macOS.
123
118
124
119
Note: There's no API key; Firebase manages all of that for you in the Firebase project. However, in the same way that someone can reverse engineer the Gemini API key out of your Flutter code, they can do that with your Firebase project ID and related settings. To guard against that, check out [Firebase AppCheck](https://firebase.google.com/learn/pathways/firebase-app-check), which is beyond the scope of the sample code in this project.
125
120
126
-
## More Features Coming Soon!
127
-
As I mentioned, the AI Toolkit is just in the alpha phase of it's lifetime and it's under active development. Coming soon, you should expect the following features:
128
-
- stand-alone chatbot app sample with multi-session support
129
-
- thoroughly tested multi-platform support, including Windows and Linux
121
+
## Device Access Permissions
122
+
To enable the microphone feature, configure your app according to [the record package's permission setup instructions](https://pub.dev/packages/record#setup-permissions-and-others).
123
+
124
+
To enable the user to select a file on their device to upload to the LLM, configure your app according to [the file_selector plugin's usage instructions](https://pub.dev/packages/file_selector#usage).
125
+
126
+
To enable the user to select an image file on their device, configure your app according to [the image_picker plugin's installation instructions](https://pub.dev/packages/image_picker#installation).
127
+
128
+
To enable the user to take a picture on their device, configurate your app according to [the image_picker plugin's installation instructions](https://pub.dev/packages/image_picker#installation).
129
+
130
+
To enable the user to take a picture on the web, configure your app according to [the camera plugin's setup instructions](https://pub.dev/packages/camera#setup).
130
131
131
132
## Feedback!
132
133
Along the way, as you use this package, please [log issues and feature requests](https://github.com/csells/flutter_ai_toolkit/issues) as well as any [code you'd like to contribute](https://github.com/csells/flutter_ai_toolkit/pulls). I want your feedback and your contributions to ensure that the AI Toolkit is just as robust and useful as it can be for your real apps.
0 commit comments