프로그래밍 및 소프트웨어 개발

Microsoft.Extensions.AI에 라우팅 및 장애 조치 도구 추가

.NET 팀은 모델과 서비스 공급자 간에 AI 요청을 라우팅하고, 한 공급자가 중단될 때 장애 조치를 실행하며, Microsoft.Extensions.AI 내부에서 사용자 지정 라우팅 정책을 구축할 수 있는 네 가지 새로운 실험적 유형을 발표했습니다.

2026-08-13
3 분 읽기
8 조회수
فريق تحرير certi.news
Microsoft.Extensions.AI에 라우팅 및 장애 조치 도구 추가

Microsoft는 Microsoft.Extensions.AI 라이브러리에 AI 요청 라우팅 및 모델 또는 서비스 공급자 간 장애 조치를 관리하기 위한 네 가지 실험적 유형을 추가했습니다. 이 유형들은 모두 IChatClient 인터페이스의 구현으로 작동하므로, 비용, 가용성 및 응답 시간 제약을 처리하기 위한 라이브러리의 기존 구조에서 사용할 수 있습니다.

라우팅 및 장애 조치 도구

RoutingChatClient는 각 요청에 적합한 클라이언트를 선택한 다음 호출을 전달하는 기본 클래스입니다. 간단한 콜백 함수를 통해 생성하거나, SelectClientAsync를 재정의하여 더 복잡하거나 애플리케이션 상태에 의존하는 라우팅 정책을 적용하도록 확장할 수 있습니다.

SemanticRoutingChatClient는 요청의 의미를 바탕으로 요청을 라우팅합니다. 개발자는 각 클라이언트와 관련된 문구의 예시를 라이브러리에 제공하고, 그러면 사용자의 마지막 메시지가 임베딩으로 변환된 뒤 예시와 비교되어 지정된 임계값을 초과하는 가장 높은 유사도를 가진 클라이언트가 선택됩니다. 어떤 일치 항목도 임계값을 초과하지 않으면 기본 클라이언트가 사용됩니다.

경로 예시의 임베딩은 필요할 때 생성되고 캐시됩니다. scoreThreshold, topK, scoreAggregation과 같은 설정을 통해 최소 유사도, 결과 집계에 사용되는 예시 수, 평균 또는 합계 사용 여부를 제어할 수 있습니다. 또한 이 유형은 기본적으로 폐기될 때 클라이언트와 임베딩 생성기를 폐기하며, leaveOpen을 통해 이 동작을 비활성화할 수 있습니다.

장애 조치 및 시도 모니터링

FailoverChatClient는 재시도 루프를 추가하여 라우팅 기능을 확장합니다. 선택된 클라이언트가 호출자에게 스트리밍 출력이 도착하기 전에 실패하면, 이 유형은 SelectClientAsync를 다시 호출하여 다른 클라이언트를 선택합니다. 출력 전송이 시작된 후에는 실패가 최종적인 것으로 간주되며, 시스템은 스트리밍 중 복구를 수행하지 않습니다.

이 클래스는 성공, 실패 또는 포기 여부와 관계없이 각 시도를 모니터링할 수 있도록 OnRoutingUpdateAsync를 제공합니다. 시도 기록에는 호출된 클라이언트, 실행 시간, 예외가 있는 경우 해당 예외, 응답이 완료되었는지 또는 스트리밍 출력이 호출자에게 도착했는지 여부, 그리고 해당되는 경우 첫 업데이트까지 걸린 시간이 포함됩니다. 이 데이터를 사용하여 공급자의 성능을 평가하거나 회로 차단기 및 응답 시간에 따른 클라이언트 순위 지정과 같은 정책을 구축할 수 있습니다.

OrderedFailoverChatClient는 이 메커니즘을 바로 사용할 수 있도록 구현한 것으로, 순서가 지정된 클라이언트 목록을 받아 순차적으로 시도합니다. 모든 옵션이 실패하면 마지막 예외가 다시 전달됩니다. MaximumAttemptsPerRequest는 요청당 호출의 최대 횟수를 지정하며, 요청 취소 토큰이 취소되면 새 클라이언트 선택도 중단됩니다.

라우팅 정책 구축 시 고려 사항

게시물은 대화의 각 턴마다 대화의 특성을 고려하지 않고 라우팅하는 것에 대해 경고합니다. 추론 모델은 암호화된 콘텐츠나 특정 공급자와 연결된 후속 토큰에 의존할 수 있으며, 다른 모델 또는 공급자로 전환하면 프롬프트 캐싱의 이점을 잃고 해당 프롬프트를 다시 계산하는 비용이 발생할 수 있습니다.

여러 턴으로 이루어진 대화에서는 공급자의 ConversationId에 의존하는 대신 서비스 자체가 소유한 세션 식별자를 사용하여 경로를 고정할 것을 게시물은 제안합니다. 선택한 경로는 세션 상태 또는 IDistributedCache에 저장할 수 있으며, 응답이 성공적으로 완료된 후에만 경로를 고정해야 합니다.

구축할 수 있는 다른 정책으로는 응답 시간, 상태, 비용, 기능 및 지리적 영역에 따른 라우팅이 있으며, 각 라우터가 IChatClient로 작동하므로 여러 라우터를 조합할 수도 있습니다. 그러나 이러한 도구는 성공한 응답의 품질을 기준으로 순차 라우팅을 수행하거나, 여러 클라이언트를 실행하여 결과를 결합하거나, 첫 번째 응답을 선택하기 위해 클라이언트 간 경쟁을 실행하지 않습니다. 이러한 시나리오에는 둘 이상의 호출을 수행하는 클라이언트가 필요합니다.

가용성 및 실험적 상태

RoutingChatClient, RoutingContext, FailoverChatClient, FailoverChatClientAttempt, OrderedFailoverChatClientSemanticRoutingChatClient 유형은 Microsoft.Extensions.AI의 10.9.0 버전에서 제공되었습니다. 이 유형들은 모두 진단 식별자 MEAI001을 사용하여 실험적 기능으로 표시되어 있습니다. 다음 명령을 통해 패키지를 추가할 수 있습니다: dotnet add package Microsoft.Extensions.AI.

뉴스 출처
.NET Blog
원문 보기 ↗
ف
작성자

فريق تحرير certi.news

같은 카테고리

추천 기사

모든 뉴스 보기