- OpenAI Proxy Service
OpenAI Proxy Service — это приложение на базе Spring Boot, предназначенное для удобного взаимодействия с моделями OpenAI. Основная особенность сервиса — возможность легко переключаться между ProxyAPI и официальным ChatGPT API без изменения формата запросов.
Важно: Для работы приложения вам понадобится ключ API:
- Либо от ProxyAPI — удобно, если вы уже используете их сервис или не хотите напрямую интегрироваться с ChatGPT.
- Либо официальный OpenAI (ChatGPT) ключ. Форматы запросов полностью совпадают, так что достаточно заменить URL и ключ.
Приложение обеспечивает готовые эндпоинты для:
- Создания чат-комплишенов
- Генерации изображений
- Преобразования текста в речь
- Транскрипции и перевода аудио
- Получения векторных эмбеддингов
При этом OpenAI Proxy Service автоматически обрабатывает некоторые особенности моделей (например, o1
, o1-mini
и o3-mini
) и скрывает низкоуровневые детали работы с API.
- Гибкое переключение провайдера: укажите ключ и базовый URL, чтобы отправлять запросы через ProxyAPI или напрямую в ChatGPT API.
- Поддержка нескольких моделей:
o1
,o1-mini
,gpt-3.5-turbo
,gpt-4
,dall-e-3
, модели TTS и Whisper и т.д. - Расширенная конфигурация: задавайте параметры (
maxTokens
,temperature
и др.) централизованно. - Текст в речь: преобразуйте текст в аудио с помощью моделей
tts-1
илиtts-1-hd
. - Транскрипция и перевод аудио: модели Whisper для распознавания и перевода речи.
- Embeddings: получение векторных представлений текста с разных моделей OpenAI.
- Подробное логирование: запись всех запросов и ответов для отладки и мониторинга.
- Интеграционные тесты: включены тесты для проверки всех основных сценариев работы.
└── 📁OpenAI-Proxy-Service
└── 📁logs
└── proxyapi.log
└── 📁src
└── 📁main
└── 📁java
└── 📁com
└── 📁example
└── 📁proxyapi
└── 📁controller
└── 📁dto
└── 📁exception
└── 📁service
└── 📁utils
└── ProxyApiApplication.java
└── 📁resources
└── application.properties
└── logback-spring.xml
└── .gitignore
└── pom.xml
└── README.md
-
Клонируйте репозиторий:
git clone https://github.com/Daniil-Tiunchyk/OpenAI-Proxy-Service.git cd OpenAI-Proxy-Service
-
Соберите проект:
mvn clean install
-
Файл
application.properties
(вsrc/main/resources/application.properties
):# Для работы с ProxyAPI: api.key=YOUR_PROXY_API_KEY api.base-url=https://api.proxyapi.ru/v1 # Или для работы с официальным ChatGPT API: # api.key=YOUR_OPENAI_API_KEY # api.base-url=https://api.openai.com/v1
api.key
— ваш ключ (либо от ProxyAPI, либо официальный OpenAI).api.base-url
— базовый URL-адрес; по умолчанию указывает на ProxyAPI, но вы можете заменить наhttps://api.openai.com/v1
, если хотите использовать официальное API ChatGPT.
-
Тестовая конфигурация:
Аналогично можно настроить
application-test.properties
вsrc/test/resources/
, чтобы указать тестовые ключи и URL.
-
Запустите приложение:
mvn spring-boot:run
-
Swagger UI:
После запуска перейдите по адресу:
http://localhost:8080/swagger-ui/index.html
где вы найдёте интерактивную документацию ко всем эндпоинтам.
Ниже приведены основные эндпоинты с примерами запросов и ответов. Все запросы передаются в формате, аналогичном ChatGPT API — то есть при желании вы можете использовать уже знакомые вам инструменты интеграции с OpenAI.
Возвращает список доступных моделей.
Создаёт чат-комплишен по аналогии с chatGPT
(gpt-3.5-turbo
, gpt-4
и т.д.).
Генерирует изображения из текстового описания (аналогично DALL·E API).
Преобразует текст в аудио (модели tts-1
и tts-1-hd
).
Транскрибирует (распознаёт) аудио-файлы при помощи Whisper.
Переводит распознанный текст (также на базе Whisper).
Возвращает векторное представление (embedding) для анализа семантической близости текстов.
Примечание: Более детальные примеры тел запросов и ответов можно найти в Swagger.
Все запросы и ответы логируются в файле proxyapi.log
в директории logs
. Подробности конфигурации логов — в logback-spring.xml
.
- Поддержка Chat Completions, Images, TTS, Transcription, Embeddings
- Простое переключение между ProxyAPI и официальным ChatGPT API
- Поддержка дополнительных методов (Files, Assistants, Threads) при наличии соответствующей подписки
- Расширенные функции мониторинга и аналитики
Хотите внести свой вклад?
-
Сделайте форк репозитория
-
Создайте ветку:
git checkout -b feature/YourFeature
-
Внесите изменения и сделайте commit:
git commit -m "Add your commit message"
-
Запушьте ветку:
git push origin feature/YourFeature
-
Создайте Pull Request.
Проект распространяется по MIT License.
Если у вас есть вопросы, пожалуйста, оставьте issue или напишите на fcad.td@gmail.com.