gitmyhub

python-genai

Python ★ 3.8k updated 1d ago

Google Gen AI Python SDK provides an interface for developers to integrate Google's generative models into their Python applications.

This is the official Python library from Google for working with their Gemini AI models. You install it with a single pip command, add your API key, and then your Python code can send text to Gemini and get AI-generated responses back. It supports both the free Gemini Developer API (which you access with an API key from Google AI Studio) and the enterprise Vertex AI platform (which ties into Google Cloud projects).

The core of the library is a client object. You create one with your credentials, then call methods on it to generate text, work with files, start chat sessions, create AI agents, and more. The README walks through each of these capabilities with working code examples. For generating text, you pick a model name (such as gemini-2.5-flash) and pass in your prompt. The library handles sending the request to Google's servers and returning the result.

Beyond simple text generation, the library covers streaming responses (where text arrives word by word rather than all at once), multi-turn conversations, function calling (where the AI can trigger specific code in your application), image and file inputs, and building agents that can take sequences of actions. There is also an async version of every method for applications that need to handle many requests at the same time without blocking.

Setup requires choosing which API backend to use. The Gemini Developer API needs only an API key stored as an environment variable. Vertex AI needs a Google Cloud project ID and a region. Both options use the same client interface once configured, so switching between them mostly means changing the client initialization.

The README also includes guidance on features like cached content (to reduce costs when reusing the same large context), code execution, and grounding responses with Google Search. Configuration options such as temperature and safety filters are passed as typed objects from the library's types module, though plain Python dictionaries work too. The full README is longer than what was shown.