การเริ่มต้นใช้งาน

คู่มือนี้จะช่วยให้คุณเริ่มต้นใช้งาน API generateContent เวอร์ชันเดิม สำหรับโปรเจ็กต์และแอปพลิเคชันใหม่ เราขอแนะนำเป็นอย่างยิ่งให้ใช้ Interactions API ใหม่แทน ซึ่งมีอินเทอร์เฟซที่เรียบง่ายสำหรับเวิร์กโฟลว์ของเอเจนต์และโมเดลล่าสุด

การเริ่มต้นอย่างรวดเร็วนี้จะแสดงวิธีติดตั้งไลบรารีของเราและส่งคำขอแรก สตรีมคำตอบ สร้างการสนทนาแบบหลายรอบ และใช้เครื่องมือโดยใช้วิธีgenerateContent มาตรฐาน

รับคีย์ API

หากต้องการใช้ Gemini API คุณต้องมีคีย์ API เพื่อตรวจสอบสิทธิ์คำขอ บังคับใช้ขีดจำกัดด้านความปลอดภัย และติดตามการใช้งานในบัญชี

  • Google AI Studio จะสร้างโปรเจ็กต์และคีย์ API ให้กับผู้ใช้ใหม่โดยอัตโนมัติ คุณคัดลอกได้จากหน้าคีย์ API
  • หากต้องการคีย์ใหม่ ให้คลิกสร้างคีย์ API ใน AI Studio แล้วทำตาม กล่องโต้ตอบเพื่อเพิ่มคู่คีย์-โปรเจ็กต์ใหม่

สร้างคีย์ Gemini API

ตั้งค่าคีย์เป็นตัวแปรสภาพแวดล้อม

export GEMINI_API_KEY="YOUR_API_KEY"

อัปเกรดเป็นระดับแบบชำระเงิน

การอัปเกรดเป็นระดับแบบชำระเงินจะเพิ่มการจำกัดอัตราคำขอและต้องตั้งค่าการเรียกเก็บเงินใน Cloud

  • คลิกตั้งค่าการเรียกเก็บเงินในหน้าคีย์ API หรือโปรเจ็กต์ของ AI Studio
  • ทำตามกล่องโต้ตอบการเรียกเก็บเงินใน Cloud เพื่อสร้างหรือลิงก์บัญชีสำหรับการเรียกเก็บเงิน เพิ่ม วิธีการชำระเงิน และชำระเงินล่วงหน้าอย่างน้อย $10 (หรือเทียบเท่าในสกุลเงินอื่น) ใน เครดิตที่ชำระเงินแล้ว
  • ดูการใช้งาน API ใน Google AI Studio ในส่วนแดชบอร์ด > การใช้งาน

ดูข้อมูลเพิ่มเติมได้ที่หน้าการเรียกเก็บเงิน

ติดตั้ง Google GenAI SDK

Python

ใช้ Python 3.9 ขึ้นไป เพื่อติดตั้งแพ็กเกจgoogle-genai โดยใช้คำสั่ง pip ต่อไปนี้

pip install -q -U google-genai

JavaScript

หากใช้ Node.js v18 ขึ้นไป ให้ติดตั้ง Google Gen AI SDK สำหรับ TypeScript และ JavaScript โดยใช้คำสั่ง npm ต่อไปนี้

npm install @google/genai

สร้างข้อความ

ใช้เมธอด models.generate_content เพื่อสร้างการตอบกลับเป็นข้อความ

Python

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Explain how AI works in a few words"
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Explain how AI works in a few words",
  });

  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {
        "parts": [
          {
            "text": "Explain how AI works in a few words"
          }
        ]
      }
    ]
  }'

สตรีมคำตอบ

โดยค่าเริ่มต้น โมเดลจะแสดงคำตอบหลังจากกระบวนการสร้าง ทั้งหมดเสร็จสมบูรณ์แล้วเท่านั้น หากต้องการประสบการณ์การใช้งานที่รวดเร็วและโต้ตอบได้มากขึ้น คุณสามารถสตรีมก้อนคำตอบขณะที่ระบบ สร้างคำตอบ

Python

response = client.models.generate_content_stream(
    model="gemini-3.5-flash",
    contents="Explain how AI works in detail"
)

for chunk in response:
    print(chunk.text, end="", flush=True)

