开发者必看:Gemini API 密钥调用全指南,新手快速上手

Gemini API 是 Google DeepMind 开发的多模态 AI 模型,支持文本、图像、音频和视频输入,广泛应用于智能应用开发、自动化工作流程、数据分析、内容创作以及教育与研究。以下是具体应用场景:

  • 智能应用开发

    • 智能客服机器人:准确率高达 97%,降低人工成本。

    • 创意文案工具:生成多风格营销文案。

    • 个性化学习助手:提供定制化辅导。

    • 多模态助手:结合文本和图像,实现自然交互。

    • 代码补全工具:生成高质量代码片段。

  • 自动化工作流程

    • 客户反馈分析:提取情感倾向和关键信息。

    • 会议记录转录:实时生成摘要。

    • 多语言翻译:支持超 100 种语言。

    • 邮件自动化:分类并生成回复草稿。

    • 合同生成:根据条款生成完整文本。

  • 数据分析与洞察

    • 社交媒体分析:识别情绪和趋势。

    • 新闻摘要:提取关键事件。

    • 医学研究:分析文献成果。

    • 市场调研:发现客户和市场机会。

    • 财务分析:生成指标报告。

  • 内容创作

    • 文章生成:生成结构化文章。

    • 创意文本:创作诗歌、剧本或歌词。

    • 图片描述:生成精准图像描述。

    • 社交媒体内容:生成带 hashtag 的帖子。

    • 视频脚本:生成脚本大纲。

  • 教育与研究

    • 个性化学习:生成定制化材料。

    • 自动批改:提供作业反馈。

    • 研究辅助:支持文献综述。

    • 语言学习:实时纠错和翻译。

    • 虚拟教学:模拟交互式学习环境。

应用领域

示例功能

潜在收益

智能应用开发

智能客服、代码补全

提升效率,降低成本

自动化工作流程

反馈分析、会议转录

节省时间,优化流程

数据分析与洞察

社交媒体分析、财务报告

提供洞察,支持决策

内容创作

文章生成、视频脚本

激发创意,快速产出

教育与研究

个性化学习、研究辅助

提升学习效果,加速研究

2. Gemini API 使用方式

Gemini API 支持通过多种方式调用,以满足不同开发需求。以下是主要的使用方式,涵盖官方途径和第三方平台的使用步骤:

  • 官方途径:在 Google Cloud Console 注册账号,创建项目,启用 Generative Language API,并生成 API 密钥。

  • 第三方平台:由于国内网络限制,建议使用 PoloAPI 作为中转平台,注册后获取 API 密钥,配置后即可访问 Gemini API。

获取和使用示例:

第一步:点击添加令牌

image

第二步:填写自定义名称,选择对应的用户分组,点击提交按钮

image

第三步,点击复制按钮,这里复制到的令牌即为apikey

image

第四步:配置环境:在开发环境中配置密钥和 PoloAPI 的 base_url(具体配置方式见第 3节)。

3python 实战:玩转 Gemini API

3.1 安装OpenAI Python库

pip install openai

3.2 模型选择:找到最适合你的模型

Gemini 提供多种模型(这里简要列举两个):

模型

功能

用例

相对成本

gemini-2.5-pro

高性能多模态模型,支持复杂推理

对话、内容生成、图像分析、复杂任务

gemini-2.5-flash

快速轻量模型,适合低延迟任务

聊天机器人、实时翻译、简单内容生成

3.3 首次 API 调用:与 Gemini 模型对话

import openai
import json

openai.api_key = "sk-XXX"   #换成在https://poloai.top上获取的令牌
openai.base_url = "https://poloai.top/v1/" #这个不变

response = openai.chat.completions.create(
  model="gemini-2.0-flash",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "你好!"}
    ]
)

print(response.choices[0].message.content)

3.4 进阶技巧:输出控制、流式传输、函数调用

输出控制

import openai
import json

openai.api_key = "sk-XXX"   #换成在https://poloai.top上获取的令牌
openai.base_url = "https://poloai.top/v1/" #这个不变


