fazer uso de Gêmeos Os modelos de série podem testar rapidamente a API executando o comando 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 Não é o mesmo formato do OpenAI, mas a Gemini introduziu o formato Formatos compatíveis com OpenAI.
Você pode acessar os modelos Gemini usando as bibliotecas OpenAI (Python e TypeScript/JavaScript), bem como a API REST, atualizando três linhas de código e usando a chave da API Gemini.
Python
from openai import OpenAI
cliente = 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": "Explique-me como funciona a IA".
}
]
)
print(response.choices[0].message)
Suporte da API Gemini para respostas de streaming
from openai import OpenAI
cliente = 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!"}
}, {"role": "user", "content": "Hello!
stream=True
)
for chunk in response.
print(chunk.choices[0].delta)
função de chamada
Com as chamadas de função, você pode obter mais facilmente a saída de dados estruturados de modelos generativos eA API do Gemini suporta chamadas de função.
from openai import OpenAI
cliente = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
ferramentas = [
{
"type": "function", "function": {
"function": {
"name": "get_weather", "description": "Obter o clima em um determinado local", "function": {
"parameters": {
"properties": {
"location": {
"type": "string", "description": "A cidade e o estado, por exemplo, Chicago, IL", }
"description": "A cidade e o estado, por exemplo, Chicago, IL", }
}, "unit": { "type": { "string", "description": "The city and state, e.g. Chicago, IL", }
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}, }
}, "required": ["location": ["celsius", "fahrenheit"]}, }
}, }
}
}
]
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", "auto")
tool_choice="auto"
)
print(response)
Compreensão de imagens
O modelo Gemini é o modelo multimodal nativo doMuitas tarefas visuais comunsTodos eles oferecem excelente desempenho.
importar base64
from openai import OpenAI
cliente = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
Função # para codificar a imagem
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')
# Obtendo a cadeia de caracteres base64
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": "O que há nesta imagem?
}, { "content".
{
"type": "image_url", "image_url": {
"image_url": {
"url": f "data:image/jpeg;base64,{base64_image}"
},
}
], }
}
], )
)
print(response.choices[0])
Saída estruturada
Os modelos Gemini podem ser modelados comoQualquer estrutura que você definirObjeto JSON de saída.
from pydantic import BaseModel
de openai import OpenAI
cliente = OpenAI(
api_key="GEMINI_API_KEY", base_url="
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": "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
A incorporação de texto mede a relevância de uma string de texto e pode ser usada com a função API Gemini Gerar.
from openai import OpenAI
cliente = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.embeddings.create(
input="Sua string de texto vai aqui", model="text-embedding.create(
model="text-embedding-004"
)
print(response.data[0].embedding)