AIパーソナル・ラーニング
と実践的なガイダンス

GeminiモデルAPIはOpenAIフォーマットと互換性がありますか?

利用する ジェミニ シリーズモデルは、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)
無断転載を禁じます:チーフAIシェアリングサークル " GeminiモデルAPIはOpenAIフォーマットと互換性がありますか?

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語