Демо
Демо здесь.
Зачем
GitHub Copilot доступен бесплатно для подтверждённых учащихся, преподавателей и мейнтейнеров популярных проектов с открытым исходным кодом.
- Учащиеся и преподаватели: см. Преимущества для всех в школе [en].
- Мейнтейнеры: проверьте https://github.com/github-copilot/free_signup
Если Copilot недоступен, значит ваш проект не соответствует критериям, т.е. ему нужно больше звёзд.
Даже если вы не подходите под указанные выше критерии, стоимость платной подписки
(Individual) более доступна, чем аналогичное предложение от OpenAI.
Она стоит всего 10 долларов и при этом обеспечивает доступ к GPT-4.
Если вышеперечисленные варианты вам не подходят — попробуйте полностью бесплатную альтернативу: openai-gemini.
Для чего
GitHub Copilot чат доступен исключительно в избранных IDE.
Проект openai-github-copilot
позволяет использовать его с намного более широким спектром инструментов: предоставляется общий API, совместимый с OpenAI, который можно развернуть бесплатно.
(Однако подписка на GitHub Copilot всё так же требуется.)
Serverless?
Хотя прокси и работает в облаке, для его функционирования не требуется обслуживание сервера.
Его можно легко развернуть на Cloudflare бесплатно (со щедрыми ограничениями, подходящими для личного использования).
Локальный запуск прокси также возможен, хотя такой вариант удобен скорее для разработки.
С чего начать
Сначала вам необходимо создать учетную запись на Cloudflare.
Самый простой способ развёртывания — вручную вставить содержимое src/worker.mjs
в качестве index.js
на https://workers.cloudflare.com/playground (см. кнопку Deploy
).
Примечание:
Это немного упрощенная версия кода, в которой не реализовано кэширование токенов,
и отсутствует страница/token
.
Для развёртывания полнофункциональной версии обратитесь к следующему разделу.
Расширенные инструкции
Здесь были инструкции развёртывания c Github по кнопке Cloudflare
К сожалению кнопка не поддерживает репозитории на других хостингах, а проект переехал на gitea.com.
Развёртывание вручную
Вместо “развёртывания кнопкой” вы также можете работать с проектом локально, используя
cli:
- Создать KV namespace:
wrangler kv:namespace create KV
(и соответственнл обновитьid
в вашем wrangler.toml файле). - Запустить сервис локально:
wrangler dev
- Развернуть на Cloudflare:
wrangler deploy
Как пользоваться
Если вы откроете ваш только что созданный прокси в браузере, вы увидите только сообщение 404 Not Found
. Это ожидаемо, поскольку API не предназначен для прямого доступа через браузер.
Чтобы использовать его, вам следует ввести API-адрес и токен доступа Github Copilot в соответствующие поля в настройках вашего программного обеспечения.
Не все программы позволяют задать нестандартный адрес OpenAI API, но очень многие позволяют (хотя эти настройки иногда могут быть глубоко спрятаны).
API base / address / URL / ...
Как правило, требуется указывать базу API в таком формате:
https://copilot.YOURSUBDOMAIN.workers.dev/v1
Однако некоторые программы могут ожидать адрес без окончания /v1
:
https://copilot.YOURSUBDOMAIN.workers.dev
Соответствующее поле может быть обозначено как "OpenAI proxy".
Возможно, вам придётся поискать в разделе “Advanced settings
” или аналогичном.
Или в каком-то конфиг-файле (стоит изучить подробности в документации).
Для некоторых утилит командной строки может понадобиться задать переменную окружения, например:
set OPENAI_BASE_URL=https://copilot.YOURSUBDOMAIN.workers.dev/v1
… или:
set OPENAI_API_BASE=https://copilot.YOURSUBDOMAIN.workers.dev/v1
Ключ API
Прежде всего необходимо получить токен доступа Github с поддержкой Copilot (который должен начинаться с ghu_
, или с gho_
).
После развёртывания данный проект предоставляет веб-страницу /token
, которая помогает создать такой токен (см. демо).
Также в разделе scripts можно найти и альтернативные методы получения токена.
Введите этот токен в поле "OpenAI API key" в настройках вашей программы.
Альтернативно, он может находиться в каком-то конфиг-файле (стоит поискать подробности в документации).
Для некоторых утилит командной строки может потребоваться установить переменную окружения, например:
set OPENAI_API_KEY=ghu_...
Models
Список доступных моделей можно получить через стандартный эндпойнт /v1/models
, и этот список может варьироваться в зависимости от предоставленного API-ключа.
Примеры: gpt-3.5-turbo
, gpt-4
, gpt-4-0125-preview
, gpt-4-o-preview
.
Технические примечания
Copilot предоставляет следующие конечные точки (endpoints):
/v1/chat/completions
tools
и другие связанные свойства игнорируются (?)- Вывод подвергаются обработке, чтобы устранить отличия от OpenAI.
/v1/embeddings
input
:
поддерживает только массив строкencoding_format
,dimensions
: игнорируется.- Вывод никак не модифицируется и имеет некоторые незначительные отличия от OpenAI:
- отсутствует свойство
object
("object": "embedding"
) - отсутствует свойство
model
("model": "text-embedding-3-small"
)
/token
: отображает веб-страницу, которая позволяет получить токен доступа к Github Copilot.
Если возникнут какие-либо вопросы — с радостью отвечу в комментариях.
Приятного использования!