利用する ジェミニ シリーズモデルは、cURLコマンドを実行することで、APIを素早くテストすることができる:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=GEMINI_API_KEY" ˶ˆ꒳ˆ˵ H 'Content-Type: application/json' ╱ -X POST -X POST -d '{ 「コンテンツ": [{ "parts":[{"text": "AIの仕組みを説明する"}]. }] }'
ジェミニAPI OpenAIと同じフォーマットではないが、ジェミニが導入したのは OpenAI対応フォーマット.
3行のコードを更新し、Gemini APIキーを使用することで、REST APIだけでなく、OpenAIライブラリ(Python、TypeScript/JavaScript)を使用してGeminiモデルにアクセスすることができます。
パイソン
from openai import OpenAI
クライアント = OpenAI(
api_key="GEMINI_API_KEY", base_url="
ベース_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": "あなたは親切なアシスタントです。"}, {"role": "system", "content": "あなたは親切なアシスタントです。"}, }。
{
"role": "user", "content": "あなたは親切なアシスタントです。" }, {
"content": "AIの仕組みを説明してください。"
}
]
)
print(response.choices[0].message)
ストリーミング応答のGemini APIサポート
from openai import OpenAI
クライアント = OpenAI(
api_key="GEMINI_API_KEY", base_url="
ベース_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-1.5-flash"、
messages=[
{"role": "system", "content": "あなたは親切なアシスタントです。"}, {"role": "user", "content": "Hello": "あなたは親切なアシスタントです。
{ "role": "user", "content": "こんにちは!"}, { "role": "user", "content": "こんにちは。
}, {"role": "user", "content": "こんにちは!
stream=True
)
for chunk in response.
print(chunk.choices[0].delta)
コール機能
関数コールを使用すると、生成モデルから構造化されたデータ出力をより簡単に取得できます。Gemini APIは関数コールをサポートしています。.
from openai import OpenAI
クライアント = OpenAI(
api_key="GEMINI_API_KEY", base_url="
ベース_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
ツール = [
{
"タイプ": "function", "function": {
「function": {
「name": "get_weather", "description": "指定された場所の天気を取得", "function": {
「パラメータ": {
「プロパティ": {
「location": {
"type": "string", "description": "都市と州。
「description": "都市と州、例:イリノイ州シカゴ", }。
}, "unit": { "type": { "string", "description": "市と州、例:イリノイ州シカゴ", }.
"単位": { "type": "string", "enum": ["celsius", "fahrenheit"]}, }。
}, "required": ["location": ["celsius", "fahrenheit"]}, }.
}, }
}
}
]
messages = [{"role": "user", "content": "今日のシカゴの天気はどうですか?" }].
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)
画像理解
ジェミニ・モデルは、このモデルにおけるネイティブのマルチモーダル・モデルである。多くの一般的なビジュアル・タスクいずれも優れたパフォーマンスを発揮する。
base64 のインポート
from openai import OpenAI
クライアント = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# 画像をエンコードする関数
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')
# base64文字列の取得
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": "この画像には何が写っていますか?
「text": "この画像には何が写っていますか?
}, { "content".
{
「タイプ": "image_url", "image_url": {
「image_url": {
"url": f "data:image/jpeg;base64,{base64_image}".
},
}
], }
}
], )
)
print(response.choices[0])
構造化出力
ジェミニのモデルは次のようにモデル化できる。あなたが定義した構造体JSONオブジェクトを出力する。
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY", base_url="
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
class CalendarEvent(BaseModel).
name: str
日付: str
参加者: list[str]
completion = client.beta.chat.completions.parse(
model="gemini-1.5-flash"、
messages=[
{"role": "system", "content": "イベント情報を抽出します。"}, {"role": "user", "content": "イベント情報を抽出します。
{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)
埋め込み
テキスト埋め込みは、テキスト文字列の関連性を測定する。 ジェミニAPI 生成する。
from openai import OpenAI
クライアント = OpenAI(
api_key="GEMINI_API_KEY", base_url="
ベース_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)