Gemini入门系列(2)——本地文件处理

  Gemini模型的重要特点是multimodal多模态,可以对图片视频语音等处理。将文件传给Gemini前需要让Gemini知道去哪里找到文件,通常可以把文件放在本地或者线上。以下示例展示本地文件的使用方式。

GCP Console操作

  在Console的Gemini界面,可以看到插入媒体的按钮:

  如果媒体文件不大于7MB,可以直接通过本地上传。现在通过本地文件上传分析一张图片:

  无需任何处理,Gemini直接对上传文件进行了分析。

通过Code操作

Gemini代码浅析

  上一个示例的代码,可以分成简单几个部分:
  1、库的导入,这里导入vertexai的库、Gemini模型的库,用作初始化环境设置及Gemini调用;导入google认证库的service account模块,用作鉴权;还导入base64库,但这段示例中没有使用

1
2
3
4
import base64
import vertexai
from vertexai.generative_models import GenerativeModel, Part, SafetySetting
from google.oauth2 import service_account #导入google认证库的service account模块

  2、设置认证,通过service account创建认证变量

1
2
3
cred = service_account.Credentials.from_service_account_file(
'/home/gcpvm/ai-demo-440003-7b8cf6bf07d5.json'
)

  3、如下代码配置了Gemini的运行参数,并作为全局变量传递给函数,可以根据需求修改,但目前输出token最大8192

1
2
3
4
5
generation_config = {
"max_output_tokens": 8192,
"temperature": 1,
"top_p": 0.95,
}

  4、这里是安全过滤设置,有四个分类:仇恨言论、微信内容、露骨色情内容、骚扰内容;可以分别对不同类别设置过滤等级,默认OFF,有4个等级供设置;同样作为全局变量传递给函数
Xnip Helper 2024-11-01 17.59.18

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
safety_settings = [
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=SafetySetting.HarmBlockThreshold.blo
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
]

  5、如下这段函数即Gemini真正运行的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def generate():
vertexai.init(project="ai-demo-440003", location="us-central1", credentials=cred) #在初始化环境配置credential
model = GenerativeModel(
"gemini-1.5-flash-002",
)
responses = model.generate_content(
["""Please tell me how to lear python"""],
generation_config=generation_config,
safety_settings=safety_settings,
stream=True,
)

for response in responses:
print(response.text, end="")

  其中:

  • vertexai.init初始化环境,这里设置了:
    • project为项目名称,需要使用项目id
    • location运行Gemini的region
    • credentials指定认证鉴权
  • model设置Gemini模型的版本,例如flash或pro,1.0或1.5,001或002等,根据需要选择
  • model.generate_content运行模型,其中最重要的就是[]中的prompt,后边几个变量传入相应设置,并将结果输出给变量response
  • 打印response
      知道代码每段的作用,下一步将检查如何使用本地媒体文件。

在代码中使用本地媒体文件

  点击获得代码,可以看到使用本地文件的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import base64
import vertexai
from vertexai.generative_models import GenerativeModel, Part, SafetySetting


def generate():
vertexai.init(project="ai-demo-440003", location="us-central1")
model = GenerativeModel(
"gemini-1.5-flash-002",
)
responses = model.generate_content(
[image1, """Please describe this picture."""],
generation_config=generation_config,
safety_settings=safety_settings,
stream=True,
)

for response in responses:
print(response.text, end="")

image1 = Part.from_data(
mime_type="image/webp",
data=base64.b64decode("""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"""),
)

generation_config = {
"max_output_tokens": 8192,
"temperature": 1,
"top_p": 0.95,
}

safety_settings = [
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
]