response = openai.chat.completions.create(
  model="gemini-2.0-flash",
  messages=[
        {"role": "system", "content": "You are a creative assistant."},
        {"role": "user", "content": "写一首关于夏天的诗。"}
    ],
  max_tokens=50,
  temperature=0.7,
  top_p=0.9,
  n=3,
  stop=["\n\n", "。"],
  presence_penalty=0.5,
  frequency_penalty=0.5
)

for i, choice in enumerate(response.choices):
    print(f"回复 {i+1}: {choice.message.content}")

参数说明

  • model:指定调用的模型,此代码中使用 "gemini - 2.0 - flash" 模型来处理对话。
  • messages:包含消息对象列表以描述对话上下文,其中 "system" 角色设置模型行为,"user" 角色提供用户请求内容。
  • max_tokens:限定模型生成回复中最多包含的令牌数量,代码里设置为 50 以控制回复长度。
  • temperature:控制模型输出随机性,值为 0.7 时使模型生成回复有一定随机和创意性。
  • top_p:采用核采样限制模型生成回复时考虑的词汇范围,0.9 表示选取累积概率达 90% 的最小词汇集合。
  • n:指定模型生成的回复数量,代码中设为 3 意味着将得到 3 个不同回复。
  • stop:指定一组停止序列,当模型生成内容中遇到 " \n\n" 或 "。" 时停止生成。
  • presence_penalty:对回复中已出现的主题进行惩罚,值为 0.5 会让模型尝试引入新主题。
  • frequency_penalty:对回复中重复出现的词汇进行惩罚,值 0.5 使模型减少重复用词。

流式传输

import openai
import json

openai.api_key = "sk-GUeMNJeWQE3trqiGONx0aaxU2CbbqGaYw8v86oi3yeR3txI7"
openai.base_url = "https://poloai.top/v1/"

response = openai.chat.completions.create(
  model="gemini-2.0-flash",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "请写一篇关于gemini的文章,不少于500字。"}
    ],
  stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="", flush=True)

参数说明

  • model:明确要使用的模型为 "gemini - 2.0 - flash",让该模型处理后续的对话请求。
  • messages:是一个消息对象列表,用于构建对话上下文,其中 "system" 角色设定模型为提供帮助的助手,"user" 角色提出撰写一篇不少于 500 字关于 Gemini 文章的请求。
  • stream:设置为 True 表示以流式方式接收模型的回复,即模型会逐步返回生成的内容,而不是等全部生成完成后一次性返回。

函数调用

import openai
import json

openai.api_key = "sk-GUeMNJeWQE3trqiGONx0aaxU2CbbqGaYw8v86oi3yeR3txI7"
openai.base_url = "https://poloai.top/v1/"


# 定义获取当前天气的函数
def get_current_weather(location, unit="celsius"):
  """获取指定位置的当前天气"""
  # 示例,实际应用需调用真实天气 API
  weather_info = {
      "location": location,
      "temperature": "25",
      "unit": unit,
      "forecast": ["sunny", "windy"],
  }
  return json.dumps(weather_info)

# 定义可用的函数
functions = [
  {
      "name": "get_current_weather",
      "description": "获取指定位置的当前天气",
      "parameters": {
          "type": "object",
          "properties": {
              "location": {
                  "type": "string",
                  "description": "城市和州,例如:San Francisco, CA",
              },
              "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
          },
          "required": ["location"],
      },
  }
]

messages = [{"role": "user", "content": "今天北京的天气怎么样?"}]

response = openai.chat.completions.create(
    model="gemini-2.0-flash",
    messages=messages,
    functions=functions,
    function_call="auto",  # 或 "none" 或 {"name": "my_function"}
)

response_message = response.choices[0].message

# 检查模型是否决定调用函数
if response_message.function_call:
    function_name = response_message.function_call.name
    function_args = json.loads(response_message.function_call.arguments)

    # 调用函数
    if function_name == "get_current_weather":
        function_response = get_current_weather(
            location=function_args.get("location"),
            unit=function_args.get("unit"),
        )

        # 将函数调用结果添加到消息中
        messages.append(response_message)
        messages.append(
            {
                "role": "function",
                "name": function_name,
                "content": function_response,
            }
        )

        # 再次调用 API,让模型根据函数调用结果生成最终回复
        second_response = openai.chat.completions.create(
            model="gemini-2.0-flash",
            messages=messages,
        )
        print(second_response.choices[0].message.content)