JavaScript

async function main() {
  const responseStream = await ai.models.generateContentStream({
    model: "gemini-3.5-flash",
    contents: "Explain how AI works in detail",
  });

  for await (const chunk of responseStream) {
    process.stdout.write(chunk.text);
  }
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:streamGenerateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  --no-buffer \
  -X POST \
  -d '{
    "contents": [
      {
        "parts": [
          {
            "text": "Explain how AI works in detail"
          }
        ]
      }
    ]
  }'

การสนทนาไปมา

สําหรับการสนทนาแบบหลายรอบ SDK มีchatsตัวช่วยแบบมีสถานะ เพื่อสร้างประสบการณ์แชทแบบหลายรอบ ที่จัดการประวัติการสนทนาโดยอัตโนมัติ

Python

chat = client.chats.create(model="gemini-3.5-flash")

response1 = chat.send_message("I have 2 dogs in my house.")
print("Response 1:", response1.text)

response2 = chat.send_message("How many paws are in my house?")
print("Response 2:", response2.text)

JavaScript

async function main() {
  const chat = ai.chats.create({ model: "gemini-3.5-flash" });

  let response = await chat.sendMessage({ message: "I have 2 dogs in my house." });
  console.log("Response 1:", response.text);

  response = await chat.sendMessage({ message: "How many paws are in my house?" });
  console.log("Response 2:", response.text);
}

main();

REST

# REST is stateless. You must pass the full conversation history in the request.
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "I have 2 dogs in my house."}]
      },
      {
        "role": "model",
        "parts": [{"text": "That is nice! Two dogs mean you have plenty of company."}]
      },
      {
        "role": "user",
        "parts": [{"text": "How many paws are in my house?"}]
      }
    ]
  }'

ใช้เครื่องมือ

ขยายความสามารถของโมเดลโดย อ้างอิงคำตอบด้วย Google Search เพื่อเข้าถึงเนื้อหาเว็บแบบเรียลไทม์ โมเดลจะตัดสินใจโดยอัตโนมัติว่าจะค้นหาเมื่อใด ดำเนินการค้นหา และสังเคราะห์คำตอบ

Python

from google import genai
from google.genai import types

config = types.GenerateContentConfig(
    tools=[types.Tool(google_search=types.GoogleSearch())]
)

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Who won the euro 2024?",
    config=config
)

print(response.text)

metadata = response.candidates[0].grounding_metadata
if metadata.web_search_queries:
    print("\nSearch queries executed:")
    for query in metadata.web_search_queries:
        print(f" - {query}")

if metadata.grounding_chunks:
    print("\nSources:")
    for chunk in metadata.grounding_chunks:
        print(f" - [{chunk.web.title}]({chunk.web.uri})")

JavaScript

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Who won the euro 2024?",
    config: {
      tools: [{ googleSearch: {} }]
    }
  });

  console.log(response.text);

  const metadata = response.candidates[0]?.groundingMetadata;
  if (metadata?.webSearchQueries) {
    console.log("\nSearch queries executed:");
    for (const query of metadata.webSearchQueries) {
      console.log(` - ${query}`);
    }
  }
  if (metadata?.groundingChunks) {
    console.log("\nSources:");
    for (const chunk of metadata.groundingChunks) {
      console.log(` - [${chunk.web.title}](${chunk.web.uri})`);
    }
  }
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Who won the euro 2024?"}
        ]
      }
    ],
    "tools": [
      {
        "google_search": {}
      }
    ]
  }'

นอกจากนี้ Gemini API ยังรองรับเครื่องมืออื่นๆ ที่มาพร้อมกับเครื่องมือต่อไปนี้ด้วย

  • การเรียกใช้โค้ด: ช่วยให้โมเดลเขียนและเรียกใช้โค้ด Python เพื่อแก้โจทย์คณิตศาสตร์ที่ซับซ้อนได้
  • บริบท URL: ช่วยให้คุณ อ้างอิงคำตอบจาก URL ของหน้าเว็บที่เฉพาะเจาะจงซึ่งคุณระบุ
  • การค้นหาไฟล์: ช่วยให้คุณ อัปโหลดไฟล์และอ้างอิงคำตอบในเนื้อหาของไฟล์โดยใช้การค้นหาเชิงความหมาย
  • Google Maps: ช่วยให้คุณ อ้างอิงคำตอบจากข้อมูลตำแหน่งและค้นหาสถานที่ เส้นทาง และ แผนที่
  • การใช้คอมพิวเตอร์: ช่วยให้โมเดลโต้ตอบกับหน้าจอคอมพิวเตอร์เสมือน แป้นพิมพ์ และเมาส์เพื่อทำงานต่างๆ ได้

