Подключите Visual Studio Code к локальным и удалёным конечным точкам моделей

Visual Studio Code может подключить представление Chat к совместимой с OpenAI конечной точке инференса для модели, размещённой локально. Конечная точка может работать на том же устройстве Windows 11, что и Visual Studio Code, или на Windows Server для доступа с одного или нескольких удалённых клиентов Windows 11. Эти топологии позволяют сохранять выводы на устройстве разработчика или централизовать вычисления модели без запуска Visual Studio Code на Windows Server.

В этой статье вы добавляете существующую конечную точку как пользовательскую в Visual Studio Code, выбираете её модель и проверяете, что модель отвечает. Процедура предполагает, что конечная точка вывода уже работает и доступна из Visual Studio Code.

Требования для локальных и удалённых конечных точек моделей

  • Скачайте актуальную стабильную версию Visual Studio Code и убедитесь, что у вас есть доступ к просмотру чата.
  • Существующая конечная точка, совместимая с OpenAI, поддерживающая API Chat Completions и доступная с компьютера с Visual Studio Code.
  • Для удалённых конечных точек, размещённых на Windows Server, сетевое подключение от клиента Windows 11 к серверу и порту конечной точки. Настройте межсетевой экран Windows и любые промежуточные межсетевые экраны или прокси, чтобы разрешить соединение. Настройте конечную точку для прослушивания на сетевом интерфейсе, доступном для удалённых клиентов, а не только по адресу loopback.
  • Для удалённой конечной точки, использующей имя узла, требуется запись DNS, которую клиент Windows 11 может разрешить в адрес узла Windows Server.
  • Для удалённой HTTPS-конечной точки — действительный TLS-сертификат, которому доверяет клиент Windows 11, а имя субъекта или альтернативное имя субъекта совпадает с именем хоста в URL конечной точки.
  • Контроль доступа к конечным точкам, позволяющий клиенту Windows 11 вызывать маршрут завершения чата. Получите любой необходимый API ключ или токен от администратора конечной точки.
  • Для инференса на том же устройстве — loopback URL, который предоставляет конечная точка, например http://localhost:<port>/v1/chat/completions.
  • Для удалённого вывода используйте доверенный HTTPS-адрес, например https://<server-name>:<port>/v1/chat/completions.
  • Точный идентификатор модели; имя отображения модели, которое Visual Studio Code показывает в языке выбора моделей; ограничения контекста; а также поддерживаемые возможности от владельца конечной точки или документации модели.
  • Требования к заголовку аутентификации для конечной точки.
  • Если ваша организация управляет GitHub Copilot, необходимо включить политику «Использование собственного ключа языковой модели в VS Code». Дополнительные сведения см. в статье «Использование собственного ключа языковой модели в VS Code».

Вам не нужен аккаунт GitHub или план GitHub Copilot, чтобы использовать модель «принеси свой ключ» в чате. Настраиваемая конечная точка не поддерживает функции, зависящие от сервиса GitHub Copilot, включая встроенные подсказки, семантический поиск и эмбеддинги.

Добавьте пользовательскую конечную точку для локальной или удалённой модели