else:
    print(response_message.content)

3.5 提示工程:与 AI 高效沟通

提示工程是设计输入提示以优化模型输出的技巧。

核心原则:

  • 明确具体:清晰描述任务和格式。

  • 提供上下文:包含背景信息。

  • 设定角色:如“You are a professional writer”。

  • 逐步引导:分解复杂任务。

  • 提供示例:使用少样本学习。

  • 迭代优化:调整提示以优化结果。

示例:

我要编写一个儿童智能手表宣传文案

差的提示:请对这个进行补充

  • 问题分析:表述模糊,未说明补充对象、补充要求及预期结果,AI 无法明确具体需求。

好的提示:

请对以下这段关于儿童智能手表的 200 字宣传文案进行补充。这款手表主要面向 6-12 岁儿童,主打安全定位和即时通讯功能。目前家长对产品的功能细节和使用价值了解不足。请你以专业的母婴产品文案策划师的身份,先详细说明安全定位功能如何通过多重卫星定位和 AI 算法实现精准定位,在孩子走失时能快速找到;再阐述即时通讯功能的特色,如语音通话的清晰程度、是否支持语音转文字等。将文案扩充到 800 字左右,采用 “总 – 分 – 总” 结构,开头点明产品能解决家长对孩子安全和沟通的担忧,中间分点介绍功能,结尾总结产品对孩子成长和家长生活带来的便利。例如之前撰写的儿童智能水杯文案,开篇强调家长对孩子饮水健康的关注,中间详细介绍水杯的保温、提醒喝水等功能,最后总结产品如何帮助孩子养成良好饮水习惯,你可以参照这个逻辑和风格。如果首次生成的内容不够生动或重点不突出,我会进一步调整提示,优化结果。

  1. 明确具体:明确指出需补充的是「一段关于儿童智能手表的宣传文案」,要求扩充至「800 字左右」,并规定采用「“总 – 分 – 总” 结构」。
  2. 提供上下文:说明产品面向「6-12 岁儿童」,主打「安全定位和即时通讯功能」,当前痛点是「家长对功能细节和使用价值了解不足」 。
  3. 设定角色:指定 AI 以「专业的母婴产品文案策划师」身份进行创作。
  4. 逐步引导:将任务拆解为「说明安全定位功能实现原理及价值」和「阐述即时通讯功能特色」两部分。
  5. 提供示例:给出「儿童智能水杯文案」的逻辑和风格作为参考。
  6. 迭代优化:若输出未达预期,根据结果调整提示关键词、补充细节或修改结构要求 。

5. 常见问题解答(FAQ)

问题

解答

第三方平台是否安全可靠?

平台采用多重加密,保障数据和密钥安全,已服务数千开发者。

第三方平台是否收费?

提供免费试用和多种付费套餐,详情见 PoloAPI 官网。

如何选择合适的 Gemini 模型?

gemini-2.5-flash 适合快速任务,gemini-2.5-pro 适合复杂任务。

如何提高模型输出质量?

优化提示,调整 temperature 和 top_p,使用流式传输或工具调用。

Gemini API 有哪些限制?

请求频率和 token 数量有限制,详见 Google 文档。

如何处理 API 调用错误?

检查密钥、模型名称和参数,参考第三方平台或 Google 文档。

如何在国内使用 Gemini API?

使用第三方平台(如 PoloAPI)解决网络和支付问题,调用方式与官方一致。

6. 结语:开启你的 AI 探索之旅

通过本指南,你已掌握 Gemini API 的核心知识和实战技巧。借助第三方平台,国内开发者可轻松访问 Google 的尖端 AI 技术。立即将 Gemini API 集成到你的项目中,构建智能应用、自动化流程或创意工具,释放无限可能!

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容