说在前面的话
大型语言模型(LLM)是近年来人工智能领域最令人瞩目的突破之一。它们拥有强大的语言理解和生成能力,能够完成各种任务,为我们打开了一个全新的世界。
以下是一些常见的使用场景:
1. 内容创作:
- 写作辅助: LLM 可以帮助你克服写作障碍,提供主题构思、段落结构和语句润色等方面的建议,提升写作效率和质量。
- 文章生成: LLM 可以根据你的要求生成新闻报道、故事、诗歌等各种类型的文章,甚至可以模仿特定作家的风格。
- 营销文案创作: LLM 可以帮助你生成吸引人的广告语、产品描述和社交媒体内容,提高营销效果。
2. 翻译与语言学习:
-
实时翻译: LLM 可以实时翻译不同语言之间的文本,打破语言障碍,方便交流。
-
语言学习: LLM 可以提供练习对话、翻译、语法和词汇等方面的训练,帮助你学习新语言。
3. 代码开发: -
代码生成: LLM 可以根据你的自然语言描述生成代码,简化编程流程,提高开发效率。
-
代码调试: LLM 可以帮助你识别代码中的错误,并提供修复建议,加速调试过程。
等等,为我们生活中提供了好多便捷的使用
而今天我们要讲的主角为:Gemini
Gemini 是由 Google AI 开发的大型语言模型(LLM)。它是一个强大的 AI 系统,能够理解和生成类似人类的文本、代码和其他形式的内容。
Gemini 的主要特点:
- 多模态理解和生成: Gemini 可以处理和生成文本、代码、图像和音频,使其成为一个通用的 AI 系统。
- 高级推理和解决问题的能力: 它具有出色的推理能力,能够解决复杂问题并提供有见地的解决方案。
- 上下文感知: Gemini 可以在对话中保持上下文,确保响应连贯且相关。
- 知识整合: 它已经接受过海量数据集的训练,拥有庞大的知识库,能够回答各种问题。
- 代码生成和调试: Gemini 可以用各种编程语言生成代码,并帮助进行调试。
- 翻译和摘要: 它可以将文本翻译成不同的语言并生成简洁的摘要。
- 创意内容生成: Gemini 可以创作故事、诗歌和其他形式的创意内容。
Gemini 的工作原理:
Gemini 是一个深度学习模型,使用 Transformer 架构。它已经接受过海量文本、代码和其他数据的数据集的训练,使用监督和无监督学习技术。这种训练使其能够学习数据中的模式和关系,使其能够执行各种任务。
Gemini 的应用:
- 聊天机器人和对话式 AI: 为客户服务、教育和娱乐创建引人入胜且信息丰富的聊天机器人。
- 内容创作: 生成文章、博客文章、社交媒体内容和其他形式的书面材料。
- 软件开发: 帮助开发人员进行代码生成、调试和文档编写。
- 翻译和本地化: 将文本翻译成不同的语言,并将内容适应不同的文化。
- 研究和分析: 分析数据、提取见解并生成报告。
与其他 LLM 的比较:
Gemini 被认为是目前最先进的 LLM 之一。它在多模态能力、推理能力和知识库方面超越了以前的模型。
局限性:
- 偏见和公平: 像所有 LLM 一样,Gemini 会根据其接受过训练的数据表现出偏见。
- 缺乏常识: 它可能难以完成需要常识推理的任务。
- 伦理问题: 生成假新闻或操纵信息等潜在的滥用可能性令人担忧。
这也是2024年Google 开发者大会主推的功能点
回归本源
现在讲视野拉回我们这次主讲的内容点上:
- 如何在项目中使用Gemini
- 使用Gemini处理文字、声音、视频
- 如何在AS中使用Gemini功能,以及代码优化
- 如何使用Google AI Studio
一、如何在项目中使用Gemini
1、Gemini API_KEY申请流程
首先我们需要先申请一个API_KEY,申请网站
不过这里需要注意的一点:必现已经在Google Cloud 中存在项目,才能创建API_KEY。
这个API_KEY是有免费使用次数限制
就是说一分钟最多15个请求,一天最多请求1500个请求,当然收费的另讲
2、Gemini SDK 接入
引入Gemini SDK: 官方教程
dependencies {
// add the dependency for the Google AI client SDK for Android
implementation("com.google.ai.client.generativeai:generativeai:0.7.0")
}
初始化模型
在进行任何 API 调用之前,您需要先导入并初始化 模型。Gemini 1.5 模型用途广泛 ,而且最重要一点就是免费的次数比较多,别的模型使用的次数比较少
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
// Access your API key as a Build Configuration variable (see "Set up your API key" above)
apiKey = BuildConfig.apiKey
)
发出第一个请求
最好在协程内使用,这个事例是阻塞式请求
lifecycleScope.launch(Dispatchers.IO) {
val prompt = "请问中国有多个民族,以及中国有多大的面积"
val response = generativeModel.generateContent(prompt)
Log.d(TAG, "testGemini() called ${response.text}")
}
大家在测试时,可能会遇到请求失败的问题,在这里需要注意的事,目前Gemini只开发的部分国家,非开发的国家则直接请求失败
可用国家列表
- 中国->台湾
- 中国->日本