이 기사를 바탕으로 이제 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!