generate()

  现在运行这段代码(不要忘了加上认证),可正常的到结果

  对比这段代码和上一个示例代码,可以发现有两个主要的区别:

  1. 多了如下一个变量:

    1
    2
    3
    4
    5
    image1 = Part.from_data(
    mime_type="image/webp",
    data=base64.b64decode("""UklGRmacAABXRUJQVlA4IFqcAAAQtAOdASroA/
    ...""")

      这里将本地的图片做了base64编码,然后在代码里首先用base64做decode,然后通过Part这个类赋值给变量image1作为prompt的组成部分

  2. 在prompt里使用image1:

    1
    2
    3
    4
    5
    6
    responses = model.generate_content(
    [image1, """Please describe this picture."""],
    generation_config=generation_config,
    safety_settings=safety_settings,
    stream=True,
    )

      从以上分析可以看出,使用本地媒体文件最直接的方法,就是先做base64编码,然后再将编码放入code里使用。但这种方法需要先离线做base64,再把生成的字符串放入code,繁琐且容易出错。
      为了简化流程及规范化代码,我们可以直接在code里处理base64编码,以上代码可以修改为如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    import base64
    import vertexai
    from vertexai.generative_models import GenerativeModel, Part, SafetySetting
    from google.oauth2 import service_account

    cred = service_account.Credentials.from_service_account_file(
    '/home/gcpvm/ai-demo-440003-7b8cf6bf07d5.json'
    )


    def generate():
    vertexai.init(project="ai-demo-440003", location="us-central1", credentials=cred)
    model = GenerativeModel(
    "gemini-1.5-flash-002",
    )
    responses = model.generate_content(
    [image1, """Please describe this picture."""],
    generation_config=generation_config,
    safety_settings=safety_settings,
    stream=True,
    )

    for response in responses:
    print(response.text, end="")

    # 对本地文件base64编码
    with open('/home/gcpvm/1.webp','rb') as image:
    imageEncode = base64.b64encode(image.read())

    image1 = Part.from_data(
    mime_type="image/webp",
    data=base64.b64decode(imageEncode),
    )

    generation_config = {
    "max_output_tokens": 8192,
    "temperature": 1,
    "top_p": 0.95,
    }

    safety_settings = [
    SafetySetting(
    category=SafetySetting.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold=SafetySetting.HarmBlockThreshold.OFF
    ),
    SafetySetting(
    category=SafetySetting.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
    threshold=SafetySetting.HarmBlockThreshold.OFF
    ),
    SafetySetting(
    category=SafetySetting.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
    threshold=SafetySetting.HarmBlockThreshold.OFF
    ),
    SafetySetting(
    category=SafetySetting.HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold=SafetySetting.HarmBlockThreshold.OFF
    ),
    ]

    generate()

      改写后的代码里,我们直接将本地文件编码和解码,无需预操作,并且代码更简单。

非base64方法

  对于图片类文件,Part可以直接处理,以上代码可以修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import base64
import vertexai
from vertexai.generative_models import GenerativeModel, Part, SafetySetting, Image
from google.oauth2 import service_account

cred = service_account.Credentials.from_service_account_file(
'/home/gcpvm/ai-demo-440003-7b8cf6bf07d5.json'
)


def generate():
vertexai.init(project="ai-demo-440003", location="us-central1", credentials=cred)
model = GenerativeModel(
"gemini-1.5-flash-002",
)
responses = model.generate_content(
[image1, """Please describe this picture."""],
generation_config=generation_config,
safety_settings=safety_settings,
stream=True,
)

for response in responses:
print(response.text, end="")


image1 = Part.from_image(
Image.load_from_file('/home/gcpvm/1.webp')
)


generation_config = {
"max_output_tokens": 8192,
"temperature": 1,
"top_p": 0.95,
}

safety_settings = [
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
SafetySetting(
category=SafetySetting.HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=SafetySetting.HarmBlockThreshold.OFF
),
]

generate()


  此处将本地图片文件的base64编解码省略,直接用Part执行图片的加载,进一步简化操作:

1
2
3
image1 = Part.from_image(
Image.load_from_file('/home/gcpvm/1.webp')
)

小结

  作为multimodal的模型,处理文件是Gemini的重要功能,对于7MB一下的文件,无需上传即可直接调用本地文件处理,特别在一些测试环境,无需上传文件,非常方便。