เรียกใช้ฟังก์ชันที่กำหนดเอง

ใช้การเรียกฟังก์ชันเพื่อเชื่อมต่อโมเดลกับเครื่องมือและ API ที่กำหนดเอง โมเดลจะพิจารณาเวลาที่จะเรียกใช้ฟังก์ชันของคุณและส่งคืน functionCall ในการตอบกลับเพื่อให้แอปพลิเคชันของคุณ ดำเนินการ

ตัวอย่างนี้ประกาศฟังก์ชันอุณหภูมิจำลองและตรวจสอบว่าโมเดล ต้องการเรียกใช้ฟังก์ชันดังกล่าวหรือไม่

Python

from google import genai
from google.genai import types

weather_function = {
    "name": "get_current_temperature",
    "description": "Gets the current temperature for a given location.",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city name, e.g. San Francisco",
            },
        },
        "required": ["location"],
    },
}

tools = types.Tool(function_declarations=[weather_function])
config = types.GenerateContentConfig(tools=[tools])

contents = ["What's the temperature in London?"]

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=contents,
    config=config,
)

part = response.candidates[0].content.parts[0]
if part.function_call:
    fc = part.function_call
    print(f"Model requested function: {fc.name} with args {fc.args}")

    mock_result = {"temperature": "15C", "condition": "Cloudy"}

    contents.append(response.candidates[0].content)

    fn_response_part = types.Part.from_function_response(
        name=fc.name,
        response=mock_result,
        id=fc.id
    )
    contents.append(types.Content(role="user", parts=[fn_response_part]))

    final_response = client.models.generate_content(
        model="gemini-3.5-flash",
        contents=contents,
        config=config,
    )
    print("Final Response:", final_response.text)

JavaScript

import { GoogleGenAI, Type } from '@google/genai';

async function main() {
  const weatherFunction = {
    name: 'get_current_temperature',
    description: 'Gets the current temperature for a given location.',
    parameters: {
      type: Type.OBJECT,
      properties: {
        location: {
          type: Type.STRING,
          description: 'The city name, e.g. San Francisco',
        },
      },
      required: ['location'],
    },
  };

  const contents = [{
    role: 'user',
    parts: [{ text: "What's the temperature in London?" }]
  }];

  const response = await ai.models.generateContent({
    model: 'gemini-3.5-flash',
    contents: contents,
    config: {
      tools: [{ functionDeclarations: [weatherFunction] }],
    },
  });

  if (response.functionCalls && response.functionCalls.length > 0) {
    const fc = response.functionCalls[0];
    console.log(`Model requested function: ${fc.name}`);

    const mockResult = { temperature: "15C", condition: "Cloudy" };

    contents.push(response.candidates[0].content);

    contents.push({
      role: 'user',
      parts: [{
        functionResponse: {
          name: fc.name,
          response: mockResult,
          id: fc.id
        }
      }]
    });

    const finalResponse = await ai.models.generateContent({
      model: 'gemini-3.5-flash',
      contents: contents,
      config: {
        tools: [{ functionDeclarations: [weatherFunction] }],
      },
    });
    console.log("Final Response:", finalResponse.text);
  }
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "What'\''s the temperature in London?"}]
      }
    ],
    "tools": [
      {
        "functionDeclarations": [
          {
            "name": "get_current_temperature",
            "description": "Gets the current temperature for a given location.",
            "parameters": {
              "type": "object",
              "properties": {
                "location": {
                  "type": "string",
                  "description": "The city name, e.g. San Francisco"
                }
              },
              "required": ["location"]
            }
          }
        ]
      }
    ]
  }'

ขั้นตอนถัดไป

ตอนนี้คุณได้เริ่มต้นใช้งาน Gemini API แล้ว ลองดูคำแนะนำต่อไปนี้ เพื่อสร้างแอปพลิเคชันขั้นสูงเพิ่มเติม