AubAI
AubAI为您的应用带来设备端生成式AI能力,包括离线文本生成等功能。
简介
Flutter开发者、AI爱好者和前瞻性开发者们,你们好!准备好用设备端生成式AI(包括先进的文本生成功能)来革新你的应用了吗?你来对地方了。
认识一下AubAI:这是一个专为赋予你的应用设备端生成式AI模型能力而设计的Flutter/Dart包。无论是生成文本、增强用户交互还是其他AI驱动的任务,AubAI都能满足你的需求。
这个包对所有主要平台来说都是改变游戏规则的。不要只相信我的话,你可以在我的YouTube教程YouTube.com/@BrutalCoding上看到AubAI的实际应用。
AubAI不仅功能强大、用途广泛,而且用户友好且开源。是时候用最新的生成式AI技术释放你的应用的全部潜力了。
特性和功能
先进的生成式AI集成
- 文本生成:利用AubAI的尖端语言模型实现流畅的文本生成,通过高级自然语言处理提升用户体验。轻松下载并尝试来自HuggingFace等源的任何GGUF模型,轻松将顶级AI功能引入你的应用。
跨平台兼容性
-
通用平台支持:AubAI专为Flutter精心设计,确保在多种平台上无缝运行。这种广泛的兼容性涵盖了各种操作系统,满足多样化的开发需求:
- macOS (ARM64, x86_64)
- Windows (x86_64)
- Linux (x86_64)
- Android (ARM64, x86_64)
- iOS (ARM64)
- iPadOS (ARM64)
用户友好设计
- 简化集成:AubAI的核心是致力于简单性,使复杂的AI功能对各种水平的开发者都易于使用。
- 开源社区:秉承协作开发精神,AubAI是一个开源包。我们鼓励并欢迎社区贡献,推动创新并营造持续进步的环境。
演示和教程
- 引人入胜的实例:在我的YouTube频道YouTube.com/@BrutalCoding上探索AubAI的实际应用并观看其运行。提供清晰的真实世界示例,展示AubAI如何用设备端生成式AI改变你的应用,学习如何轻松将AubAI集成到你的项目中。
你喜欢这个项目吗?
假设你已经查看了AubAI,并且喜欢它,有几种方式可以表示你的赞赏:
- 为这个项目加星。
- 这是表示赞赏的好方法,也有助于这个项目获得更多关注。
- 成为赞助者。
- 要成为赞助者,请访问我的GitHub赞助页面。
- 贡献。
- 如果你是开发者,你可以通过修复bug、添加功能或改进文档来为这个项目做出贡献。查看CONTRIBUTING.md文件了解更多信息。
- 传播消息。
- 告诉你的朋友、家人和同事这个项目。越多人了解这个项目,我们就越接近让AI不依赖任何第三方服务而对每个人都可用的目标。
考虑成为赞助者。虽然这个项目的理念是让AI对每个人都可用,但它确实需要花费大量时间。我的房东还不接受GitHub星星作为付款方式,至少目前还不接受。如果你有能力,请考虑成为赞助者。可以是一次性1美元,每月1美元,或任何其他金额。每一点帮助都很重要,无论是精神上还是经济上。
如果你是一个即将购买豪华游艇的富有个人,可以考虑在方向盘上少装一个镀金旋钮,用那笔钱把你的名字添加到赞助者名单中。
下载示例应用
人人可用的AI
目标是让AI对每个人都可用,对吧?这就是为什么我花了相当多时间确保示例应用可以在所有主要平台上下载。我想让每个人都能尽可能轻松地尝试。没有什么比真实世界的例子更能展示AubAI的能力了。
不需要技术知识。只需下载应用,就可以开始使用了。
从商店下载示例应用
- iOS、iPadOS、macOS
- Android:(即将推出)
- Windows:(即将推出)
- Linux:(即将推出)
如果你喜欢这个项目,请务必点击"Star"按钮。也许有一天我的房东会接受GitHub星星作为付款方式!
设置
- 在你的
pubspec.yaml
文件中添加以下内容:
dependencies:
aub_ai: ^1.0.0
-
运行
flutter pub get
安装包。 -
在你的Dart代码中导入包:
import 'package:aub_ai/aub_ai.dart';
- 与AI对话:
/// AI的输出将存储在这个变量中。
/// 可以在Text()小部件中使用,例如。
String outputByAI = '';
/// 如何使用AubAI与AI对话的示例。
Future<void> example() async {
// 确保模型文件是GGUF格式。
const String filePath = 'path/to/model.gguf';
// 开始对话的提示。
const String promptByUser = '为什么天空是蓝色的?';
// 预定义的提示模板可用。
final promptTemplate = PromptTemplate.chatML().copyWith(
prompt: promptByUser,
);
// 执行所有魔法的主要函数。
await talkAsync(
filePathToModel: filePath,
promptTemplate: promptTemplate,
onTokenGenerated: (String token) {
// 这个回调函数会为AI生成的每个标记调用。
// 标记可以看作是部分单词,如"你"和"好"。
setState(() {
outputByAI += token;
});
},
);
}
技术细节
AubAI利用了llama.cpp的力量。这是一个C++库,允许你在设备上运行AI模型。它快速、轻量且开源。这是AubAI的完美搭配。
虽然llama.cpp是一个很棒的库,但将其集成到Flutter项目中并不简单。这就是AubAI的用武之地。它是一个Flutter/Dart包,让你能轻松在Flutter项目中使用llama.cpp。
AubAI的愿景是让AI对每个人都可用,而AI不仅仅是生成文本。这就是为什么AubAI设计成模块化的。随着时间的推移,更多AI功能将被添加到AubAI中,如图像生成、语音生成等。
支持的模型文件格式
- GGUF
资源
如果你在寻找模型文件,可以在这里找到一些: HuggingFace.co。 在撰写本文时,已有超过2300个模型可供使用。其中一些可能在数学方面表现出色,另一些在编程方面很强,还有一些擅长诗歌创作,也有一些在各个方面都很出色。你需要为你的应用找到最适合的模型,或者像我在示例应用中那样让用户自己选择模型。
免责声明
AubAI、本人以及任何参与此项目的人员均不对使用本项目造成的任何损害负责。使用风险自负。
许可
开源许可
请查看LICENSE文件。除非另有明确说明,所有文件均按AGPL-3.0许可证授权。
商业许可
AubAI采用AGPL-3.0许可证。但我们理解AGPL-3.0许可证并不总是适合商业用途。因此,我们为那些希望在商业环境中使用AubAI但不想遵守AGPL-3.0许可证的用户提供商业许可。
如需咨询商业许可,请联系daniel@brutalcoding.com。
贡献
请阅读CONTRIBUTING.md文件。
YouTube
对AubAI感兴趣吗?看看我的频道,我会制作关于AubAI的视频:YouTube.com/@BrutalCoding。
包括演示、教程等更多内容。
为方便起见,我在下面列出了一些视频:
- 在任何设备上运行本地AI。看看这个Flutter插件。
- 在我的iPad Mini上运行本地AI。免费且开源。
- 在Pixel 7(Android 13)上使用我的离线AI应用,由即将推出的Flutter插件提供支持
- 在Linux上运行离线LLM,如Mistral 7B。适用于Flutter的开源llama.cpp封装器。
Werkloos
这个荷兰词完美描述了我目前的状况:失业。但如果用英语说这个词,你可能会跳过这部分,但你还是在这里。我很高兴你仍在阅读。
最近,在去年9月,我工作的金融科技初创公司由于市场条件严峻不得不关闭。虽然我目前正在找新工作,但要找到一家能结合我对AI和Flutter热情的公司并不容易。
我决定冒险一试,在找到新工作或资金耗尽(2024年1-2月)之前继续这个项目。无论哪种情况先发生。也许我会找到一种方法使这个项目可持续发展,同时保持开源。我只是随遇而安。
AubAI之友
- shady.ai - 使用AubAI在本地运行AI模型的面向消费者的应用。这是我正在构建的应用,用于展示AubAI的功能,并使AI对大众accessible。
- llama.cpp - 用于在本地构建和运行AI模型的C++库。
- Flutter Perth - 珀斯的Flutter聚会小组。我是组织者。参加我定期举办的在线聚会,了解更多关于Flutter和AI的信息。