Gemini と OpenAI ライブラリの使用

Susan Sarandon
リリース: 2024-11-18 04:58:01
オリジナル
925 人が閲覧しました

Using Gemini with the OpenAI Library

この記事に基づいて、OpenAI ライブラリで Gemini を使用できるようになりました。そこで、この記事ではそれを試してみることにしました

現在、チャット完了 API と埋め込み API のみが利用可能です。

この記事では、Python と JavaScript の両方を使用してみました。

パイソン

まず、環境を設定しましょう。

pip install openai python-dotenv
ログイン後にコピー

次に、次のコードを実行してみましょう。

import os

from dotenv import load_dotenv
from openai import OpenAI


load_dotenv()
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")

client = OpenAI(
    api_key=GOOGLE_API_KEY,
    base_url="https://generativelanguage.googleapis.com/v1beta/"
)


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 briefly(less than 30 words) to me how AI works."
        }
    ]
)

print(response.choices[0].message.content)
ログイン後にコピー

次の応答が返されました。

AI mimics human intelligence by learning patterns from data, using algorithms to solve problems and make decisions. 
ログイン後にコピー

コンテンツフィールドでは、文字列または「type」:「text」のいずれかを指定できます。

import os

from dotenv import load_dotenv
from openai import OpenAI


load_dotenv()
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")

client = OpenAI(
    api_key=GOOGLE_API_KEY,
    base_url="https://generativelanguage.googleapis.com/v1beta/"
)

response = client.chat.completions.create(
    model="gemini-1.5-flash",
    n=1,
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Explain briefly(less than 30 words) to me how AI works.",
                },
            ]
        }
    ]
)

print(response.choices[0].message.content)
ログイン後にコピー

ただし、画像と音声の入力でエラーが発生しました。

画像入力のサンプルコード

import os

from dotenv import load_dotenv
from openai import OpenAI


load_dotenv()
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")

client = OpenAI(
    api_key=GOOGLE_API_KEY,
    base_url="https://generativelanguage.googleapis.com/v1beta/"
)

# png to base64 text
import base64
with open("test.png", "rb") as image:
    b64str = base64.b64encode(image.read()).decode("utf-8")

response = client.chat.completions.create(
    model="gemini-1.5-flash",
    # model="gpt-4o",
    n=1,
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Describe the image in the image below.",
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{b64str}"
                    }
                }
            ]
        }
    ]
)

print(response.choices[0].message.content)
ログイン後にコピー

音声入力のサンプルコード

import os

from dotenv import load_dotenv
from openai import OpenAI


load_dotenv()
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")

client = OpenAI(
    api_key=GOOGLE_API_KEY,
    base_url="https://generativelanguage.googleapis.com/v1beta/"
)

# png to base64 text
import base64
with open("test.wav", "rb") as audio:
    b64str = base64.b64encode(audio.read()).decode("utf-8")

response = client.chat.completions.create(
    model="gemini-1.5-flash",
    # model="gpt-4o-audio-preview", 
    n=1,
    modalities=["text"],
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What does he say?",
                },
                {
                    "type": "input_audio",
                    "input_audio": {
                        "data": b64str,
                        "format": "wav",
                    }
                }
            ]
        }
    ]
)

print(response.choices[0].message.content)
ログイン後にコピー

次のエラー応答が返されました。

openai.BadRequestError: Error code: 400 - [{'error': {'code': 400, 'message': 'Request contains an invalid argument.', 'status': 'INVALID_ARGUMENT'}}]
ログイン後にコピー

現在はテキスト入力のみ対応していますが、将来的には画像や音声の入力も可能になるようです。

JavaScript

JavaScript のサンプル コードを見てみましょう。

まずは環境を整えましょう。

npm init -y
npm install openai
npm pkg set type=module
ログイン後にコピー

次に、次のコードを実行してみましょう。

import OpenAI from "openai";

const GOOGLE_API_KEY = process.env.GOOGLE_API_KEY;
const openai = new OpenAI({
    apiKey: GOOGLE_API_KEY,
    baseURL: "https://generativelanguage.googleapis.com/v1beta/"
});

const response = await openai.chat.completions.create({
    model: "gemini-1.5-flash",
    messages: [
        { role: "system", content: "You are a helpful assistant." },
        {
            role: "user",
            content: "Explain briefly(less than 30 words) to me how AI works",
        },
    ],
});

console.log(response.choices[0].message.content);
ログイン後にコピー

コードを実行するときは、.env ファイルに API キーを必ず含めてください。 .env ファイルは実行時にロードされます。

node --env-file=.env run.js
ログイン後にコピー

次の応答が返されました。

AI systems learn from data, identify patterns, and make predictions or decisions based on those patterns.
ログイン後にコピー

同じライブラリ内で他のモデルを使用できるのは素晴らしいことです。

OpenAI を使用すると会話履歴の編集が簡単になるので、個人的にはこれが嬉しいです

以上がGemini と OpenAI ライブラリの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート