Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis 및 Upstash를 통해 OpenAI 프로젝트 향상:사용 사례 및 향후 기능

최근 우리는 Upstash를 OpenAI 및 Google Cloud AI, IBM Watson과 같은 기타 AI API와 통합하는 많은 개발자를 관찰했습니다. 포옹 얼굴. 이 게시물에서는 가장 일반적인 사용 사례에 대해 논의하고 더 많은 기능을 지원하기 위한 향후 계획을 간략히 설명하겠습니다.

속도 제한

속도 제한은 AI 기반 애플리케이션을 관리하는 데 있어 중요한 구성 요소로, 개발자와 사용자 모두를 위한 보호 조치 역할을 합니다. AI 애플리케이션은 대용량 데이터를 처리하고 복잡한 계산을 수행하므로 상당한 계산 리소스가 필요합니다. 적절한 관리가 이루어지지 않으면 시스템 과부하, 성능 저하 또는 전체 시스템 오류가 발생하여 사용자 경험이 저하될 수 있습니다. 또한 속도 제한은 트래픽으로 시스템을 압도하는 것을 목표로 하는 DDoS 공격과 같은 특정 유형의 악의적인 공격에 대한 첫 번째 방어선 역할을 할 수 있습니다. 따라서 AI 애플리케이션에 속도 제한을 구현하면 시스템 안정성을 유지하고 비용을 제어하며 보안을 강화하는 데 도움이 됩니다.

Upstash는 사용하기 쉬운 Rate Limit SDK를 제공합니다. 이를 통해 일정 기간 동안 애플리케이션에 대한 요청 수를 제어할 수 있습니다. IP 주소나 사용자 ID별로 요청을 제한할 수 있으며 고정 창, 슬라이딩 창, 토큰 버킷 등 다양한 알고리즘 중에서 선택할 수 있습니다.

비동기 처리

비동기식 처리는 AI 기반 애플리케이션의 효율성과 성능에 중추적인 역할을 합니다. 이러한 애플리케이션은 시간이 많이 걸릴 수 있는 대용량 데이터와 복잡한 계산을 처리해야 하는 경우가 많습니다. 작업이 동기적으로 또는 순서대로 처리되는 경우 시스템은 다음 작업을 시작하기 전에 각 작업이 완료될 때까지 기다려야 하므로 상당한 지연이 발생하고 사용자 경험이 저하될 수 있습니다. 처리 시간이 늘어나면 비용이 부풀려지고 잠재적으로 시간 초과 문제가 발생할 수 있으므로 이는 서버리스 애플리케이션의 경우 특히 문제가 될 수 있습니다. 반면, 비동기식 처리를 사용하면 각 작업이 완료될 때까지 기다리지 않고도 여러 작업을 동시에 실행할 수 있습니다.

QStash는 비동기 처리를 위해 API 호출을 제출할 수 있도록 하는 서버리스 애플리케이션용으로 설계된 메시지 대기열입니다. QStash는 API 호출을 처리하고 지정된 콜백에 응답을 반환합니다.

캐싱

캐싱은 AI 기반 애플리케이션의 성능과 효율성에 중요한 역할을 합니다. 인공 지능에는 종종 모델 훈련, 예측, 자연어 처리와 같은 계산 집약적인 작업이 포함되며, 이는 시간과 리소스 집약적일 수 있습니다. 캐싱을 구현함으로써 애플리케이션은 이러한 작업의 결과를 저장하고 동일한 작업이 다시 요청될 때 이를 재사용할 수 있으므로 계산을 반복할 필요가 없습니다. 캐싱은 값비싼 API 호출 비용을 줄이는 효과적인 전략입니다.

Upstash Redis는 OpenAPI 응답 캐싱을 위한 탁월한 솔루션입니다. 캐시된 API 호출에 만료 시간을 설정하면 적절한 캐시된 응답을 사용할 수 없거나 오래된 경우에만 애플리케이션이 OpenAPI 리소스를 소비하도록 할 수 있습니다.

의미론적 캐싱

AI 애플리케이션의 특수 캐싱 사용 사례는 프롬프트 캐싱입니다. 의미론적 캐싱은 AI 기반 애플리케이션의 효율성과 성능을 높이는 데 매우 유용할 수 있습니다.

의미론적 캐싱은 원시 데이터 대신 쿼리나 요청의 의미를 저장한다는 점에서 기존 캐싱 방법과 다릅니다. 이를 통해 정확한 쿼리가 캐시에 저장되지 않은 경우에도 이전 쿼리와 유사한 쿼리에 응답하는 데 사용할 수 있으므로 캐시가 더욱 효율적이게 됩니다.

예를 들어, 사용자가 "자동차"를 쿼리하는 경우 의미론적 캐시는 "네 바퀴와 내연 기관이 있는 차량"과 같은 쿼리의 의미를 저장할 수 있습니다. 이렇게 하면 이러한 쿼리가 캐시에 저장되지 않은 경우에도 캐시가 "자동차", "자동차" 및 "트럭"에 대한 쿼리에 응답할 수 있습니다.

참고:Redis 검색 모듈은 벡터 유사성 쿼리를 지원하지만 Upstash는 Redis 검색과 호환되지 않습니다. Upstash 내부에는 의미론적 쿼리를 지원하기 위해 유사성 검색을 구현하는 프로젝트가 있습니다.

예:아트 생성기

예술 생성기 Dall-E-2 기반은 AI를 사용하여 텍스트에서 이미지를 생성하고 Upstash Redis를 사용하여 생성된 이미지를 캐시합니다. 또한 QStash를 사용하여 API 호출을 관리하고 비동기식으로 처리하여 서버리스 기능 시간 초과를 방지합니다.

텍스트 제출을 받으면 애플리케이션은 QStash의 /api/image를 통해 OpenAI API에 요청을 보냅니다. 끝점. 그런 다음 QStash는 응답을 수집하여 /api/callback로 전달합니다. URL로 이후 Upstash Redis에 저장됩니다. OpenAI API를 호출한 후 클라이언트는 Redis를 쿼리하고 사용 가능한 경우 이미지를 검색합니다.

API 호출 관리를 QStash에 위임함으로써 개발자는 10초 제한이 있는 Vercel의 Hobby 계획에 배포할 때 서버리스 기능 시간 초과를 피할 수 있습니다.

Redis 및 Upstash를 통해 OpenAI 프로젝트 향상:사용 사례 및 향후 기능

예:RestorePhotos

RestorePhotos는 AI를 사용해 오래된 얼굴 사진을 복원하는 혁신적인 애플리케이션입니다. 인기가 높아지면서 저자는 Upstash Redis를 구현하여 API 사용을 제한하고 효율성과 비용 효율성을 향상시켰습니다. 속도 제한이 구현된 코드 섹션을 여기에서 확인하세요.

Redis 및 Upstash를 통해 OpenAI 프로젝트 향상:사용 사례 및 향후 기능

Redis 및 Upstash를 통해 OpenAI 프로젝트 향상:사용 사례 및 향후 기능

결론

Upstash 팀으로서 우리는 개발자가 AI 기반 애플리케이션을 개발하는 동안 문제를 해결하기 위해 Redis를 채택하는 방법에 깊은 인상을 받았습니다. 우리는 그들의 삶을 더 좋게 만들기 위해 다음과 같은 계획을 가지고 있습니다:

  • AI API 사용을 용이하게 하고 속도 제한, 캐싱, 비동기 처리 기능을 추가하는 SDK를 개발합니다.
  • Redis Search API 또는 더 나은 API를 사용하여 의미론적 캐싱 및 유사성 쿼리를 지원합니다.