> 웹3.0 > 본문

WebSocket 및 내구성 있는 개체를 사용하여 규모에 맞는 실시간 AI 추론

Susan Sarandon
풀어 주다: 2024-11-20 09:08:17
원래의
724명이 탐색했습니다.

2024년 10월, 우리는 AI Gateway를 사용하여 AI 애플리케이션에서 수십억 개의 로그를 저장하는 방법과 Cloudflare의 개발자 플랫폼을 사용하여 이를 수행하는 방법에 대해 이야기했습니다.

WebSocket 및 내구성 있는 개체를 사용하여 규모에 맞는 실시간 AI 추론

2024년 10월에는 AI Gateway를 사용하여 AI 애플리케이션에서 수십억 개의 로그를 저장하는 방법과 Cloudflare의 개발자 플랫폼을 사용하여 이를 수행하는 방법을 다뤘습니다.

AI Gateway가 이미 30억 개 이상의 로그를 처리하고 급격한 성장을 경험하면서 플랫폼 연결 수는 꾸준히 증가하고 있습니다. 개발자가 이 규모를 보다 효과적으로 관리할 수 있도록 우리는 지속적인 HTTP(S) 연결을 유지하기 위해 HTTP/2 연결 유지 구현에 대한 대안을 제공하여 AI 게이트웨이에 대한 각각의 새로운 HTTP 연결에 대한 반복적인 핸드셰이크 및 TLS 협상의 오버헤드를 방지하고 싶었습니다. . 우리는 특히 많은 라이브러리와 도구가 기본적으로 HTTP/2를 지원하지 않고 대부분의 최신 프로그래밍 언어에 잘 구축된 WebSocket 라이브러리가 있는 경우 HTTP/2를 구현하는 데 어려움이 있을 수 있다는 것을 알고 있습니다.

이를 염두에 두고 우리는 Cloudflare의 개발자 플랫폼과 지속성 개체(역시 그렇습니다!)를 사용하여 단일하고 지속적인 연결을 설정하고 지속적인 통신을 가능하게 하는 WebSockets API를 구축했습니다.

이 API를 통해 AI 게이트웨이가 지원하는 모든 AI 공급자는 WebSocket을 통해 액세스할 수 있으므로 클라이언트 또는 서버 애플리케이션과 AI 게이트웨이 간에 단일 TCP 연결을 유지할 수 있습니다. 가장 좋은 부분은? 귀하가 선택한 제공업체가 WebSocket을 지원하지 않는 경우에도 당사가 귀하를 대신하여 귀하가 선호하는 AI 제공업체에 대한 요청을 관리해 드립니다.

WebSocket을 통해 AI Gateway에 연결하면 공급자가 지원하는 프로토콜(HTTPS, WebSocket 등)을 사용하여 추론 서비스에 대한 요청이 이루어지며, 사용자는 연결을 열어 두고 원하는 만큼 많은 추론 요청을 실행할 수 있습니다. 싶습니다.

AI Gateway에 대한 연결을 더욱 안전하게 하기 위해 AI Gateway에 대한 인증도 도입됩니다. 새로운 WebSockets API에는 인증이 필요합니다. “AI Gateway: Run” 권한이 있는 Cloudflare API 토큰을 생성하고 이를 cf-aig-authorization 헤더에 보내기만 하면 됩니다.

위 흐름도에서:

1. 인증된 게이트웨이가 활성화되고 유효한 토큰이 포함되면 요청이 성공적으로 전달됩니다.

2. 인증된 게이트웨이가 활성화되었지만 요청에 유효한 토큰과 함께 필수 cf-aig-authorization 헤더가 포함되어 있지 않으면 요청이 실패합니다. 이렇게 하면 확인된 요청만 게이트웨이를 통과하게 됩니다.

3. 인증된 게이트웨이가 비활성화되면 cf-aig-authorization 헤더가 완전히 우회되고 유효한 토큰이든 유효하지 않은 토큰이든 모두 무시됩니다.

우리가 구축한 방법

최근 DO(내구성 개체)를 사용하여 AI Gateway에 대한 로깅 솔루션을 확장했기 때문에 동일한 DO 내에서 WebSocket을 사용하는 것이 자연스럽게 적합했습니다.

Cloudflare 작업자가 새로운 WebSocket 연결을 수신하면 WebSocket 클라이언트의 다양한 기능을 지원하기 위해 두 가지 방법으로 인증을 구현합니다. 기본 방법은 cf-aig-authorization 헤더를 통해 Cloudflare API 토큰을 검증하여 해당 토큰이 연결 계정 및 게이트웨이에 유효한지 확인하는 것입니다.

그러나 브라우저 WebSocket 구현의 제한으로 인해 "sec-websocket-protocol" 헤더를 통한 인증도 지원합니다. 브라우저 WebSocket 클라이언트는 표준 API에서 사용자 정의 헤더를 허용하지 않으므로 요청에 인증 토큰을 추가하는 것이 복잡해집니다. API 키를 브라우저에 저장하는 것은 권장하지 않지만 모든 WebSocket 클라이언트에 더 많은 유연성을 추가하기 위해 이 방법을 추가하기로 결정했습니다.

이 초기 확인 단계 후에 연결을 지속형 개체로 업그레이드합니다. 즉, 이제 연결에 대한 모든 메시지를 처리하게 됩니다. 새 연결이 완전히 수락되기 전에 임의의 UUID를 생성하므로 지속성 개체에서 수신한 모든 메시지 중에서 이 연결을 식별할 수 있습니다. 연결이 열려 있는 동안 cf-aig-skip-cache(true로 설정된 경우 캐싱을 우회)와 같은 헤더를 통해 전달된 모든 AI Gateway 설정은 저장되어 세션의 모든 요청에 ​​적용됩니다. 그러나 이러한 헤더는 현재 Universal Endpoint와 마찬가지로 요청별로 재정의될 수 있습니다.

작동 방식

연결이 설정되면 지속성 개체가 들어오는 메시지를 듣기 시작합니다. 이 시점부터 사용자는 WebSocket을 통해 AI Gateway 범용 형식으로 메시지를 보낼 수 있으므로 애플리케이션을 기존 HTTP 설정에서 WebSocket 기반 통신으로 쉽게 전환할 수 있습니다.

새 메시지가 지속형 개체에 도달하면 HTTP 범용 끝점을 지원하는 동일한 코드를 사용하여 처리되므로 작업자와 내구성 개체 전체에서 원활한 코드 재사용이 가능합니다. 이는 Cloudflare 기반 구축의 주요 이점 중 하나입니다.

스트리밍되지 않는 요청의 경우 응답이 JSON 봉투에 래핑되므로 해당 요청에 대한 AI 게이트웨이 로그 ID와 같은 AI 추론 자체 이상의 추가 정보를 포함할 수 있습니다.

위 요청에 대한 응답 예시는 다음과 같습니다.

스트리밍 요청의 경우 AI Gateway는 개발자에게 스트림이 시작되고 있음을 알리는 요청 메타데이터가 포함된 초기 메시지를 보냅니다.

이 초기 메시지 이후 모든 스트리밍 청크는 추론 제공자로부터 도착할 때 실시간으로 WebSocket 연결로 중계됩니다. 이러한 스트리밍 청크의 메타데이터에는 eventId 필드만 포함됩니다(이 새로운 필드에 대한 자세한 내용은 아래 참조).

이 접근 방식은 두 가지 목적으로 사용됩니다.

위 내용은 WebSocket 및 내구성 있는 개체를 사용하여 규모에 맞는 실시간 AI 추론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