OpenAI 라이브러리와 함께 Gemini 사용

Susan Sarandon
풀어 주다: 2024-11-18 04:58:01
원래의
925명이 탐색했습니다.

Using Gemini with the OpenAI Library

이 기사를 바탕으로 이제 OpenAI 라이브러리에서 Gemini를 사용할 수 있습니다. 그래서 이번 글에서 한번 시도해 보기로 했습니다

현재는 Chat Completion API와 Embedding 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. 
로그인 후 복사

콘텐츠 필드에서 문자열 또는 '유형': '텍스트'를 지정할 수 있습니다.

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'}}]
로그인 후 복사

현재는 텍스트 입력만 지원되나, 향후에는 이미지 및 오디오 입력도 가능할 것으로 보입니다.

자바스크립트

자바스크립트 샘플 코드를 살펴보겠습니다.

먼저 환경을 설정해 보겠습니다.

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를 사용하면 대화 기록 편집이 더 쉬워져서 만족스럽습니다.

위 내용은 OpenAI 라이브러리와 함께 Gemini 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