의미 체계 커널 구성 요소

의미 체계 커널 개별적으로 또는 함께 사용할 수 있는 다양한 구성 요소를 제공합니다. 이 문서에서는 다양한 구성 요소에 대한 개요를 제공하고 구성 요소 간의 관계를 설명합니다.

AI 서비스 커넥터

의미 체계 커널 AI 서비스 커넥터는 공통 인터페이스를 통해 여러 공급자의 여러 AI 서비스 유형을 노출하는 추상화 계층을 제공합니다. 지원되는 서비스에는 채팅 완성, 텍스트 생성, 포함 생성, 텍스트에서 이미지로, 이미지에서 텍스트로, 텍스트에서 오디오로, 오디오에서 텍스트로가 포함됩니다.

구현이 커널에 등록되면 기본적으로 커널에 대한 메서드 호출에 의해 채팅 완료 또는 텍스트 생성 서비스가 사용됩니다. 지원되는 다른 서비스는 자동으로 사용되지 않습니다.

Tip

AI 서비스 사용에 대한 자세한 내용은 SEMANTIC KERNEL 참조하세요.

벡터 저장소(메모리) 커넥터

의미 체계 커널 벡터 저장소 커넥터는 공통 인터페이스를 통해 여러 공급자의 벡터 저장소를 노출하는 추상화 계층을 제공합니다. 커널은 등록된 벡터 저장소를 자동으로 사용하지 않지만, 벡터 검색은 커널에 플러그 인으로 쉽게 노출될 수 있습니다. 이 경우 플러그 인을 프롬프트 템플릿 및 채팅 완료 AI 모델에 사용할 수 있습니다.

Tip

메모리 커넥터 사용에 대한 자세한 내용은 의미 체계 커널 참조하세요.

함수 및 플러그 인

플러그 인의 이름은 함수 컨테이너입니다. 각각에는 하나 이상의 함수가 포함될 수 있습니다. 플러그 인은 커널에 등록할 수 있으므로 커널에서 다음 두 가지 방법으로 사용할 수 있습니다.

  1. 이를 채팅 완료 AI에 보급하여 AI가 호출을 위해 선택할 수 있도록 합니다.
  2. 템플릿을 렌더링하는 동안 템플릿에서 호출할 수 있도록 합니다.

함수는 네이티브 코드, OpenAPI 사양 ITextSearch , RAG 시나리오 구현뿐만 아니라 프롬프트 템플릿을 비롯한 많은 소스에서 쉽게 만들 수 있습니다.

PromptTemplates, NativeCode, OpenAPI 사양 및 TextSearch를 플러그 인으로 전환할 수 있습니다.

Tip

다른 플러그 인 원본에 대한 자세한 내용은 플러그 인이란?을 참조하세요.

Tip

채팅 완료 AI에 플러그 인을 보급하는 방법에 대한 자세한 내용은 채팅 완료를 사용한 함수 호출을 참조하세요.

프롬프트 템플릿

프롬프트 템플릿을 사용하면 개발자 또는 프롬프트 엔지니어가 사용자 입력 및 함수 출력과 AI에 대한 컨텍스트 및 지침을 혼합하는 템플릿을 만들 수 있습니다. 예를 들어 템플릿에는 채팅 완료 AI 모델에 대한 지침과 사용자 입력에 대한 자리 표시자 및 채팅 완료 AI 모델을 호출하기 전에 항상 실행해야 하는 플러그 인에 대한 하드 코딩된 호출이 포함될 수 있습니다.

프롬프트 템플릿은 다음 두 가지 방법으로 사용할 수 있습니다.

  1. 커널에 템플릿을 렌더링하고 렌더링된 결과를 사용하여 채팅 완료 AI 모델을 호출하도록 요청하여 채팅 완료 흐름의 시작점으로 사용합니다.
  2. 플러그 인 함수로서 다른 함수와 동일한 방식으로 호출할 수 있습니다.

프롬프트 템플릿을 사용하면 먼저 렌더링되고 포함된 하드 코드된 함수 참조가 실행됩니다. 그러면 렌더링된 프롬프트가 채팅 완료 AI 모델로 전달됩니다. AI에서 생성된 결과는 호출자에게 반환됩니다. 프롬프트 템플릿이 플러그인 함수로 등록되어 있었다면, Chat Completion AI 모델이 해당 함수를 실행 대상으로 선택했을 수 있으며, 이 경우 호출자는 AI 모델을 대신하는 의미 체계 커널입니다.

프롬프트 템플릿을 이러한 방식으로 플러그 인 함수로 사용하면 다소 복잡한 흐름이 발생할 수 있습니다. 예를 들어 프롬프트 템플릿 A 이 플러그 인으로 등록되는 시나리오를 고려합니다. 동시에 다른 프롬프트 템플릿 B 을 커널에 전달하여 채팅 완료 흐름을 시작할 수 있습니다. B에는 A에 대한 하드코딩된 호출이 있을 수 있습니다. 그러면 다음 단계가 발생합니다.

  1. B 렌더링이 시작되고 프롬프트 실행에서 다음 참조를 찾습니다. A
  2. A 가 렌더링됩니다.
  3. 렌더링된 출력 A 은 채팅 완료 AI 모델에 전달됩니다.
  4. Chat Completion AI 모델의 결과가 B에 반환됩니다.
  5. B 렌더링이 완료됩니다.
  6. 렌더링된 출력 B 은 채팅 완료 AI 모델에 전달됩니다.
  7. 채팅 완료 AI 모델의 결과가 호출자에게 반환됩니다.

또한 B에서 A로 하드코딩된 호출이 없는 경우도 고려해 보세요. 함수 호출이 활성화된 경우에도 Chat Completion AI 모델은 A가 제공할 수 있는 데이터 또는 기능이 필요하므로 A를 호출해야 한다고 판단할 수 있습니다.

프롬프트 템플릿을 플러그 인 함수로 등록하면 실제 코드 대신 사용자 언어를 사용하여 설명하는 기능을 만들 수 있습니다. 이와 같은 플러그 인으로 기능을 분리하면 AI 모델이 이를 주 실행 흐름과 별도로 추론할 수 있으며, 한 번에 하나의 문제에 집중할 수 있으므로 AI 모델에서 성공률이 높아질 수 있습니다.

프롬프트 템플릿에서 시작하는 간단한 흐름은 다음 다이어그램을 참조하세요.

프롬프트Templates는 템플릿을 렌더링하고, 필요한 함수를 호출한 다음, 채팅 완료 AI 모델을 호출하여 호출할 응답 또는 더 많은 함수를 가져오는 커널에서 실행할 수 있습니다.

Tip

프롬프트 템플릿에 대한 자세한 내용은 프롬프트란?을 참조하세요.

필터

필터는 채팅 완료 흐름 동안 특정 이벤트 전후에 사용자 지정 작업을 수행하는 방법을 제공합니다. 이러한 이벤트는 다음과 같습니다.

  1. 함수 호출 전후.
  2. 프롬프트 렌더링 전후.

채팅 완료 흐름 중에 호출하려면 커널에 필터를 등록해야 합니다.

프롬프트 템플릿은 실행 전에 항상 KernelFunctions로 변환되므로 프롬프트 템플릿에 대해 함수 및 프롬프트 필터가 모두 호출됩니다. 둘 이상의 필터를 사용할 수 있는 경우 필터가 중첩되므로 함수 필터는 외부 필터이고 프롬프트 필터는 내부 필터입니다.

시맨틱 커널 파이프라인에 필터를 통합합니다.

Tip

필터에 대한 자세한 내용은 필터란?을 참조하세요.