Rumah >pembangunan bahagian belakang >Tutorial Python >Menggunakan Gemini dengan Perpustakaan OpenAI

Menggunakan Gemini dengan Perpustakaan OpenAI

Susan Sarandon
Susan Sarandonasal
2024-11-18 04:58:01998semak imbas

Using Gemini with the OpenAI Library

Berdasarkan artikel ini, kami kini boleh menggunakan Gemini dengan Perpustakaan OpenAI. Jadi, saya memutuskan untuk mencubanya dalam artikel ini

Pada masa ini, hanya API Penyiapan Sembang dan API Pembenaman tersedia.

Dalam artikel ini, saya cuba menggunakan Python dan JavaScript.

Ular sawa

Pertama, mari kita sediakan persekitaran.

pip install openai python-dotenv

Seterusnya, mari jalankan kod berikut.

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)

Respons berikut telah dikembalikan.

AI mimics human intelligence by learning patterns from data, using algorithms to solve problems and make decisions. 

Dalam medan kandungan, anda boleh menentukan sama ada rentetan atau 'jenis': 'teks'.

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)

Walau bagaimanapun, ralat berlaku dengan input imej dan audio.

Kod contoh untuk input imej

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)

Kod contoh untuk input audio

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)

Respons ralat berikut telah dikembalikan.

openai.BadRequestError: Error code: 400 - [{'error': {'code': 400, 'message': 'Request contains an invalid argument.', 'status': 'INVALID_ARGUMENT'}}]

Pada masa ini, hanya input teks yang disokong, tetapi nampaknya input imej dan audio akan tersedia pada masa hadapan.

JavaScript

Mari kita lihat contoh kod JavaScript.

Pertama, mari kita sediakan persekitaran.

npm init -y
npm install openai
npm pkg set type=module

Seterusnya, mari jalankan kod berikut.

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);

Apabila menjalankan kod, pastikan anda memasukkan kunci API dalam fail .env. Fail .env akan dimuatkan pada masa jalan.

node --env-file=.env run.js

Respons berikut telah dikembalikan.

AI systems learn from data, identify patterns, and make predictions or decisions based on those patterns.

Sangat bagus kerana kami boleh menggunakan model lain dalam perpustakaan yang sama.

Secara peribadi, saya gembira tentang perkara ini kerana OpenAI memudahkan untuk mengedit sejarah perbualan.

Atas ialah kandungan terperinci Menggunakan Gemini dengan Perpustakaan OpenAI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn