L'API du modèle Gemini est-elle compatible avec le format OpenAI ?

Réponses AIMise à jour il y a 7 mois Cercle de partage de l'IA
2.2K 00

utiliser Gémeaux Les modèles de série peuvent rapidement tester l'API en exécutant la commande cURL :

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"}]
}]
}'

 

API Gemini Le format n'est pas le même que celui d'OpenAI, mais Gemini a introduit le format Formats compatibles avec OpenAI.

Vous pouvez accéder aux modèles Gemini en utilisant les bibliothèques OpenAI (Python et TypeScript/JavaScript) ainsi que l'API REST en mettant à jour trois lignes de code et en utilisant la clé API Gemini.

Python

from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-1.5-flash",
n=1,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{
"role": "user",
"content": "Explain to me how AI works"
}
]
)
print(response.choices[0].message)

 

Prise en charge des réponses en continu par l'API Gemini

from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
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!"}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta)

 

fonction d'appel

Les appels de fonction permettent d'obtenir plus facilement des données structurées à partir de modèles génératifs, etL'API Gemini prend en charge les appels de fonction.

from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. Chicago, IL",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
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"
)
print(response)

 

Compréhension des images

Le modèle Gemini est le modèle multimodal natif de l'Union européenne.De nombreuses tâches visuelles courantesTous ces produits offrent d'excellentes performances.

import base64
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Function to encode the image
def encode_image(image_path):
with open(image_path, "rb") as image_file:
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": [
{
"type": "text",
"text": "What is in this image?",
},
{
"type": "image_url",
"image_url": {
"url":  f"data:image/jpeg;base64,{base64_image}"
},
},
],
}
],
)
print(response.choices[0])

 

Sortie structurée

Les modèles Gemini peuvent être modélisés comme suitToute structure que vous définissezSortie d'un objet JSON.

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(
model="gemini-1.5-flash",
messages=[
{"role": "system", "content": "Extract the event information."},
{"role": "user", "content": "John and Susan are going to an AI conference on Friday."},
],
response_format=CalendarEvent,
)
print(completion.choices[0].message.parsed)

 

Emboîtements

L'intégration de texte mesure la pertinence d'une chaîne de texte et peut être utilisée avec la fonction API Gemini Générer.

from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.embeddings.create(
input="Your text string goes here",
model="text-embedding-004"
)
print(response.data[0].embedding)
© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...