utilization Gemini Series models can quickly test the API by running the cURL command:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=GEMINI_API_KEY" \ -H 'Content-Type: application/json' \ -X POST \ -d '{ "contents": [{ "parts":[{"text": "Explain how AI works"}] }] }'
Gemini API Not the same format as OpenAI, but Gemini has introduced the OpenAI Compatible FormatsThe
You can access Gemini models using the OpenAI libraries (Python and TypeScript/JavaScript) as well as the REST API by updating three lines of code and using the Gemini API key.
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-1.5-flash",
model="gemini-1.5-flash", n=1,
messages=[
{"role": "system", "content": "You are a helpful assistant."}, {"role": "system", "content": "You are a helpful assistant."}, }
{
"role": "user", "content": "You are a helpful assistant."}, {
"content": "Explain to me how AI works."
}
]
)
print(response.choices[0].message)
Gemini API Support for Streaming Responses
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-1.5-flash",
messages=[
{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello": "You are a helpful assistant.
{"role": "user", "content": "Hello!"}
], stream=True
stream=True
)
for chunk in response.
print(chunk.choices[0].delta)
call function
With function calls, you can more easily obtain structured data output from generative models, andThe Gemini API supports function callsThe
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
tools = [
{
"type": "function", "function": {
"function": {
"name": "get_weather", "description": "Get the weather in a given location", "function": {
"parameters": {
"properties": {
"location": {
"type": "string", "description": "The city and state, e.g.
"description": "The city and state, e.g. Chicago, IL", }
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}, }
}, "required".
}, }
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Chicago today?"}]
response = client.chat.completions.create(
model="gemini-1.5-flash",
messages=messages,
tools=tools, tool_choice="auto", "auto", "auto", "auto")
tool_choice="auto"
)
print(response)
Picture comprehension
The Gemini model is the native multimodal model in theMany common visual tasksAll of them provide excellent performance.
import base64
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Function to encode the image
def encode_image(image_path): with open(image_path, "image_path").
with open(image_path, "rb") as image_file: return base64.
return base64.b64encode(image_file.read()).decode('utf-8')
# Getting the base64 string
base64_image = encode_image("Path/to/agi/image.jpeg")
response = client.chat.completions.create(
model="gemini-1.5-flash",
messages=[
{
"role": "user", "content": [
"content": [
{
"type": "text", "text": "What is in this image?
"text": "What is in this image?
},
{
"type": "image_url", "image_url": {
"image_url": {
"url": f "data:image/jpeg;base64,{base64_image}"
},
}
], }
}
], )
)
print(response.choices[0])
Structured Output
Gemini models can be modeled asAny structure you defineOutputs a JSON object.
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
class CalendarEvent(BaseModel).
name: str
date: str
participants: list[str]
completion = client.beta.chat.completions.parse(
completion = client.beta.chat.completions.parse( model="gemini-1.5-flash",
messages=[
{"role": "system", "content": "Extract the event information."}, {"role": "user", "content": "Extract the event information.
{"role": "user", "content": "John and Susan are going to an AI conference on Friday."}, ], {"role": "user", "content": "John and Susan are going to an AI conference on Friday."}, }
],, response_format=Calendar.
response_format=CalendarEvent.
)
print(completion.choices[0].message.parsed)
Embeddings
Text embedding measures the relevance of a text string and can be used with the Gemini API Generate.
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.embeddings.create(
input="Your text string goes here", model="text-embedding.create(
model="text-embedding-004"
)
print(response.data[0].embedding)