Gemini-Openai-Proxyは、OpenAI APIプロトコルをGoogle Geminiプロトコルに変換するために設計されたプロキシです。これにより、OpenAI API用に構築されたアプリケーションが、チャットの完了、埋め込み、モデルのエンドポイントのサポートなど、Geminiプロトコルとシームレスに通信できます。
Gemini-Openai-Proxyを構築するには、次の手順に従ってください。
go build -o gemini main.goDockerを使用してGemini-Openai-Proxyを簡単にセットアップすることをお勧めします。これらの手順に従って、Dockerで展開します。
これをコマンドラインで行うことができます。
docker run --restart=unless-stopped -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latestまたは、次のDocker-Compose構成で:
version : ' 3 '
services :
gemini :
container_name : gemini
environment : # Set Environment Variables here. Defaults listed below
- GPT_4_VISION_PREVIEW=gemini-1.5-flash-latest
- DISABLE_MODEL_MAPPING=0
ports :
- " 8080:8080 "
image : zhu327/gemini-openai-proxy:latest
restart : unless-stopped必要に応じてポートマッピング( -p 8080:8080など)を調整し、Dockerイメージバージョン( zhu327/gemini-openai-proxy:latest )が要件に合わせていることを確認します。
Gemini-Openai-Proxyは、Custom OpenaI APIエンドポイントをサポートするあらゆるアプリケーションにOpenAI機能を統合するための簡単な方法を提供します。次の手順に従って、このプロキシの機能を活用してください。
OpenAIエンドポイントのセットアップ:アプリケーションがカスタムOpenAI APIエンドポイントを使用するように構成されていることを確認します。 Gemini-Openai-Proxyは、OpenAI互換のエンドポイントとシームレスに動作します。
Google AI Studio APIキーを取得する:プロキシを使用する前に、ai.google.devからAPIキーを取得する必要があります。 Gemini-Openai-Proxyと対話するときに、このAPIキーをOpenai APIキーとして扱います。
プロキシをアプリケーションに統合します。アプリケーションのAPIリクエストを変更して、Gemini-Openai-Proxyをターゲットにし、取得したGoogle AI Studio APIキーをOpenai APIキーであるかのように提供します。
チャット完了APIリクエストの例(プロキシがhttp://localhost:8080でホストされていると仮定):
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
} 'または、Gemini Pro Visionを使用してください。
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gpt-4-vision-preview",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "What’s in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]}],
"temperature": 0.7
} ' gpt-4-vision-preview gemini-1.5-pro-latestにマッピングする場合は、環境変数GPT_4_VISION_PREVIEW = gemini-1.5-pro-latestを構成できます。これは、 gemini-1.5-pro-latestがマルチモーダルデータもサポートしているためです。それ以外の場合、デフォルトではgemini-1.5-flash-latestモデルを使用します
すでにGemini 1.5 Pro APIにアクセスできる場合は、以下を使用できます。
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gpt-4-turbo-preview",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
} 'Embeddings APIリクエストの例:
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "text-embedding-ada-002",
"input": "This is a test sentence."
} 'また、複数の入力文字列をリストとして渡すこともできます。
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "text-embedding-ada-002",
"input": ["This is a test sentence.", "This is another test sentence"]
} 'モデルマッピング:
| GPTモデル | ジェミニモデル |
|---|---|
| GPT-3.5-ターボ | gemini-1.0-pro-latest |
| GPT-4 | gemini-1.5-flash-latest |
| GPT-4-Turbo-Preview | gemini-1.5-pro-latest |
| GPT-4-Vision-Preview | gemini-1.0-pro-vision-latest |
| Text-rembedding-ada-002 | Text-embedding-004 |
モデルマッピングを無効にする場合は、環境変数を構成しますDISABLE_MODEL_MAPPING=1 。これにより、Geminiモデルを直接参照できます。
モデルマッピングが無効になっているAPIリクエストの例は次のとおりです。
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gemini-1.0-pro-latest",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
} '対応の処理:Openaiの応答を処理するのと同じように、Gemini-Openai-Proxyからの応答を処理します。
現在、アプリケーションはGemini-Openai-Proxyを介してOpenai機能を活用するために装備されており、Google Gemini Proプロトコルを使用してOpenaiとアプリケーションの間のギャップを埋めています。
Gemini-Openai-ProxyはMITライセンスの下でライセンスされています - 詳細については、ライセンスファイルを参照してください。