admin管理员组

文章数量:1596344

Google Gemini

一、Gemini

1.1、官方参考文档

一、Gemini是谷歌开源的AI模型,官方地址:https://makersuite.google/app/library
二、Google AI studio快速入门(中文)地址:https://ai.google.dev/tutorials/ai-studio_quickstart?hl=zh-cn
三、python api 文档地址:https://ai.google.dev/api/python/google/generativeai

1.2、Gemini版本

  • Ultra版 (收费,智能化程度超越了openAI的ChatGPT4)负责处理后端服务器上的高强度工作负载
  • Pro版 (免费【一定时间内免费试用,最终定价具有一定的竞争力】,开发者自定义开发),体量居中,它提供一系列功能:函数调用、嵌入、语义检索、自定义知识背景以及聊天功能等
    Gemini Pro:接受文本输入
    Gemini Pro Vision:接受文本和图像输入。
  • Nano(应用于安卓系统)版, Nano版最小、面向设备端工作负载

1.3、Gemini能做什么

企业可以使用自己的数据定制Gemini,构建基于Gemini的搜索工具和聊天机器人等程序;

1.4、如何基于公司的数据定制Gemini,创建一个聊天机器人或者搜索工具?

  1. 创建模型(载入训练数据,格式:Dataset,Iterable,Mapping,Csv file,Json file)
  2. 生成嵌入
  3. 生成文本
  4. 获取模型
  5. 根据模型进行搜索或者问答
    备注:以上api调用依赖于Google云。

二、Google bard chat AI

2.1、官方chat窗口地址

https://bard.google/chat

2.2、bard更新后的6大新功能

1、强化了语言支持
Bard现在支持包括中文简体、繁体在内的40多种语言版本,尤其是增加了阿拉伯语、中文、德语、印地语和西班牙语等新语言。经过提问,Bard自称可以理解26种语言。
同时,Bard还扩大了它的使用区域,在原有语言的基础上,支持欧盟所有27个国家和巴西都可以访问Bard。

2、支持只能语音
Bard支持语音提问,它会把语音自动转化为文字。收到的回答会有文字版和语音版,点击右上角的小喇叭就可以开启语音朗读模型,无论是英文还是中文,它都能用悦耳的语音朗读出来。

3、回答更专业
Bard的回答充分发挥了它的即时搜索功能,可以即时获取最新的新闻资讯,同时提供3个版本的回答(drafts),用户可以随意切换选择。
Bard回答较以往更加专业和准确,答案最后还会添加参考资料的来源,用户还可以点击答案下方的链接图标,分享和导出问题和答案。如果您对答案不满意,还可以直接点击链接进行谷歌搜索,查询更多搜索结果。

4、支持智能摄像头
Bard整合了Google Lens的功能,开始支持智能摄像头。与Bard对话时,可以上传图片及文字,用户可以用英语提问,进一步了解某张图片,进行有趣的配图文案构思,都能通过Bard尝试更多探索和创作方式。
相关功能暂时只在手机上开放,并且支持英语。

5、改进阅读功能
您还可以点击时钟图标,查看历史的提问记录,您可以随时返回之前与Bard的对话继续互动,还可根据需要整理对话。Bard还添加了固定对话、重命名对话以及同时进行多个对话的功能。

6、python代码导出
Bard对于编程的支持越来越强,除了可以把Python代码改入到Google Colab外,还支持将Python代码导出至Replit,这将进一步简化工作流,在线就可以完成编程的调试工作。对于一些代码,Bard会参考Github上面的源码,并进行整合,还列出参考资源地址。
备注: Colaboratory 简称“Colab”,是Google Research 团队开发的一款产品。 在Colab 中,任何人都可以通过浏览器编写和执行任意Python 代码。 它尤其适合机器学习、数据分析和教育目的。

总的来说,Bard这次的更新非常全面,强化了语言支持、支持智能语音、回答更加专业,支持智能摄像头、阅读功能更强大、编程代码导出等功能,一定会给用户带来更好的体验。

3、bard 和 Gemini

bard是搭载了Gemini pro模型的AI聊天机器人。

4、Gemini python api

Install python SDK:
SDK GitHub地址:https://github/google/generative-ai-python
`pip install -q -U google-generativeai`

4.1、获取api key

https://makersuite.google/app/apikey

4.2、配置api key

import google.generativeai as genai
# 定义常量 api-key
API_KEY = "**your api key**"
genai.configure(api_key=API_KEY)

4.3、获取model列表

import google.generativeai as genai

# 定义常量 api-key
API_KEY = "**your api key**"
genai.configure(api_key=API_KEY)

# gemini-pro: optimized for text-only prompts.
# gemini-pro-vision: optimized for text-and-images prompts.

for m in genai.list_models():
  if 'generateContent' in m.supported_generation_methods:
    print(m.name)

4.4、文本输入生成文本

import google.generativeai as genai

# 定义常量 api-key
API_KEY = "**your api key**"
# 配置api key
genai.configure(api_key=API_KEY)
# 根据模型id获取模型
model = genai.GenerativeModel('gemini-pro')
# 获取答案
response = model.generate_content("What is the meaning of life?")
print(response.text)

4.5、多轮对话

import google.generativeai as genai

# 定义常量 api-key
API_KEY = "**your api key**"
# 配置api key
genai.configure(api_key=API_KEY)
# 根据模型id获取模型
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat()
response = chat.send_message(question)
# 历史问答
# chat.history
print(response.text)

4.6、文本,图像输入获取文本

import google.generativeai as genai
import PIL.Image

# 定义常量 api-key
API_KEY = "**your api key**"
# 配置api key
genai.configure(api_key=API_KEY)
model = genai.GenerativeModel(model_name='gemini-pro-vision')

img = PIL.Image.open('img.png')
question = "用50左右的文字描述下图片的内容"

response = model.generate_content([question, img], stream=True)
response.resolve()
print(f"Gemini 返回:{response.__dict__}")

4.7、流式输出

response = chat.send_message("Okay, how about a more detailed explanation to a high schooler?", stream=True)

for chunk in response:
  print(chunk.text)
  print("_"*80)

4.8、历史对话

for message in chat.history:
  display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))

4.9、使用嵌入

什么是嵌入:https://ai.google.dev/docs/embeddings_guide?hl=zh-cn

文本嵌入是一种自然语言处理 (NLP) 技术,可将文本转换为数值向量。嵌入可捕获语义含义和上下文,从而使具有相似含义的文本具有更紧密的嵌入。例如,句子“I take my dog to the vet”(我把狗带到兽医处)和“I take my cat to the vet”(我把我的猫带到兽医处)的嵌入在向量空间中彼此接近,因为它们描述的上下文类似。
这一点很重要,因为它解锁了许多可对矢量执行操作的算法,但不能直接对文本进行操作。
您可以使用这些嵌入或向量来比较不同的文本并了解它们之间的关系。例如,如果文本“cat”和“dog”的嵌入相近,您可以推断这些字词的含义和/或上下文相似。此功能适用于下一部分中介绍的各种使用场景。
result = genai.embed_content(
    model="models/embedding-001",
    content="What is the meaning of life?",
    task_type="retrieval_document",
    title="Embedding of single string")

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')

本文标签: GoogleGemini