DEV Community

Phil IPS
Phil IPS

Posted on

Getting Started with the Gemini API: A Practical Python Tutorial

Getting Started with the Gemini API: A Practical Python Tutorial

The Gemini API offers powerful language capabilities for building AI-driven applications. In this tutorial, you'll learn how to integrate Gemini into a Python project, send requests, and parse responses—all in under 5 minutes.

Prerequisites

  1. Python 3.8+ installed on your machine.
  2. An API key from the Gemini platform (sign up at https://gemini.example.com).

Installation

Install the requests library if you don't have it already:

pip install requests
Enter fullscreen mode Exit fullscreen mode

Setting Up Your Request

Create a new Python file, e.g., gemini_demo.py, and import the necessary modules:

import requests
import json
Enter fullscreen mode Exit fullscreen mode

Making a Request

Set your API key and define the endpoint. Then craft your prompt and send a POST request:

API_KEY = "YOUR_API_KEY_HERE"
ENDPOINT = "https://api.gemini.example.com/v1/messages"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

prompt = "Explain the theory of relativity in simple terms."
payload = {
    "messages": [
        {"role": "user", "content": prompt}
    ],
    "model": "gemini-2.0-flash"
}

response = requests.post(ENDPOINT, headers=headers, json=payload)
Enter fullscreen mode Exit fullscreen mode

Parsing the Response

If the request is successful (status code 200), parse the JSON response:

if response.status_code == 200:
    data = response.json()
    # Assuming the response contains a 'text' field in the assistant's message
    assistant_reply = data['choices'][0]['message']['content']
    print(assistant_reply)
else:
    print(f"Error: {response.status_code} - {response.text}")
Enter fullscreen mode Exit fullscreen mode

Full Example

Here's the complete script:

import requests

API_KEY = "YOUR_API_KEY_HERE"
ENDPOINT = "https://api.gemini.example.com/v1/messages"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

prompt = "Write a short poem about autumn."
payload = {
    "messages": [
        {"role": "user", "content": prompt}
    ],
    "model": "gemini-2.0-flash"
}

response = requests.post(ENDPOINT, headers=headers, json=payload)

if response.status_code == 200:
    data = response.json()
    print(data['choices'][0]['message']['content'])
else:
    print(f"Failed with status {response.status_code}: {response.text}")
Enter fullscreen mode Exit fullscreen mode

Tips & Best Practices

  • Rate Limiting: Respect the API's rate limits to avoid being blocked.
  • Error Handling: Implement retries for transient errors (e.g., network issues).
  • Prompt Engineering: Experiment with different prompts to get the desired output.

Conclusion

Integrating the Gemini API into Python is straightforward. By following these steps, you can quickly prototype AI-enhanced applications. Feel free to explore additional parameters like temperature, max tokens, and more to tailor the model's behavior.

Happy coding!

Top comments (0)