Та же процедура поддерживает конечную точку на том же устройстве Windows 11 или удалённую совместимую с OpenAI конечную точку на Windows Server. Visual Studio Code подключается к одному URL-адресу конечной точки, а служба конечной точки управляет распределением запросов на инференс между внутренними службами.

  1. В Visual Studio Code откройте вид чата.

  2. Откройте выбор языковых моделей и выберите Manage Language Models (значок шестерёнки).

    Также можно открыть палитру команд и запустить Chat: Manage Language Models.

  3. В редакторе Language Models выберите Add Models, а затем выберите Custom Endpoint.

  4. Введите название группы. Это название обозначает модели конечной точки в выборе языковых моделей и редакторе языковых моделей .

  5. Введите отображаемое имя модели и ключ API для конечной точки доступа.

  6. Для типа API выберите Завершения чата.

  7. В chatLanguageModels.json файле, который открывает Visual Studio Code, настройте свойства модели, а затем сохраните файл.

    Используйте документацию по конечной точке и модели, чтобы задать свойства. Минимум подтвердите следующие значения:

    Property Ценность
    id Точный ID модели, который ожидает конечная точка.
    name Отображаемое имя модели, которое Visual Studio Code показывает в средстве выбора языковой модели.
    url Полный маршрут, например https://<server-name>:<port>/v1/chat/completions.
    apiType chat-completions
    toolCalling true Только если конечная точка и модель поддерживают вызов инструментов.
    vision true Только если конечная точка и модель поддерживают ввод изображения.
    maxInputTokens Поддерживаемое моделью максимальное количество входных токенов.
    maxOutputTokens Поддерживаемое моделью максимальное количество выходных токенов.

    Сохраняйте сгенерированную apiKey ссылку на вход, вместо того чтобы напрямую вставлять ключ API в chatLanguageModels.json. Visual Studio Code по умолчанию отправляет ключ в заголовке Authorization: Bearer <api-key> для пользовательских конечных точек Chat Completions.

    Если конечная точка требует другого заголовка аутентификации, настройте свойство requestHeaders модели и используйте ${apiKey} токен в качестве значения заголовка. Не размещайте сырой секрет в конфигурационном файле. Для поддерживаемых свойств и поведения при аутентификации см. ссылку на конфигурацию пользовательских конечных точек.

Выберите и проверьте локальную или удалённую модель конечных точек

  1. Вернитесь в режим чата и откройте выбор языковой модели.

  2. Выберите модель под названием группы, которую вы настроили.

  3. Введите короткий тестовый запрос, например:

    Reply with one sentence that confirms you received this request.
    
  4. Убедитесь, что в представлении Chat отображается ответ выбранной модели.

  5. Если у вас есть доступ к логам конечных точек вывода, убедитесь, что конечная точка получила запрос на заданный идентификатор модели.

Конфигурация работает, когда выбранная модель возвращает ответ, а конечная точка записывает запрос.

Note

Модель должна поддерживать вызов инструментов, чтобы быть доступной для агентов в чате. Не устанавливайте для toolCalling значение true, если только конечная точка и модель не поддерживают эту функцию.

Устранение неполадок локальных и удалённых конечных точек моделей в Visual Studio Code

Проблема Что требуется проверить
Custom Endpoint недоступен Обновитесь до текущей стабильной версии Visual Studio Code. Если ваша организация управляет GitHub Copilot, убедитесь, что она поддерживает политику «принесите свой ключ».
Модель не отображается в списке выбора моделей Сохраните chatLanguageModels.json, а затем перезапустите Visual Studio Code. В рабочем пространстве в ограниченном режиме доверьте рабочему пространству восстановление полного списка моделей. Для использования с агентом также убедитесь, что модель поддерживает вызов инструментов и что toolCalling является true.
Конечная точка возвращает ошибку аутентификации Убедитесь, что ключ API актуален и что его заголовок аутентификации соответствует требованиям конечной точки. Если конечная точка требует другого заголовка, настройте requestHeaders с помощью токена ${apiKey} .
Конечная точка возвращает ошибку маршрута или API Убедитесь, что apiType — это chat-completions и что url содержит полный маршрут Chat Completions, включая /v1/chat/completions, если конечная точка предоставляет этот маршрут.
Удалённый клиент не может подключиться к конечной точке Убедитесь, что клиент Windows 11 может разрешить имя узла сервера и подключиться к порту конечной точки. Проверьте адрес прослушивателя конечной точки, брандмауэр Windows и все промежуточные межсетевые экраны и прокси-серверы.
Удалённый конечный пункт возвращает ошибку TLS или сертификат Убедитесь, что сертификат действительн, что клиент Windows 11 ему доверяет и что он покрывает имя хоста в URL конечной точки.
Конечная точка отказывает удалённому клиенту Убедитесь, что контроли доступа на конечной точке позволяют клиенту вызывать маршрут завершения чата и что настроенный учетный код имеет доступ к запрошенной модели.
Запрос достигает конечной точки, но вывод не удаётся Убедитесь, что идентификатор модели точно совпадает с ID модели конечной точки и что конечная точка поддерживает запрошенные возможности модели. Проверьте журналы конечной точки на наличие сбоя запроса.