使用 Google Gemini 和 SwiftUI 构建 AI 图像识别应用程序

news2024/11/19 12:30:43

在本教程中,我们将演示如何使用 Google Gemini API 进行图像识别。这个简单的应用程序允许用户从他们的照片库中选择一张图片,并使用 Gemini 描述照片的内容。

在继续本教程之前,请访问Google AI Studio并创建您自己的 API 密钥(如果您还没有这样做)。

在 Xcode 项目中添加 Google 生成式 AI 包

假设您已经在 Xcode 中创建了一个应用项目,使用 Gemini API 的第一步是导入 SDK。为此,请在项目导航器中右键单击项目文件夹,然后选择“添加包依赖项”。在对话框中,输入以下包 URL:

https://github.com/google/generative-ai-swift

然后,您可以单击“添加包”按钮来下载GoogleGenerativeAI包并将其合并到项目中。

接下来,要存储 API 密钥,请创建一个名为 的属性文件 GeneratedAI-Info.plist。在此文件中,创建一个名为 的密钥 API_KEY ,并输入您的 API 密钥作为值。

要从属性文件读取 API 密钥,请创建另一个名为 的 Swift 文件 APIKey.swift。将以下代码添加到此文件:

enum APIKey {
  // Fetch the API key from `GenerativeAI-Info.plist`
  static var `default`: String {

    guard let filePath = Bundle.main.path(forResource: "GenerativeAI-Info", ofType: "plist")
    else {
      fatalError("Couldn't find file 'GenerativeAI-Info.plist'.")
    }

    let plist = NSDictionary(conten

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1863500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

考试系统开源意义

在当今信息科技高速发展的时代,考试系统的代码开源化成为了一个备受关注的话题。开源代码意味着代码的可访问性、可修改性和可分享性,为教育机构和开发者们带来了前所未有的便利和机会。本文将深入探讨考试系统代码开源的背景、意义、优势以及实际应用&a…

Java——IO流(一)-(7/8):字节流-FileOutputStream、字节流完成文件拷贝

目录 文件字节输出流:写字节出去 构造器及常用方法 实例演示 案例:文件复制 过程分析 复制照片 复制文件 文件字节输出流:写字节出去 FileOutputStream(文件字节输出流) 作用:以内存为基准&#x…

1999年-2022年 商品零售价格指数、城市商品零售价格指数数据

商品零售价格指数(RPI)是一个关键的经济指标,用于衡量一段时间内商品零售价格的平均变动情况。以下是对商品零售价格指数的详细介绍: 数据简介 定义:商品零售价格指数反映的是与上一年度相比,零售价格的变…

如何利用AI工具高效写作?

利用AI工具进行高效写作已经成为许多人的选择,因为它们能够帮助用户节省时间、提高效率,并在一定程度上保证写作质量。下面小编就和大家分享的一些具体的步骤和建议,帮助大家更好地利用AI工具进行写作。 1.选择合适的AI写作工具 根据自己的写…

【前端】Vue项目和微信小程序生成二维码和条形码

前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享Vue项目和微信小程序如何生成二维码和条形码,介绍了JsBarcode、wxbarcode等插件,并提供具体代码帮助大家深入理解,彻底掌握&#xff01…

图书馆借阅表

DDL 用户表 (Users) 图书表 (Books) 图书类别表 (BookCategories) 图书与类别关联表 (BookCategoryRelations) 借阅记录表 (BorrowRecords) 供应商表 (Suppliers) 采购记录表 (PurchaseRecords) CREATE TABLE Users (user_id INT PRIMARY KEY AUTO_INCREMENT,username …

解决宝塔linux面板 - 404 Not Found(Nginx)方法

宝塔Linux面板后台登录提示404 Not Found Nginx如何解决?码笔记:这是因为BT面板丢失了安全登录入口,如下图: 宝塔404 Not Found nginx 解决方法: 1、先SSH远程服务器 2、然后执行命令 bt 14 重新获取宝塔面板URL地址安…

使用Hugging Face获取BERT预训练模型

【图书推荐】《从零开始大模型开发与微调:基于PyTorch与ChatGLM》_《从零开始大模型开发与微调:基于pytorch与chatglm》-CSDN博客 BERT是一个预训练模型,其基本架构和存档都有相应的服务公司提供下载服务,而Hugging Face是一家目前专门免费提…

cJSON源码解析之add_item_to_object函数

文章目录 前言add_item_to_object函数是干什么的add_item_to_object代码解析函数实现函数原理解析开头的代码constant_key参数的作用最后的if判断 add_item_to_array函数 总结 前言 在我们的日常编程中,JSON已经成为了一种非常常见的数据交换格式。在C语言中&#…

【Android】android studio简单实现图书馆借阅管理系统

希望文章能给到你启发和灵感~ 点赞收藏关注 支持一下吧~ 阅读指南 序幕一、基础环境说明1.1 硬件环境1.2 软件环境 二、整体设计2.1 数据库逻辑处理:2.2 登录/注册模块2.3 功能界面初始化:2.4 图书管理模块2.5 图书租借服务2.6 读…

[物联网专题] - 螺钉式接线端子的选择和辨识

工业设备上大量使用各式各样的端子来连接外部设备和电缆电线,其中用得最多的就是标准的螺钉式端子,其外形如下: 标准端子一般是2位(2个接线端子),端子与端子之间可以级联,组成任意数量的位数。…

vue项目无后台版本打包上传到服务器

打包项目 也可以在文件目录下npm run build 生成dist文件夹 将dist文件夹里的所有文件拷贝到站点的根目录,这里使用宝塔面板进行操作 前提你得先创建站点,域名绑定等操作

项目菜单配置

stores/index.js import {createStore } from "vuex"; //计算高度 let height window.innerHeight;//计算分辨率 let width window.innerWidth;let activeIndex localStorage.getItem("activeIndex"); if (activeIndex null || activeIndex "&q…

制图工具(14)导出图层字段属性信息表

在制图工具(13)地理数据库初始化工具中我们提到,有一个参数为:“输入Excel表”,并要求表格中的图层字段属性项需要按工具的帮助文档中的示例进行组织… 如下图: 此外,总有那个一个特别的需求&am…

【单片机毕业设计选题24028】-基于STM32的大棚温湿度采集系统

系统功能: 系统分为手动和自动模式,上电默认为自动模式,自动模式下系统根据采集到的传感器值 自动控制,温度过低后自动开启加热,湿度过高后自动开启通风,光照过低后自动开启补 光,水位过低后自动开启水泵…

Android 界面库 (二) 之 Data binding 详细介绍

1. 简介 回顾我们在前面文章《Android 界面库 (一) 之 View binding 简单使用》中学习的 View Binding,它旨在简化 View 与代码之间的绑定过程。它会在编译时期为每个 XML 布局文件生成相应的绑定类(Binding class),该类里包含了布局文件每个有 ID 的 Vi…

L59---101.对称二叉树(广搜)---Java版

1.题目描述 2.思路和知识点 (1)根节点为空: 如果根节点为空,树是对称的。 (2)递归检查: isMirror 方法递归检查两个子树是否是镜像对称的。 (3)辅助函数 isMirror: 1)如果两个节点都为空,它们是镜像对称的…

php composer 报错

引用文章: Composer设置国内镜像_composer 国内源-CSDN博客 php composer.phar require --prefer-dist yiidoc/yii2-redactor "*" A connection timeout was encountered. If you intend to run Composer without connecting to the internet, run the …

day49---数据结构与算法(四)

三. 基础算法 3.1 查找概述 查找算法是一种在数据集中寻找特定数据项的方法。通常,数据集是在计算机程序中存储的,例如数组、链表或散列表。在编写程序时,查找算法是非常重要的,它有助于快速找到所需的数据。在本文中&#xff0…

Linux系统安装Lua语言及Lua外部库

安装Lua Lua语言是一种轻量级、高效且可扩展的脚本语言,具有简洁易学的语法和占用资源少的特点。它支持动态类型,提供了丰富的表达式和运算符,同时具备自动垃圾回收机制和跨平台性。Lua语言易于嵌入到其他应用程序中,并可与其他语…