从 Gemini 到 Vertex AI:js-genai 跨平台开发指南 📅 发布时间:2026/7/15 21:21:11 👁️ 浏览次数: 从 Gemini 到 Vertex AIjs-genai 跨平台开发指南【免费下载链接】js-genaiTypeScript/JavaScript SDK for Gemini and Vertex. [EXPERIMENTAL]项目地址: https://gitcode.com/gh_mirrors/js/js-genaiGoogle Gen AI JavaScript SDKjs-genai是面向 TypeScript 和 JavaScript 开发者的终极工具可轻松构建由 Gemini 驱动的跨平台应用。该 SDK 同时支持 Gemini 开发者 API 和 Vertex AI 平台让你能够灵活选择最适合项目需求的 AI 服务。本文将带你快速掌握 js-genai 的核心功能、安装步骤和实战应用助你在前端和后端环境中无缝集成强大的生成式 AI 能力。 为什么选择 js-genaijs-genai 作为 Google 官方推出的 SDK具有以下显著优势双平台支持同时兼容 Gemini 开发者 API 和 Vertex AI满足不同场景需求全栈覆盖完美支持 Node.js 后端和浏览器前端开发TypeScript 原生提供完整类型定义提升开发体验和代码质量丰富功能集支持内容生成、函数调用、文件管理、实时交互等高级特性持续更新优先支持 Gemini 2.0 最新功能保持技术领先性 快速安装指南系统要求Node.js 20 或更高版本推荐使用最新 LTS 版本基础安装命令npm install google/genai⚠️ 注意对于 Vertex AI 用户还需完成额外配置步骤包括启用 Vertex AI API、配置身份验证等详细说明参见 Prerequisites 初始化与认证Gemini 开发者 API 初始化最简便的方式是使用从 Google AI Studio 获取的 API 密钥import { GoogleGenAI } from google/genai; const ai new GoogleGenAI({ apiKey: YOUR_GEMINI_API_KEY });Vertex AI 初始化对于企业级应用推荐使用 Vertex AIimport { GoogleGenAI } from google/genai; const ai new GoogleGenAI({ vertexai: true, project: your_project_id, location: your_location, // 例如us-central1 });环境变量配置Node.js 专用为提高安全性和配置灵活性可通过环境变量进行配置Gemini 开发者 APIexport GOOGLE_API_KEYyour-api-keyVertex AIexport GOOGLE_GENAI_USE_VERTEXAItrue export GOOGLE_CLOUD_PROJECTyour-project-id export GOOGLE_CLOUD_LOCATIONus-central1然后在代码中直接初始化import { GoogleGenAI } from google/genai; const ai new GoogleGenAI(); // 自动从环境变量读取配置 核心功能与使用示例1. 文本内容生成生成文本是最基础也最常用的功能async function generateText() { const response await ai.models.generateContent({ model: gemini-2.5-flash, contents: 为什么天空是蓝色的, }); console.log(response.text); }2. 流式内容生成对于需要实时反馈的场景流式生成是理想选择async function streamGenerateText() { const response await ai.models.generateContentStream({ model: gemini-2.5-flash, contents: 写一首关于人工智能的100字诗歌。, }); for await (const chunk of response) { process.stdout.write(chunk.text); // 逐段输出结果 } }3. 函数调用功能js-genai 支持让模型调用外部函数实现与外部系统的交互async function functionCallingExample() { // 1. 定义函数声明 const controlLightDeclaration { name: controlLight, parametersJsonSchema: { type: object, properties: { brightness: { type: number }, colorTemperature: { type: string }, }, required: [brightness, colorTemperature], }, }; // 2. 调用模型并启用函数调用 const response await ai.models.generateContent({ model: gemini-2.5-flash, contents: 把灯光调暗让房间感觉舒适温暖。, config: { toolConfig: { functionCallingConfig: { mode: ANY, // 强制模型调用函数 allowedFunctionNames: [controlLight], } }, tools: [{ functionDeclarations: [controlLightDeclaration] }] } }); // 3. 解析函数调用结果并执行相应操作 console.log(response.functionCalls); }4. 高级交互功能预览Interactions API 提供了统一的接口简化状态管理和工具编排async function interactionExample() { // 创建一个基本交互 const interaction await ai.interactions.create({ model: gemini-2.5-flash, input: 你好我叫小明。, }); // 继续之前的对话 const followUpInteraction await ai.interactions.create({ model: gemini-2.5-flash, input: 我叫什么名字, previous_interaction_id: interaction.id, }); console.log(followUpInteraction.outputs[0].text); // 应输出小明 } 项目结构与核心模块js-genai 的核心功能通过以下主要模块提供ai.models用于查询模型、生成内容、生成图像等ai.caches创建和管理缓存减少重复使用大型提示前缀的成本ai.chats创建本地有状态聊天对象简化多轮交互ai.files上传文件到 API 并在提示中引用ai.live启动实时交互会话支持文本、音频、视频输入和输出完整的 API 文档可在 docs/ 目录中找到包含所有类、接口和函数的详细说明。 更多资源示例代码项目中的 sdk-samples/ 目录包含丰富的示例覆盖各种使用场景API 参考详细的 API 文档可在 api-report/ 目录中查看代码生成指南参考 codegen_instructions.md 获取使用 AI 生成 SDK 代码的最佳实践️ 安全最佳实践API 密钥安全避免在客户端代码中暴露 API 密钥生产环境应使用服务器端实现输入验证始终验证和清理用户输入防止注入攻击错误处理使用 SDK 提供的 ApiError 类妥善处理 API 错误 总结js-genai 为 JavaScript/TypeScript 开发者提供了一个功能强大且易于使用的接口无论是构建简单的聊天应用还是复杂的企业级 AI 解决方案都能满足需求。通过支持 Gemini 和 Vertex AI 双平台它为开发者提供了前所未有的灵活性和选择空间。立即通过以下命令开始你的 AI 开发之旅git clone https://gitcode.com/gh_mirrors/js/js-genai cd js-genai npm install探索 sdk-samples/ 目录中的示例代码快速掌握 js-genai 的强大功能构建属于你的下一代 AI 应用【免费下载链接】js-genaiTypeScript/JavaScript SDK for Gemini and Vertex. [EXPERIMENTAL]项目地址: https://gitcode.com/gh_mirrors/js/js-genai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
为什么选择bugsnag-android?5大优势让崩溃监控更简单高效 为什么选择bugsnag-android?5大优势让崩溃监控更简单高效 【免费下载链接】bugsnag-android BugSnag crash monitoring and reporting tool for Android apps 项目地址: https://gitcode.com/gh_mirrors/bu/bugsnag-android bugsnag-android是一款专为Androi… 2026/7/15 21:20:35
用Rust编写Redis模块:redis-cell的设计理念与代码架构解析 用Rust编写Redis模块:redis-cell的设计理念与代码架构解析 【免费下载链接】redis-cell A Redis module that provides rate limiting in Redis as a single command. 项目地址: https://gitcode.com/gh_mirrors/re/redis-cell redis-cell是一个基于Rust语言… 2026/7/10 6:31:36
Pillager安全吗?深入分析其数据处理机制与隐私保护措施 Pillager安全吗?深入分析其数据处理机制与隐私保护措施 【免费下载链接】Pillager Pillager是一个适用于后渗透期间的信息收集工具 项目地址: https://gitcode.com/gh_mirrors/pi/Pillager Pillager作为一款适用于后渗透期间的信息收集工具,其安全… 2026/5/17 9:30:16
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲 线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲 作者 : 乖乖数学讲次 : 第80讲 主题 : 线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转… 2026/7/15 21:19:20
技术团队如何平衡AI工具与深度技术交流:从Claude依赖到高效协作 在实际技术团队协作中,当开发者遇到复杂问题时,"去问Claude"或"让LLM解决"正在成为一种新的回避深度技术讨论的方式。这种现象背后反映的不仅是工具依赖问题,更是团队技术深度交流机制的缺失。真正高效的技术团队需要建立… 2026/7/15 21:19:20
科大讯飞开发岗高频算法题清单 科大讯飞开发岗的算法准备,建议按“AI 平台和后台系统”的思路来做。 也就是说,题目通常不会完全偏竞赛,而是更看你是否具备做平台和工程支撑所需的基础算法能力。树、堆、哈希、搜索、字符串题都很值得优先准备。 科大讯飞算法面试特点 高… 2026/7/15 21:15:18
【Java踩坑笔记】47_日期时间计算还在用SimpleDateFormat?线程不安全 47 | 日期时间计算还在用 SimpleDateFormat?线程不安全摘要:SimpleDateFormat 不是线程安全的,多线程共享一个实例会导致数据错乱甚至抛异常。Java 8 用 DateTimeFormatter(不可变,线程安全)。一、问题现象… 2026/7/15 21:15:18
【AI智能问数】全球AI问数厂商图谱:中美欧技术路线对比 鲲溟智能 AI智能问数系列 第08篇 | 2026-07-12 3 大技术路线 20 全球主要厂商 中国 行业深度领先 RAG 核心技术分水岭 全球AI问数市场正在形成三大技术路线:美国路线(重LLMAgent)、中国路线(重RAG行业场景)、欧洲… 2026/7/15 21:13:17
行星减速机的工作原理是什么?从齿轮运动关系到减速比计算 一、行星齿轮机构的组成 标准行星齿轮机构主要包括: 太阳轮; 行星轮; 内齿圈; 行星架。 太阳轮位于机构中心。 多个行星轮围绕太阳轮均匀布置,行星轮内侧与太阳轮外啮合,外侧与内齿圈内啮合。 行星轮通过轴… 2026/7/15 0:03:00
阅读Java开源框架源码的心得分享! 前几日闲来无事有幸看到了一位博主分享自己阅读开源框架源码的心得,看了之后也引发了我的一些深度思考。我们为什么要看源码?我们该怎么样去看源码? 其中前者那位博主描述的我觉得很全了(如下图所示),就不做… 2026/7/15 0:03:00
【LINUX】驱动 【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】 2026/7/15 0:07:01
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41