Ai-Sentry 는 투명한 Python + DAPR 기반의 플러그형 Generative AI Facade 레이어로, Generative AI 솔루션을 개발하고 운영하는 대기업을 위해 다음 기능을 지원하도록 설계되었습니다.
다양한 openAI 소비자의 토큰 사용에 대한 교차 지불 거절
정보의 PII 제거를 전환하는 기능을 갖춘 요청/응답 비동기 기반 로깅입니다. 이 로깅 수준은 기존 사용자에게 영향을 주지 않고 모델 업그레이드를 처리하는 데 도움이 되도록 최신 모델에 대한 요청/응답을 평가하고 재생하는 것은 물론 법적 준수와 같은 많은 작업에 유용합니다.
Azure openAI의 응답 헤더 로드 메트릭과 동일한 모델 기능을 갖춘 다중 백엔드 풀링을 고려하여 보다 스마트한 로드 밸런싱
스트리밍 및 비스트리밍 응답 지원(이러한 로깅 포함)
클라이언트 측의 SDK/API 지원 중단을 처리하는 데 도움이 되는 맞춤형 어댑터의 확장성 - 필요한 경우 이전 버전과의 호환성을 제공할 수 있습니다.
AI-Sentry는 Azure APIM과 같은 기존 API 게이트웨이 솔루션을 대체하도록 설계되지 않았습니다. 오히려 API 게이트웨이와 openAI 엔드포인트 사이에 위치하여 openAI 솔루션에 대한 궁극적인 제어를 제공하도록 설계되었습니다.
우리는 소비자에 대한 지연 시간을 최소화하기 위해 직접 HTTP 호출 파이프라인 외부에서 많은 처리를 수행하고 DAPR 사이드 카 및 Pub/Sub 패턴을 사용하여 작업을 비동기적으로 수행하려고 합니다.
AI-Sentry는 DAPR을 사용하기 때문입니다. 로그 지속성을 위한 기술 선택 및 메시지 브로커는 DAPR의 기본 구성 요소를 통해 교체 가능합니다. 우리의 예에서는 REDIS 및 Event Hubs를 PUB/SUB의 메시지 브로커로 사용하고 CosmosDB를 로그 지속성 저장소로 사용합니다.
다음 환경 변수가 존재해야 합니다. 이를 제공하는 방법은 귀하에게 달려 있습니다(예: Kubernetes 비밀, 구성 맵 등).
이름 | 값 | 요소 |
---|---|---|
AI-SENTRY-엔드포인트-구성 | 예제 JSON 값은 여기에 있습니다. 이는 openai 엔드포인트/배포를 매핑하는 데 사용됩니다. 따라서 로드 밸런싱을 수행할 때 풀에서 동일한 openAI 모델 그룹에 도달하게 됩니다. 엔드포인트 URL 구성에 /openai를 포함해야 합니다. 다음 스크립트를 활용하여 이 JSON의 JSON 이스케이프 문자열을 생성할 수 있습니다. | 외관 앱 |
AI-SENTRY-언어-키 | Cognitive Services 일반 API 키 | CosmosDB 작업자 |
AI-SENTRY-언어-엔드포인트 | 귀하의 언어 텍스트 분석 또는 일반 서비스 엔드포인트 URL | CosmosDB 작업자 |
예를 들어 Azure APIM, 기타 API 게이트웨이 기술을 사용하여 AI-Sentry를 사용하는 경우 필수 HTTP 헤더를 제공해야 합니다.
HTTP 헤더 이름 | HTTP 헤더 값 |
---|---|
AI-센트리-소비자 | 이는 임의의 문자열일 수 있습니다. 이는 생성 AI 백엔드를 사용하는 소비자 또는 제품을 나타내는 데 사용됩니다. 우리는 이것을 로깅 목적으로 사용합니다 |
AI-센트리-로그 수준 | 실제 소비자에 대한 로깅 수준을 전환합니다. 허용되는 값은 COMPLETE, PII_STRIPPING_ENABLED 또는 DISABLED입니다. |
AI-센트리-백엔드-풀 | AI-SENTRY-ENDPOINT-CONFIG 구성에서 풀 이름을 제공합니다. 예: Pool1 |
AI 센트리 어댑터 | openai 엔드포인트로 요청을 보내기 전에 실행할 어댑터 이름 목록을 제공하세요. 예: ["SampleApiRequestTransformer","adapter2..."] |
귀하의 환경에서 AI-Sentry를 설정하는 방법에 대한 자세한 내용을 보려면 다음 세부 섹션을 따르십시오.
CosmosDB dbs/테이블 설정
AKS에서 AI-Sentry 설정
CosmosDB 로깅 스키마
요약 로깅 스키마
워크로드 아이덴티티 설정 - API 키 대신 JWT를 통해 백엔드 열기를 인증하려는 경우
고맙게도 우리 동료 Graeme Foster가 유사한 기능 세트를 갖춘 닷넷 버전을 게시했습니다. 가서 확인해 보세요: https://github.com/microsoft/aicentral
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 귀하의 기여를 사용할 권리가 있고 실제로 그렇게 할 권리가 있음을 선언하는 기여자 라이센스 계약(CLA)에 동의해야 합니다. 자세한 내용을 보려면 https://cla.opensource.microsoft.com을 방문하세요.
끌어오기 요청을 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 결정하고 PR을 적절하게 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 저장소에서 이 작업을 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표나 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 이를 따라야 합니다. 이 프로젝트의 수정된 버전에 Microsoft 상표 또는 로고를 사용하면 혼동을 일으키거나 Microsoft 후원을 암시해서는 안 됩니다. 제3자 상표 또는 로고의 사용에는 해당 제3자의 정책이 적용됩니다.