Flutter集成Firebase AI Logic

Firebase AI Logic简介

Firebase AI Logic可让您使用Google最新的生成式AI模型:Gemini模型和 Imagen模型,可以使用 Firebase AI Logic客户端SDK。Gemini支持多模态(图片,视频,文档等格式)和自然语言输入。

Firebase AI Logic开启

  1. 登录Firebase控制台,然后选择您的Firebase项目。
  2. 在Firebase控制台中,前往Firebase AI Logic页面。
  3. 点击开始,启动引导式工作流,帮助您为项目设置必需的API和资源。 选择要与 Firebase AI Logic SDK 搭配使用的"Gemini API"提供方。Gemini Developer API 建议首次使用该功能的用户选择此选项。如果您愿意,可以随时添加结算信息或设置 Vertex AI Gemini API。

添加Firebase AI Logic的SDK

按照上图中的步骤,将Firebase添加到您的Flutter应用。 在您的Flutter项目目录中,运行以下命令以安装核心插件和 Firebase AI Logic 插件:

在lib/main.dart文件中,导入Firebase 核心插件、Firebase AI Logic插件以及您之前生成的配置文件。 同样在lib/main.dart 文件中,使用配置文件导出的 DefaultFirebaseOptions对象初始化 Firebase。 安卓设备运行时候会ndk版本过低的错误,错误如下所示:

可以按照图片中的修复方案进行修复。

初始化服务并创建模型实例并调用相应的API

scss 复制代码
  // Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
  final model =
  FirebaseAI.googleAI().generativeModel(model: 'gemini-2.5-flash');

// Provide a prompt that contains text
  final prompt = [Content.text('Write a story about a magic backpack.')];

// To generate text output, call generateContent with the text input
  final response = await model.generateContent(prompt);
  print(response.text);

示例代码如上所示。

LLM(大语言模型)简介

LLM如何通信,步骤:

  1. 用户输入:用户在聊天界面中输入文本,或者其他格式的输入。
  2. 请求格式设置:应用将文本格式设置为Gemini API的Content对象。
  3. API通信:系统会通过Firebase AI逻辑将文本发送到 Gemini API。
  4. LLM处理:Gemini模型会处理文本并生成回答。
  5. 响应处理:应用接收响应并更新界面。 LLM通讯其实也就是和CS建构相似的一种架构,通过协议来处理请求处理数据,并把相应结果返回的请求者。 LLM调用本地函数的过程如下所示:
  6. 函数选择:LLM会根据用户的请求决定是否有必要进行函数调用。
  7. 参数生成:LLM 会生成符合函数架构的参数值。
  8. 函数调用格式:LLM 会在响应中发送结构化函数调用对象。
  9. 应用处理:您的应用会收到此调用并执行相关函数(在下一步中实现)。
  10. 响应集成:在多轮对话中,LLM 会预期返回函数的结果。 效果图如下所示:

参考资料

codelabs.developers.google.com/codelabs/fl... firebase.google.com/docs/ai-log...

firebase.flutter.dev/docs/overvi...

相关推荐
一名普通的程序员4 小时前
使用 Flutter Pay 插件实现 Apple Pay 和 Google Pay 的完整指南
flutter
智泊AI5 小时前
为什么通用Agent很难实现企业化落地?
llm
麦客奥德彪5 小时前
Flutter riverpod 对应Android开发概念理解
flutter
tangweiguo030519875 小时前
Kotlin vs Dart vs Swift:语法对比全解
flutter
feelingHy6 小时前
GetX 状态管理实践
flutter
tangweiguo030519877 小时前
Flutter多品牌应用架构实战:从配置驱动到编译部署的完整解决方案
flutter
Bryce李小白7 小时前
FlutterBoost适配Flutter3.38.4版本生成补丁包
flutter
tangweiguo030519878 小时前
Flutter Packages 设计与实践:构建可维护的模块化应用
flutter
大模型教程8 小时前
14天速成LLM高手!大佬开源学习笔记,GitHub狂揽700星
程序员·llm·agent
小a杰.8 小时前
Flutter 的编译技术核心
flutter