Maison > développement back-end > Tutoriel Python > Utiliser Gemini avec la bibliothèque OpenAI

Utiliser Gemini avec la bibliothèque OpenAI

Susan Sarandon
Libérer: 2024-11-18 04:58:01
original
988 Les gens l'ont consulté

Using Gemini with the OpenAI Library

Sur la base de cet article, nous pouvons désormais utiliser Gemini avec la bibliothèque OpenAI. J'ai donc décidé de l'essayer dans cet article

Actuellement, seules l'API de complétion de chat et l'API d'intégration sont disponibles.

Dans cet article, j'ai essayé d'utiliser à la fois Python et JavaScript.

Python

Tout d’abord, configurons l’environnement.

pip install openai python-dotenv
Copier après la connexion

Ensuite, exécutons le code suivant.

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)
Copier après la connexion

La réponse suivante a été renvoyée.

AI mimics human intelligence by learning patterns from data, using algorithms to solve problems and make decisions. 
Copier après la connexion

Dans le champ de contenu, vous pouvez spécifier soit une chaîne, soit un '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)
Copier après la connexion

Cependant, des erreurs se sont produites avec les entrées image et audio.

Exemple de code pour la saisie d'image

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)
Copier après la connexion

Exemple de code pour l'entrée 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)
Copier après la connexion

La réponse d'erreur suivante a été renvoyée.

openai.BadRequestError: Error code: 400 - [{'error': {'code': 400, 'message': 'Request contains an invalid argument.', 'status': 'INVALID_ARGUMENT'}}]
Copier après la connexion

Actuellement, seule la saisie de texte est prise en charge, mais il semble que les entrées d'image et audio seront disponibles à l'avenir.

Javascript

Jetons un coup d'œil à l'exemple de code JavaScript.

Tout d’abord, configurons l’environnement.

npm init -y
npm install openai
npm pkg set type=module
Copier après la connexion

Ensuite, exécutons le code suivant.

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);
Copier après la connexion

Lors de l'exécution du code, assurez-vous d'inclure la clé API dans le fichier .env. Le fichier .env sera chargé au moment de l'exécution.

node --env-file=.env run.js
Copier après la connexion

La réponse suivante a été renvoyée.

AI systems learn from data, identify patterns, and make predictions or decisions based on those patterns.
Copier après la connexion

C'est génial de pouvoir utiliser d'autres modèles au sein de la même bibliothèque.

Personnellement, j'en suis content car OpenAI facilite la modification de l'historique des conversations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal