Featured image of post 使用 Gemini 1.5 Pro 的海量上下文長度建立應用程式Featured image of post 使用 Gemini 1.5 Pro 的海量上下文長度建立應用程式

使用 Gemini 1.5 Pro 的海量上下文長度建立應用程式

在 Node Web 包裝器中利用 Gemini 1.5 Pro 廣泛的數百萬個令牌輸入參數的強大功能。

上下文視窗革命

Gemini 1.5 Pro 透過提供高達200 萬個令牌的上下文窗口,重新定義了大型語言模型的可能性。這意味著您可以在單一請求中傳遞整個程式碼庫、數小時的影片或數千頁文件——從根本上改變我們與人工智慧互動的方式。

了解Gemini 1.5 Pro的功能

特色能力
上下文視窗高達 2M 代幣(1M 標準)
輸入方式文字、圖片、音訊、影片、程式碼
輸出文字、程式碼、結構化資料
最大輸出令牌8,192
語言100 多種語言
定價(輸入)每 100 萬個代幣 1.25-10.00 美元
定價(輸出)每 100 萬個代幣 10.00-40.00 美元

多模式輸入處理

Gemini 1.5 Pro 在單一請求中本機處理多種模式。您可以無縫組合文字、圖像、音訊和視訊:

import { GoogleGenerativeAI } from "@google/generative-ai";

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-pro" });

// Multimodal request with text, image, and audio
const result = await model.generateContent([
  "Analyze this presentation recording and provide feedback:",
  { inlineData: { mimeType: "image/png", data: slideImageBase64 } },
  { inlineData: { mimeType: "audio/mpeg", data: narrationBase64 } },
]);

Node.js SDK 設定

適用於 JavaScript 的官方 Google AI SDK 簡化了整合:

npm install @google/generative-ai
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({
  model: "gemini-1.5-pro",
  systemInstruction: "You are an expert code reviewer.",
});

async function reviewCode(code) {
  const result = await model.generateContent(code);
  return result.response.text();
}

串流回應

對於即時應用程序,串流提供低延遲輸出:

const streamingResult = await model.generateContentStream(prompt);

for await (const chunk of streamingResult.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}

System Instructions

System instructions let you define the model’s behavior globally:

const model = genAI.getGenerativeModel({
  model: "gemini-1.5-pro",
  systemInstruction: `
    You are a senior TypeScript developer.
    Always provide type-safe code examples.
    Include JSDoc comments for all functions.
    Prefer functional programming patterns.
  `,
});

函數呼叫

函數呼叫支援結構化資料擷取和外部工具使用:

const model = genAI.getGenerativeModel({
  model: "gemini-1.5-pro",
  tools: {
    functionDeclarations: [{
      name: "searchDocs",
      parameters: {
        type: "object",
        properties: {
          query: { type: "string" },
          maxResults: { type: "number" },
        },
      },
    }],
  },
});

使用案例

巨大的上下文視窗支援新穎的應用程式:

  1. 完整的程式碼庫分析:透過整個儲存庫進行架構審查
  2. 視訊內容理解:分析會議摘要的錄製時間
  3. 長文檔問答:查詢數千頁文件或法律合同
  4. 多文件代碼生成:使用上下文生成整個功能實現
  5. 音訊轉錄與分析:一次將轉錄與語意理解結合起來

定價考慮因素

在上下文視窗較大的情況下,令牌使用量會快速增加。管理成本的策略:

  • 分塊:策略性地分割大量輸入
  • 快取:快取相同查詢的回應
  • Prompt optimization: Minimize token usage in system instructions
  • 批次:聚合相似的請求

結論

Gemini 1.5 Pro 的龐大上下文視窗從根本上擴展了法學碩士在應用程式中的可能性。透過多模式輸入處理數百萬個令牌上下文的能力使得新型人工智慧驅動的工具能夠在一次傳遞中對整個程式碼庫、庫或媒體集合進行推理。